Merge pull request #3135 from l2-/loginscreenbackground

This commit is contained in:
Owain van Brakel
2022-02-23 18:20:43 +01:00
committed by GitHub
2 changed files with 30 additions and 0 deletions

View File

@@ -2270,6 +2270,16 @@ public interface Client extends GameEngine
*/ */
void setLoginScreen(SpritePixels pixels); void setLoginScreen(SpritePixels pixels);
/**
* Low level control over the login screen background.
* Useful when changing the login screen background every frame, for example for playing a video.
* A typical update cycle would be:
* 1. setLoginScreenBackground(pixels) 2. setLoginScreenLeftTitleSprite() 3. setLoginScreenRightTitleSprite()
*/
void setLoginScreenBackground(SpritePixels pixels);
void setLoginScreenLeftTitleSprite();
void setLoginScreenRightTitleSprite();
/** /**
* Sets whether the flames on the login screen should be rendered * Sets whether the flames on the login screen should be rendered
*/ */

View File

@@ -76,6 +76,26 @@ public abstract class LoginScreenMixin implements RSClient
} }
} }
@Inject
public void setLoginScreenBackground(SpritePixels background)
{
assert client.isClientThread() : "setLoginScreen must be called on client thread";
loginScreenBackground = background;
client.clearLoginScreen(false);
}
@Inject
public void setLoginScreenLeftTitleSprite()
{
setLeftTitleSprite(0);
}
@Inject
public void setLoginScreenRightTitleSprite()
{
setRightTitleSprite(0);
}
@Inject @Inject
@FieldHook("leftTitleSprite") @FieldHook("leftTitleSprite")
static void setLeftTitleSprite(int idx) static void setLeftTitleSprite(int idx)