diff --git a/runelite-api/src/main/java/net/runelite/api/Client.java b/runelite-api/src/main/java/net/runelite/api/Client.java index 2913e6e065..d7bd5efcc1 100644 --- a/runelite-api/src/main/java/net/runelite/api/Client.java +++ b/runelite-api/src/main/java/net/runelite/api/Client.java @@ -1857,4 +1857,10 @@ public interface Client extends GameShell * when you only want to change the left click one. */ void setLeftClickMenuEntry(MenuEntry entry); + + /** + * If this field is set to true, getting 5 minute logged won't show + * the "You have been disconnected." message anymore. + */ + void setHideDisconnect(boolean dontShow); } \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenConfig.java index 34b4b89aab..e2aaf3a9c5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenConfig.java @@ -34,7 +34,8 @@ public interface LoginScreenConfig extends Config @ConfigItem( keyName = "syncusername", name = "Sync username", - description = "Syncs the username that is currently remembered between computers" + description = "Syncs the username that is currently remembered between computers", + position = 1 ) default boolean syncUsername() { @@ -44,13 +45,25 @@ public interface LoginScreenConfig extends Config @ConfigItem( keyName = "pasteenabled", name = "Ctrl-V paste", - description = "Enables Ctrl+V pasting on the login screen" + description = "Enables Ctrl+V pasting on the login screen", + position = 2 ) default boolean pasteEnabled() { return false; } + @ConfigItem( + keyName = "hideDisconnect", + name = "Hide 5 min log message", + description = "Hides the \"You have been disconnected\" message which appears when you get 5 minute logged", + position = 3 + ) + default boolean hideDisconnected() + { + return false; + } + @ConfigItem( keyName = "username", name = "", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java index 3737a23677..0fd54ce574 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/loginscreen/LoginScreenPlugin.java @@ -83,6 +83,8 @@ public class LoginScreenPlugin extends Plugin implements KeyListener updateConfig(); addSubscriptions(); + client.setHideDisconnect(config.hideDisconnected()); + applyUsername(); keyManager.registerKeyListener(this); } @@ -97,6 +99,8 @@ public class LoginScreenPlugin extends Plugin implements KeyListener client.getPreferences().setRememberedUsername(usernameCache); } + client.setHideDisconnect(false); + keyManager.unregisterKeyListener(this); } @@ -249,6 +253,12 @@ public class LoginScreenPlugin extends Plugin implements KeyListener return; } + if (event.getKey().equals("hideDisconnect")) + { + client.setHideDisconnect(config.hideDisconnected()); + return; + } + updateConfig(); } diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index d033f92a35..1d92f52e7d 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -201,11 +201,7 @@ public abstract class RSClientMixin implements RSClient private static boolean printMenuActions; @Inject - @Override - public void setPrintMenuActions(boolean yes) - { - printMenuActions = yes; - } + private static boolean hideDisconnect = false; @Inject private static boolean hideFriendAttackOptions = false; @@ -222,6 +218,20 @@ public abstract class RSClientMixin implements RSClient @Inject private static Set unhiddenCasts = new HashSet(); + @Inject + @Override + public void setPrintMenuActions(boolean yes) + { + printMenuActions = yes; + } + + @Inject + @Override + public void setHideDisconnect(boolean dontShow) + { + hideDisconnect = dontShow; + } + @Inject @Override public void setHideFriendAttackOptions(boolean yes) @@ -1757,4 +1767,20 @@ public abstract class RSClientMixin implements RSClient { this.modulus = modulus; } + + @Copy("forceDisconnect") + static void rs$forceDisconnect(int reason) + { + } + + @Replace("forceDisconnect") + static void forceDisconnect(int reason) + { + rs$forceDisconnect(reason); + + if (hideDisconnect && reason == 1) + { + client.promptCredentials(true); + } + } } \ No newline at end of file diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java index 0d09db8df5..a0e6506b08 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSClient.java @@ -1090,4 +1090,10 @@ public interface RSClient extends RSGameShell, Client @Import("Sprite_drawScaled") @Override void scaleSprite(int[] canvas, int[] pixels, int color, int pixelX, int pixelY, int canvasIdx, int canvasOffset, int newWidth, int newHeight, int pixelWidth, int pixelHeight, int oldWidth); + + /** + * This sets the login screen to where it asks for username/pass + */ + @Import("Login_promptCredentials") + void promptCredentials(boolean clearPass); } \ No newline at end of file diff --git a/runescape-client/src/main/java/AbstractWorldMapData.java b/runescape-client/src/main/java/AbstractWorldMapData.java index cf0d27465e..efdefeec98 100644 --- a/runescape-client/src/main/java/AbstractWorldMapData.java +++ b/runescape-client/src/main/java/AbstractWorldMapData.java @@ -407,7 +407,7 @@ public abstract class AbstractWorldMapData { } else if (var0 == ScriptOpcodes.TRADINGPOST_GETOFFERAGE) { var3 = Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize]; var11 = (GrandExchangeEvent)TileItem.grandExchangeEvents.events.get(var3); - long var5 = class30.method566() - class81.field1135 - var11.age; + long var5 = class30.currentTimeMillis() - class81.field1135 - var11.age; int var7 = (int)(var5 / 3600000L); int var8 = (int)((var5 - (long)(var7 * 3600000)) / 60000L); int var9 = (int)((var5 - (long)(var7 * 3600000) - (long)(var8 * 60000)) / 1000L); diff --git a/runescape-client/src/main/java/Client.java b/runescape-client/src/main/java/Client.java index 08a4bf4e72..f4f8b09f7c 100644 --- a/runescape-client/src/main/java/Client.java +++ b/runescape-client/src/main/java/Client.java @@ -308,8 +308,8 @@ public final class Client extends GameShell implements Usernamed { @ObfuscatedGetter( intValue = 426040267 ) - @Export("archiveLoaderArchive") - static int archiveLoaderArchive; + @Export("archiveLoadersDone") + static int archiveLoadersDone; @ObfuscatedName("rm") static boolean[] field835; @ObfuscatedName("pz") @@ -1546,7 +1546,7 @@ public final class Client extends GameShell implements Usernamed { GrandExchangeEvents_worldComparator = new GrandExchangeOfferOwnWorldComparator(); field905 = -1; archiveLoaders = new ArrayList(10); - archiveLoaderArchive = 0; + archiveLoadersDone = 0; field908 = 0; field909 = new class65(); field910 = new int[50]; @@ -1560,7 +1560,7 @@ public final class Client extends GameShell implements Usernamed { ) @Export("resizeGame") protected final void resizeGame() { - field754 = class30.method566() + 500L; + field754 = class30.currentTimeMillis() + 500L; this.resizeJS(); if (rootInterface != -1) { this.resizeRoot(true); @@ -1636,109 +1636,106 @@ public final class Client extends GameShell implements Usernamed { } if (var1 == null) { - int var5; - try { - if (class197.field2386 == 1) { - var5 = class49.midiPcmStream.method3745(); - if (var5 > 0 && class49.midiPcmStream.isReady()) { - var5 -= MusicPatchNode2.field2382; - if (var5 < 0) { - var5 = 0; - } - - class49.midiPcmStream.method3760(var5); - } else { - class49.midiPcmStream.clear(); - class49.midiPcmStream.removeAll(); - if (class197.musicTrackArchive != null) { - class197.field2386 = 2; - } else { - class197.field2386 = 0; - } - - class197.musicTrack = null; - FriendLoginUpdate.soundCache = null; - } - } - } catch (Exception var9) { - var9.printStackTrace(); - class49.midiPcmStream.clear(); - class197.field2386 = 0; - class197.musicTrack = null; - FriendLoginUpdate.soundCache = null; - class197.musicTrackArchive = null; - } - - WorldMapID.playPcmPlayers(); - synchronized(KeyHandler.KeyHandler_instance) { - ++KeyHandler.KeyHandler_idleCycles; - KeyHandler.field378 = KeyHandler.field380; - KeyHandler.field361 = 0; - int var6; - if (KeyHandler.field373 >= 0) { - while (KeyHandler.field373 != KeyHandler.field372) { - var6 = KeyHandler.field365[KeyHandler.field372]; - KeyHandler.field372 = KeyHandler.field372 + 1 & 127; - if (var6 < 0) { - KeyHandler.KeyHandler_pressedKeys[~var6] = false; - } else { - if (!KeyHandler.KeyHandler_pressedKeys[var6] && KeyHandler.field361 < KeyHandler.field376.length - 1) { - KeyHandler.field376[++KeyHandler.field361 - 1] = var6; - } - - KeyHandler.KeyHandler_pressedKeys[var6] = true; - } - } - } else { - for (var6 = 0; var6 < 112; ++var6) { - KeyHandler.KeyHandler_pressedKeys[var6] = false; - } - - KeyHandler.field373 = KeyHandler.field372; - } - - if (KeyHandler.field361 > 0) { - KeyHandler.KeyHandler_idleCycles = 0; - } - - KeyHandler.field380 = KeyHandler.field371; - } - - VertexNormal.method2959(); - if (KeyHandler.mouseWheel != null) { - var5 = KeyHandler.mouseWheel.useRotation(); - mouseWheelRotation = var5; - } - - if (gameState == 0) { - class189.load(); - WorldMapDecoration.method343(); - } else if (gameState == 5) { - LoginPacket.method3587(this); - class189.load(); - WorldMapDecoration.method343(); - } else if (gameState != 10 && gameState != 11) { - if (gameState == 20) { - LoginPacket.method3587(this); - this.doCycleLoggedOut(); - } else if (gameState == 25) { - KeyHandler.method851(); - } - } else { - LoginPacket.method3587(this); - } - - if (gameState == 30) { - this.doCycleLoggedIn(); - } else if (gameState == 40 || gameState == 45) { - this.doCycleLoggedOut(); - } - - return; + break; } var1.archive.load(var1.archiveDisk, (int)var1.key, var1.data, false); } + + try { + if (class197.field2386 == 1) { + int var5 = class49.midiPcmStream.method3745(); + if (var5 > 0 && class49.midiPcmStream.isReady()) { + var5 -= MusicPatchNode2.field2382; + if (var5 < 0) { + var5 = 0; + } + + class49.midiPcmStream.method3760(var5); + } else { + class49.midiPcmStream.clear(); + class49.midiPcmStream.removeAll(); + if (class197.musicTrackArchive != null) { + class197.field2386 = 2; + } else { + class197.field2386 = 0; + } + + class197.musicTrack = null; + FriendLoginUpdate.soundCache = null; + } + } + } catch (Exception var9) { + var9.printStackTrace(); + class49.midiPcmStream.clear(); + class197.field2386 = 0; + class197.musicTrack = null; + FriendLoginUpdate.soundCache = null; + class197.musicTrackArchive = null; + } + + WorldMapID.playPcmPlayers(); + synchronized(KeyHandler.KeyHandler_instance) { + ++KeyHandler.KeyHandler_idleCycles; + KeyHandler.field378 = KeyHandler.field380; + KeyHandler.field361 = 0; + int var6; + if (KeyHandler.field373 >= 0) { + while (KeyHandler.field373 != KeyHandler.field372) { + var6 = KeyHandler.field365[KeyHandler.field372]; + KeyHandler.field372 = KeyHandler.field372 + 1 & 127; + if (var6 < 0) { + KeyHandler.KeyHandler_pressedKeys[~var6] = false; + } else { + if (!KeyHandler.KeyHandler_pressedKeys[var6] && KeyHandler.field361 < KeyHandler.field376.length - 1) { + KeyHandler.field376[++KeyHandler.field361 - 1] = var6; + } + + KeyHandler.KeyHandler_pressedKeys[var6] = true; + } + } + } else { + for (var6 = 0; var6 < 112; ++var6) { + KeyHandler.KeyHandler_pressedKeys[var6] = false; + } + + KeyHandler.field373 = KeyHandler.field372; + } + + if (KeyHandler.field361 > 0) { + KeyHandler.KeyHandler_idleCycles = 0; + } + + KeyHandler.field380 = KeyHandler.field371; + } + + VertexNormal.method2959(); + if (KeyHandler.mouseWheel != null) { + int var5 = KeyHandler.mouseWheel.useRotation(); + mouseWheelRotation = var5; + } + + if (gameState == 0) { + class189.load(); + WorldMapDecoration.method343(); + } else if (gameState == 5) { + LoginPacket.doCycleTitle(this); + class189.load(); + WorldMapDecoration.method343(); + } else if (gameState == 10 || gameState == 11) { + LoginPacket.doCycleTitle(this); + } else if (gameState == 20) { + LoginPacket.doCycleTitle(this); + this.doCycleLoggedOut(); + } else if (gameState == 25) { + KeyHandler.method851(); + } + + if (gameState == 30) { + this.doCycleLoggedIn(); + } else if (gameState == 40 || gameState == 45) { + this.doCycleLoggedOut(); + } } @ObfuscatedName("ax") @@ -1792,7 +1789,7 @@ public final class Client extends GameShell implements Usernamed { class219.pcmPlayer0.tryDiscard(); } - if ((gameState == 10 || gameState == 20 || gameState == 30) && 0L != field754 && class30.method566() > field754) { + if ((gameState == 10 || gameState == 20 || gameState == 30) && 0L != field754 && class30.currentTimeMillis() > field754) { UserComparator8.setWindowedMode(class247.getWindowedMode()); } @@ -2188,7 +2185,7 @@ public final class Client extends GameShell implements Usernamed { var5.writeInt(184); class43.js5Socket.write(var5.array, 0, 5); ++js5ConnectState; - VerticalAlignment.field3175 = class30.method566(); + VerticalAlignment.field3175 = class30.currentTimeMillis(); } if (js5ConnectState == 3) { @@ -2200,7 +2197,7 @@ public final class Client extends GameShell implements Usernamed { } ++js5ConnectState; - } else if (class30.method566() - VerticalAlignment.field3175 > 30000L) { + } else if (class30.currentTimeMillis() - VerticalAlignment.field3175 > 30000L) { this.js5Error(-2); return; } @@ -3037,7 +3034,7 @@ public final class Client extends GameShell implements Usernamed { var14 = InterfaceParent.getPacketBufferNode(ClientPacket.field2224, packetWriter.isaacCipher); var14.packetBuffer.writeShort(0); var15 = var14.packetBuffer.offset; - long var19 = class30.method566(); + long var19 = class30.currentTimeMillis(); for (var5 = 0; var5 < KeyHandler.field361; ++var5) { long var21 = var19 - field860; @@ -3883,15 +3880,15 @@ public final class Client extends GameShell implements Usernamed { return true; } - boolean var45; - if (ServerPacket.field2109 == var1.serverPacket) { - var45 = var3.readUnsignedByte() == 1; - if (var45) { - class81.field1135 = class30.method566() - var3.readLong(); - TileItem.grandExchangeEvents = new GrandExchangeEvents(var3, true); - } else { - TileItem.grandExchangeEvents = null; - } + boolean var45; + if (ServerPacket.field2109 == var1.serverPacket) { + var45 = var3.readUnsignedByte() == 1; + if (var45) { + class81.field1135 = class30.currentTimeMillis() - var3.readLong(); + TileItem.grandExchangeEvents = new GrandExchangeEvents(var3, true); + } else { + TileItem.grandExchangeEvents = null; + } field832 = cycleCntr; var1.serverPacket = null; @@ -4352,7 +4349,7 @@ public final class Client extends GameShell implements Usernamed { if (ServerPacket.field2130 == var1.serverPacket) { var16 = var3.readUnsignedByte(); - SequenceDefinition.method4756(var16); + SequenceDefinition.forceDisconnect(var16); var1.serverPacket = null; return false; } @@ -4956,7 +4953,7 @@ public final class Client extends GameShell implements Usernamed { } if (ServerPacket.field2111 == var1.serverPacket) { - DynamicObject.method2223(); + DynamicObject.logOut(); var1.serverPacket = null; return false; } @@ -5082,7 +5079,7 @@ public final class Client extends GameShell implements Usernamed { } class32.RunException_sendStackTrace("" + (var1.serverPacket != null ? var1.serverPacket.id : -1) + "," + (var1.field1291 != null ? var1.field1291.id : -1) + "," + (var1.field1301 != null ? var1.field1301.id : -1) + "," + var1.serverPacketLength, (Throwable)null); - DynamicObject.method2223(); + DynamicObject.logOut(); } catch (IOException var34) { MouseRecorder.method1213(); } catch (Exception var35) { @@ -5093,7 +5090,7 @@ public final class Client extends GameShell implements Usernamed { } class32.RunException_sendStackTrace(var31, var35); - DynamicObject.method2223(); + DynamicObject.logOut(); } return true; diff --git a/runescape-client/src/main/java/Coord.java b/runescape-client/src/main/java/Coord.java index 7f50a2b952..4de7315153 100644 --- a/runescape-client/src/main/java/Coord.java +++ b/runescape-client/src/main/java/Coord.java @@ -109,7 +109,8 @@ public class Coord { signature = "(I)V", garbageValue = "-2118719705" ) - static void method3976() { + @Export("closeWorldSelect") + static void closeWorldSelect() { Login.worldSelectOpen = false; WorldMapID.leftTitleSprite.drawAt(Login.xPadding, 0); class51.rightTitleSprite.drawAt(Login.xPadding + 382, 0); diff --git a/runescape-client/src/main/java/DynamicObject.java b/runescape-client/src/main/java/DynamicObject.java index 5fb35aa8b3..4fca28b6c8 100644 --- a/runescape-client/src/main/java/DynamicObject.java +++ b/runescape-client/src/main/java/DynamicObject.java @@ -198,7 +198,8 @@ public class DynamicObject extends Entity { signature = "(I)V", garbageValue = "274251023" ) - static final void method2223() { + @Export("logOut") + static final void logOut() { Client.packetWriter.close(); WorldMapIcon_1.method314(); PacketWriter.scene.clear(); diff --git a/runescape-client/src/main/java/FriendLoginUpdate.java b/runescape-client/src/main/java/FriendLoginUpdate.java index 8b4a123cfe..196341310a 100644 --- a/runescape-client/src/main/java/FriendLoginUpdate.java +++ b/runescape-client/src/main/java/FriendLoginUpdate.java @@ -33,7 +33,7 @@ public class FriendLoginUpdate extends Link { signature = "(Ljq;I)V" ) FriendLoginUpdate(Username var1, int var2) { - this.field3627 = (int)(class30.method566() / 1000L); + this.field3627 = (int)(class30.currentTimeMillis() / 1000L); this.username = var1; this.world = (short)var2; } diff --git a/runescape-client/src/main/java/FriendSystem.java b/runescape-client/src/main/java/FriendSystem.java index ca8f78cd1e..0c8c224209 100644 --- a/runescape-client/src/main/java/FriendSystem.java +++ b/runescape-client/src/main/java/FriendSystem.java @@ -85,7 +85,7 @@ public class FriendSystem { @Export("processFriendUpdates") final void processFriendUpdates() { for (FriendLoginUpdate var1 = (FriendLoginUpdate)this.friendsList.friendLoginUpdates.last(); var1 != null; var1 = (FriendLoginUpdate)this.friendsList.friendLoginUpdates.previous()) { - if ((long)var1.field3627 < class30.method566() / 1000L - 5L) { + if ((long)var1.field3627 < class30.currentTimeMillis() / 1000L - 5L) { if (var1.world > 0) { class210.addGameMessage(5, "", var1.username + " has logged in."); } diff --git a/runescape-client/src/main/java/GameShell.java b/runescape-client/src/main/java/GameShell.java index 9b4ce90159..002a66ad9e 100644 --- a/runescape-client/src/main/java/GameShell.java +++ b/runescape-client/src/main/java/GameShell.java @@ -63,7 +63,8 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene @ObfuscatedGetter( intValue = 1528666585 ) - static int field419; + @Export("gameCyclesToDo") + static int gameCyclesToDo; @ObfuscatedName("m") @ObfuscatedGetter( intValue = 1545406367 @@ -89,9 +90,11 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene @Export("clock") static Clock clock; @ObfuscatedName("a") - static long[] field430; + @Export("graphicsTickTimes") + static long[] graphicsTickTimes; @ObfuscatedName("t") - static long[] field431; + @Export("clientTickTimes") + static long[] clientTickTimes; @ObfuscatedName("ao") @ObfuscatedGetter( intValue = -1408016773 @@ -201,8 +204,8 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene cycleDurationMillis = 20; fiveOrOne = 1; fps = 0; - field430 = new long[32]; - field431 = new long[32]; + graphicsTickTimes = new long[32]; + clientTickTimes = new long[32]; field443 = 500; volatileFocus = true; garbageCollectorLastCollectionTime = -1L; @@ -524,7 +527,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene } this.isCanvasInvalid = false; - this.field446 = class30.method566(); + this.field446 = class30.currentTimeMillis(); } @ObfuscatedName("h") @@ -564,11 +567,12 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene signature = "(I)V", garbageValue = "-1775618326" ) - void method963() { - long var1 = class30.method566(); - long var3 = field431[WorldMapID.field259]; - field431[WorldMapID.field259] = var1; - WorldMapID.field259 = WorldMapID.field259 + 1 & 31; + @Export("clientTick") + void clientTick() { + long var1 = class30.currentTimeMillis(); + long var3 = clientTickTimes[WorldMapID.clientTickTimeIdx]; + clientTickTimes[WorldMapID.clientTickTimeIdx] = var1; + WorldMapID.clientTickTimeIdx = WorldMapID.clientTickTimeIdx + 1 & 31; if (0L != var3 && var1 > var3) { } @@ -584,12 +588,13 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene signature = "(I)V", garbageValue = "-2138228896" ) - void method956() { + @Export("graphicsTick") + void graphicsTick() { Container var1 = this.container(); - long var2 = class30.method566(); - long var4 = field430[Varcs.field1255]; - field430[Varcs.field1255] = var2; - Varcs.field1255 = Varcs.field1255 + 1 & 31; + long var2 = class30.currentTimeMillis(); + long var4 = graphicsTickTimes[Varcs.graphicsTickTimeIdx]; + graphicsTickTimes[Varcs.graphicsTickTimeIdx] = var2; + Varcs.graphicsTickTimeIdx = Varcs.graphicsTickTimeIdx + 1 & 31; if (var4 != 0L && var2 > var4) { int var6 = (int)(var2 - var4); fps = ((var6 >> 1) + 32000) / var6; @@ -848,7 +853,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene public final void destroy() { if (this == gameShell && !isKilled) { - stopTimeMs = class30.method566(); + stopTimeMs = class30.currentTimeMillis(); long var1 = 4999L; try { @@ -868,7 +873,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene public final synchronized void paint(Graphics var1) { if (this == gameShell && !isKilled) { this.field420 = true; - if (class30.method566() - this.field446 > 1000L) { + if (class30.currentTimeMillis() - this.field446 > 1000L) { Rectangle var2 = var1.getClipBounds(); if (var2 == null || var2.width >= FloorDecoration.canvasWidth && var2.height >= WallDecoration.canvasHeight) { this.isCanvasInvalid = true; @@ -910,14 +915,14 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene this.setUp(); clock = ItemContainer.newClock(); - while (0L == stopTimeMs || class30.method566() < stopTimeMs) { - field419 = clock.wait(cycleDurationMillis, fiveOrOne); + while (0L == stopTimeMs || class30.currentTimeMillis() < stopTimeMs) { + gameCyclesToDo = clock.wait(cycleDurationMillis, fiveOrOne); - for (int var5 = 0; var5 < field419; ++var5) { - this.method963(); + for (int var5 = 0; var5 < gameCyclesToDo; ++var5) { + this.clientTick(); } - this.method956(); + this.graphicsTick(); this.post(this.canvas); } } catch (Exception var6) { @@ -936,7 +941,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene public final void stop() { if (this == gameShell && !isKilled) { - stopTimeMs = class30.method566() + 4000L; + stopTimeMs = class30.currentTimeMillis() + 4000L; } } diff --git a/runescape-client/src/main/java/GrandExchangeOfferTotalQuantityComparator.java b/runescape-client/src/main/java/GrandExchangeOfferTotalQuantityComparator.java index f072a1a7a2..d72e0548e2 100644 --- a/runescape-client/src/main/java/GrandExchangeOfferTotalQuantityComparator.java +++ b/runescape-client/src/main/java/GrandExchangeOfferTotalQuantityComparator.java @@ -47,10 +47,10 @@ final class GrandExchangeOfferTotalQuantityComparator implements Comparator { garbageValue = "-1447475674" ) static int method100() { - if (Client.archiveLoaders != null && Client.archiveLoaderArchive < Client.archiveLoaders.size()) { + if (Client.archiveLoaders != null && Client.archiveLoadersDone < Client.archiveLoaders.size()) { int var0 = 0; - for (int var1 = 0; var1 <= Client.archiveLoaderArchive; ++var1) { + for (int var1 = 0; var1 <= Client.archiveLoadersDone; ++var1) { var0 += ((ArchiveLoader)Client.archiveLoaders.get(var1)).loadedCount; } diff --git a/runescape-client/src/main/java/LoginPacket.java b/runescape-client/src/main/java/LoginPacket.java index df6ed215c5..a4c62337ab 100644 --- a/runescape-client/src/main/java/LoginPacket.java +++ b/runescape-client/src/main/java/LoginPacket.java @@ -101,638 +101,619 @@ public class LoginPacket implements class181 { signature = "(Lbh;S)V", garbageValue = "21228" ) - static void method3587(GameShell var0) { - int var4; + @Export("doCycleTitle") + static void doCycleTitle(GameShell var0) { if (Login.worldSelectOpen) { - while (true) { - if (!DynamicObject.isKeyDown()) { - if (MouseHandler.MouseHandler_lastButton != 1 && (WorldMapIcon_1.mouseCam || MouseHandler.MouseHandler_lastButton != 4)) { - break; - } - - int var1 = Login.xPadding + 280; - if (MouseHandler.MouseHandler_lastPressedX >= var1 && MouseHandler.MouseHandler_lastPressedX <= var1 + 14 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { - class192.changeWorldSelectSorting(0, 0); - break; - } - - if (MouseHandler.MouseHandler_lastPressedX >= var1 + 15 && MouseHandler.MouseHandler_lastPressedX <= var1 + 80 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { - class192.changeWorldSelectSorting(0, 1); - break; - } - - int var2 = Login.xPadding + 390; - if (MouseHandler.MouseHandler_lastPressedX >= var2 && MouseHandler.MouseHandler_lastPressedX <= var2 + 14 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { - class192.changeWorldSelectSorting(1, 0); - break; - } - - if (MouseHandler.MouseHandler_lastPressedX >= var2 + 15 && MouseHandler.MouseHandler_lastPressedX <= var2 + 80 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { - class192.changeWorldSelectSorting(1, 1); - break; - } - - int var17 = Login.xPadding + 500; - if (MouseHandler.MouseHandler_lastPressedX >= var17 && MouseHandler.MouseHandler_lastPressedX <= var17 + 14 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { - class192.changeWorldSelectSorting(2, 0); - break; - } - - if (MouseHandler.MouseHandler_lastPressedX >= var17 + 15 && MouseHandler.MouseHandler_lastPressedX <= var17 + 80 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { - class192.changeWorldSelectSorting(2, 1); - break; - } - - var4 = Login.xPadding + 610; - if (MouseHandler.MouseHandler_lastPressedX >= var4 && MouseHandler.MouseHandler_lastPressedX <= var4 + 14 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { - class192.changeWorldSelectSorting(3, 0); - break; - } - - if (MouseHandler.MouseHandler_lastPressedX >= var4 + 15 && MouseHandler.MouseHandler_lastPressedX <= var4 + 80 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { - class192.changeWorldSelectSorting(3, 1); - break; - } - - if (MouseHandler.MouseHandler_lastPressedX >= Login.xPadding + 708 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedX <= Login.xPadding + 708 + 50 && MouseHandler.MouseHandler_lastPressedY <= 20) { - Coord.method3976(); - break; - } - - if (Login.hoveredWorldIndex != -1) { - World var5 = World.World_worlds[Login.hoveredWorldIndex]; - class4.changeWorld(var5); - Coord.method3976(); - } else { - if (Login.worldSelectPage > 0 && WorldMapIcon_0.worldSelectLeftSprite != null && MouseHandler.MouseHandler_lastPressedX >= 0 && MouseHandler.MouseHandler_lastPressedX <= WorldMapIcon_0.worldSelectLeftSprite.subWidth && MouseHandler.MouseHandler_lastPressedY >= WallDecoration.canvasHeight / 2 - 50 && MouseHandler.MouseHandler_lastPressedY <= WallDecoration.canvasHeight / 2 + 50) { + while (DynamicObject.isKeyDown()) { + if (SecureRandomFuture.field1230 == 13) { + Coord.closeWorldSelect(); + return; + } else if (SecureRandomFuture.field1230 == 96) { + if (Login.worldSelectPage > 0) { + if (WorldMapIcon_0.worldSelectLeftSprite != null) { --Login.worldSelectPage; } - - if (Login.worldSelectPage < Login.worldSelectPagesCount && HealthBar.worldSelectRightSprite != null && MouseHandler.MouseHandler_lastPressedX >= FloorDecoration.canvasWidth - HealthBar.worldSelectRightSprite.subWidth - 5 && MouseHandler.MouseHandler_lastPressedX <= FloorDecoration.canvasWidth && MouseHandler.MouseHandler_lastPressedY >= WallDecoration.canvasHeight / 2 - 50 && MouseHandler.MouseHandler_lastPressedY <= WallDecoration.canvasHeight / 2 + 50) { + } + } else if (SecureRandomFuture.field1230 == 97) { + if (Login.worldSelectPage < Login.worldSelectPagesCount) { + if (HealthBar.worldSelectRightSprite != null) { ++Login.worldSelectPage; } } + } + } + + if (MouseHandler.MouseHandler_lastButton != 1 && (WorldMapIcon_1.mouseCam || MouseHandler.MouseHandler_lastButton != 4)) { + return; + } + + int var1 = Login.xPadding + 280; + if (MouseHandler.MouseHandler_lastPressedX >= var1 && MouseHandler.MouseHandler_lastPressedX <= var1 + 14 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { + class192.changeWorldSelectSorting(0, 0); + return; + } + + if (MouseHandler.MouseHandler_lastPressedX >= var1 + 15 && MouseHandler.MouseHandler_lastPressedX <= var1 + 80 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { + class192.changeWorldSelectSorting(0, 1); + return; + } + + int var2 = Login.xPadding + 390; + if (MouseHandler.MouseHandler_lastPressedX >= var2 && MouseHandler.MouseHandler_lastPressedX <= var2 + 14 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { + class192.changeWorldSelectSorting(1, 0); + return; + } + + if (MouseHandler.MouseHandler_lastPressedX >= var2 + 15 && MouseHandler.MouseHandler_lastPressedX <= var2 + 80 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { + class192.changeWorldSelectSorting(1, 1); + return; + } + + int var17 = Login.xPadding + 500; + if (MouseHandler.MouseHandler_lastPressedX >= var17 && MouseHandler.MouseHandler_lastPressedX <= var17 + 14 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { + class192.changeWorldSelectSorting(2, 0); + return; + } + + if (MouseHandler.MouseHandler_lastPressedX >= var17 + 15 && MouseHandler.MouseHandler_lastPressedX <= var17 + 80 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { + class192.changeWorldSelectSorting(2, 1); + return; + } + + int var4 = Login.xPadding + 610; + if (MouseHandler.MouseHandler_lastPressedX >= var4 && MouseHandler.MouseHandler_lastPressedX <= var4 + 14 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { + class192.changeWorldSelectSorting(3, 0); + return; + } + + if (MouseHandler.MouseHandler_lastPressedX >= var4 + 15 && MouseHandler.MouseHandler_lastPressedX <= var4 + 80 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedY <= 18) { + class192.changeWorldSelectSorting(3, 1); + return; + } + + if (MouseHandler.MouseHandler_lastPressedX >= Login.xPadding + 708 && MouseHandler.MouseHandler_lastPressedY >= 4 && MouseHandler.MouseHandler_lastPressedX <= Login.xPadding + 708 + 50 && MouseHandler.MouseHandler_lastPressedY <= 20) { + Coord.closeWorldSelect(); + return; + } + + if (Login.hoveredWorldIndex != -1) { + World var5 = World.World_worlds[Login.hoveredWorldIndex]; + class4.changeWorld(var5); + Coord.closeWorldSelect(); + return; + } + + if (Login.worldSelectPage > 0 && WorldMapIcon_0.worldSelectLeftSprite != null && MouseHandler.MouseHandler_lastPressedX >= 0 && MouseHandler.MouseHandler_lastPressedX <= WorldMapIcon_0.worldSelectLeftSprite.subWidth && MouseHandler.MouseHandler_lastPressedY >= WallDecoration.canvasHeight / 2 - 50 && MouseHandler.MouseHandler_lastPressedY <= WallDecoration.canvasHeight / 2 + 50) { + --Login.worldSelectPage; + } + + if (Login.worldSelectPage < Login.worldSelectPagesCount && HealthBar.worldSelectRightSprite != null && MouseHandler.MouseHandler_lastPressedX >= FloorDecoration.canvasWidth - HealthBar.worldSelectRightSprite.subWidth - 5 && MouseHandler.MouseHandler_lastPressedX <= FloorDecoration.canvasWidth && MouseHandler.MouseHandler_lastPressedY >= WallDecoration.canvasHeight / 2 - 50 && MouseHandler.MouseHandler_lastPressedY <= WallDecoration.canvasHeight / 2 + 50) { + ++Login.worldSelectPage; + } + return; + } + + if ((MouseHandler.MouseHandler_lastButton == 1 || !WorldMapIcon_1.mouseCam && MouseHandler.MouseHandler_lastButton == 4) && MouseHandler.MouseHandler_lastPressedX >= Login.xPadding + 765 - 50 && MouseHandler.MouseHandler_lastPressedY >= 453) { + AbstractArchive.clientPreferences.titleMusicDisabled = !AbstractArchive.clientPreferences.titleMusicDisabled; + Language.savePreferences(); + if (!AbstractArchive.clientPreferences.titleMusicDisabled) { + UserComparator4.method3349(class225.archive6, "scape main", "", 255, false); + } else { + VertexNormal.method2960(); + } + } + + if (Client.gameState == 5) { + return; + } + + if (Login.field1181 == -1L) { + Login.field1181 = class30.currentTimeMillis() + 1000L; + } + + long var12 = class30.currentTimeMillis(); + boolean var3; + if (Client.archiveLoaders == null || Client.archiveLoadersDone >= Client.archiveLoaders.size()) { + var3 = true; + } else { + while (true) { + if (Client.archiveLoadersDone >= Client.archiveLoaders.size()) { + var3 = true; break; } + ArchiveLoader var15 = (ArchiveLoader)Client.archiveLoaders.get(Client.archiveLoadersDone); + if (!var15.isLoaded()) { + var3 = false; + break; + } + + ++Client.archiveLoadersDone; + } + } + + if (var3 && Login.field1177 == -1L) { + Login.field1177 = var12; + if (Login.field1177 > Login.field1181) { + Login.field1181 = Login.field1177; + } + } + + if (Client.gameState != 10 && Client.gameState != 11) { + return; + } + if (WorldMapLabelSize.clientLanguage == Language.Language_EN) { + if (MouseHandler.MouseHandler_lastButton == 1 || !WorldMapIcon_1.mouseCam && MouseHandler.MouseHandler_lastButton == 4) { + int var4 = Login.xPadding + 5; + short var14 = 463; + byte var6 = 100; + byte var7 = 35; + if (MouseHandler.MouseHandler_lastPressedX >= var4 && MouseHandler.MouseHandler_lastPressedX <= var6 + var4 && MouseHandler.MouseHandler_lastPressedY >= var14 && MouseHandler.MouseHandler_lastPressedY <= var14 + var7) { + if (BufferedNetSocket.loadWorlds()) { + Login.worldSelectOpen = true; + Login.worldSelectPage = 0; + Login.worldSelectPagesCount = 0; + } + + return; + } + } + + if (class51.World_request != null && BufferedNetSocket.loadWorlds()) { + Login.worldSelectOpen = true; + Login.worldSelectPage = 0; + Login.worldSelectPagesCount = 0; + } + } + + int var4 = MouseHandler.MouseHandler_lastButton; + int var25 = MouseHandler.MouseHandler_lastPressedX; + int var18 = MouseHandler.MouseHandler_lastPressedY; + if (var4 == 0) { + var25 = MouseHandler.MouseHandler_x; + var18 = MouseHandler.MouseHandler_y; + } + + if (!WorldMapIcon_1.mouseCam && var4 == 4) { + var4 = 1; + } + + if (Login.loginIndex == 0) { + boolean var19 = false; + + while (DynamicObject.isKeyDown()) { + if (SecureRandomFuture.field1230 == 84) { + var19 = true; + } + } + + int var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 80; + short var9 = 291; + if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { + ArchiveDiskActionHandler.openURL(FaceNormal.method3229("secure", true) + "m=account-creation/g=oldscape/create_account_funnel.ws", true, false); + } + + var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 80; + if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20 || var19) { + if ((Client.worldProperties & 33554432) != 0) { + Login.Login_response0 = ""; + Login.Login_response1 = "This is a Beta world."; + Login.Login_response2 = "Your normal account will not be affected."; + Login.Login_response3 = ""; + Login.loginIndex = 1; + if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) { + Login.currentLoginField = 1; + } else { + Login.currentLoginField = 0; + } + } else if ((Client.worldProperties & 4) != 0) { + if ((Client.worldProperties & 1024) != 0) { + Login.Login_response1 = "This is a High Risk PvP world."; + Login.Login_response2 = "Players can attack each other almost everywhere"; + Login.Login_response3 = "and the Protect Item prayer won't work."; + } else { + Login.Login_response1 = "This is a PvP world."; + Login.Login_response2 = "Players can attack each other"; + Login.Login_response3 = "almost everywhere."; + } + + Login.Login_response0 = "Warning!"; + Login.loginIndex = 1; + if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) { + Login.currentLoginField = 1; + } else { + Login.currentLoginField = 0; + } + } else if ((Client.worldProperties & 1024) != 0) { + Login.Login_response1 = "This is a High Risk world."; + Login.Login_response2 = "The Protect Item prayer will"; + Login.Login_response3 = "not work on this world."; + Login.Login_response0 = "Warning!"; + Login.loginIndex = 1; + if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) { + Login.currentLoginField = 1; + } else { + Login.currentLoginField = 0; + } + } else { + TilePaint.Login_promptCredentials(false); + } + } + } else if (Login.loginIndex == 1) { + while (DynamicObject.isKeyDown()) { + if (SecureRandomFuture.field1230 == 84) { + TilePaint.Login_promptCredentials(false); + } else if (SecureRandomFuture.field1230 == 13) { + Login.loginIndex = 0; + } + } + + int var20 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 80; + short var22 = 321; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + TilePaint.Login_promptCredentials(false); + } + + var20 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 80; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + Login.loginIndex = 0; + } + } else if (Login.loginIndex == 2) { + short var21 = 201; + int var20 = var21 + 52; + if (var4 == 1 && var18 >= var20 - 12 && var18 < var20 + 2) { + Login.currentLoginField = 0; + } + + var20 += 15; + if (var4 == 1 && var18 >= var20 - 12 && var18 < var20 + 2) { + Login.currentLoginField = 1; + } + + var20 += 15; + var21 = 361; + if (LoginScreenAnimation.field1032 != null) { + int var8 = LoginScreenAnimation.field1032.highX / 2; + if (var4 == 1 && var25 >= LoginScreenAnimation.field1032.lowX - var8 && var25 <= var8 + LoginScreenAnimation.field1032.lowX && var18 >= var21 - 15 && var18 < var21) { + switch (Login.field1171) { + case 1: + PlayerType.setLoginResponseString("Please enter your username.", "If you created your account after November", "2010, this will be the creation email address."); + Login.loginIndex = 5; + return; + case 2: + ArchiveDiskActionHandler.openURL("https://support.runescape.com/hc/en-gb", true, false); + } + } + } + + int var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 80; + short var9 = 321; + if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { + Login.Login_username = Login.Login_username.trim(); + if (Login.Login_username.length() == 0) { + PlayerType.setLoginResponseString("", "Please enter your username/email address.", ""); + return; + } + + if (Login.Login_password.length() == 0) { + PlayerType.setLoginResponseString("", "Please enter your password.", ""); + return; + } + + PlayerType.setLoginResponseString("", "Connecting to server...", ""); + PlayerType.method4104(false); + MouseRecorder.updateGameState(20); + return; + } + + var8 = Login.loginBoxX + 180 + 80; + if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { + Login.loginIndex = 0; + Login.Login_username = ""; + Login.Login_password = ""; + class185.field2305 = 0; + DesktopPlatformInfoProvider.otp = ""; + Login.field1183 = true; + } + + var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + -117; + var9 = 277; + Login.field1176 = var25 >= var8 && var25 < var8 + class83.field1145 && var18 >= var9 && var18 < var9 + WorldMapCacheName.field286; + if (var4 == 1 && Login.field1176) { + Client.Login_isUsernameRemembered = !Client.Login_isUsernameRemembered; + if (!Client.Login_isUsernameRemembered && AbstractArchive.clientPreferences.rememberedUsername != null) { + AbstractArchive.clientPreferences.rememberedUsername = null; + Language.savePreferences(); + } + } + + var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 24; + var9 = 277; + Login.field1192 = var25 >= var8 && var25 < var8 + class83.field1145 && var18 >= var9 && var18 < var9 + WorldMapCacheName.field286; + if (var4 == 1 && Login.field1192) { + AbstractArchive.clientPreferences.hideUsername = !AbstractArchive.clientPreferences.hideUsername; + if (!AbstractArchive.clientPreferences.hideUsername) { + Login.Login_username = ""; + AbstractArchive.clientPreferences.rememberedUsername = null; + if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) { + Login.currentLoginField = 1; + } else { + Login.currentLoginField = 0; + } + } + + Language.savePreferences(); + } + + while (DynamicObject.isKeyDown()) { + boolean var10 = false; + + for (int var11 = 0; var11 < "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".length(); ++var11) { + if (KeyHandler.field381 == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".charAt(var11)) { + var10 = true; + break; + } + } + if (SecureRandomFuture.field1230 == 13) { - Coord.method3976(); + Login.loginIndex = 0; + Login.Login_username = ""; + Login.Login_password = ""; + class185.field2305 = 0; + DesktopPlatformInfoProvider.otp = ""; + Login.field1183 = true; + } else if (Login.currentLoginField == 0) { + if (SecureRandomFuture.field1230 == 85 && Login.Login_username.length() > 0) { + Login.Login_username = Login.Login_username.substring(0, Login.Login_username.length() - 1); + } + + if (SecureRandomFuture.field1230 == 84 || SecureRandomFuture.field1230 == 80) { + Login.currentLoginField = 1; + } + + if (var10 && Login.Login_username.length() < 320) { + Login.Login_username = Login.Login_username + KeyHandler.field381; + } + } else if (Login.currentLoginField == 1) { + if (SecureRandomFuture.field1230 == 85 && Login.Login_password.length() > 0) { + Login.Login_password = Login.Login_password.substring(0, Login.Login_password.length() - 1); + } + + if (SecureRandomFuture.field1230 == 84 || SecureRandomFuture.field1230 == 80) { + Login.currentLoginField = 0; + } + + if (SecureRandomFuture.field1230 == 84) { + Login.Login_username = Login.Login_username.trim(); + if (Login.Login_username.length() == 0) { + PlayerType.setLoginResponseString("", "Please enter your username/email address.", ""); + return; + } + + if (Login.Login_password.length() == 0) { + PlayerType.setLoginResponseString("", "Please enter your password.", ""); + return; + } + + PlayerType.setLoginResponseString("", "Connecting to server...", ""); + PlayerType.method4104(false); + MouseRecorder.updateGameState(20); + return; + } + + if (var10 && Login.Login_password.length() < 20) { + Login.Login_password = Login.Login_password + KeyHandler.field381; + } + } + } + } else if (Login.loginIndex == 3) { + int var20 = Login.loginBoxX + 180; + short var22 = 276; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + TilePaint.Login_promptCredentials(false); + } + + var20 = Login.loginBoxX + 180; + var22 = 326; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + PlayerType.setLoginResponseString("Please enter your username.", "If you created your account after November", "2010, this will be the creation email address."); + Login.loginIndex = 5; + } + } else if (Login.loginIndex == 4) { + int var20 = Login.loginBoxX + 180 - 80; + short var22 = 321; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + DesktopPlatformInfoProvider.otp.trim(); + if (DesktopPlatformInfoProvider.otp.length() != 6) { + PlayerType.setLoginResponseString("", "Please enter a 6-digit PIN.", ""); + return; + } + + class185.field2305 = Integer.parseInt(DesktopPlatformInfoProvider.otp); + DesktopPlatformInfoProvider.otp = ""; + PlayerType.method4104(true); + PlayerType.setLoginResponseString("", "Connecting to server...", ""); + MouseRecorder.updateGameState(20); + return; + } + + if (var4 == 1 && var25 >= Login.loginBoxX + 180 - 9 && var25 <= Login.loginBoxX + 180 + 130 && var18 >= 263 && var18 <= 296) { + Login.field1183 = !Login.field1183; + } + + if (var4 == 1 && var25 >= Login.loginBoxX + 180 - 34 && var25 <= Login.loginBoxX + 34 + 180 && var18 >= 351 && var18 <= 363) { + ArchiveDiskActionHandler.openURL(FaceNormal.method3229("secure", true) + "m=totp-authenticator/disableTOTPRequest", true, false); + } + + var20 = Login.loginBoxX + 180 + 80; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + Login.loginIndex = 0; + Login.Login_username = ""; + Login.Login_password = ""; + class185.field2305 = 0; + DesktopPlatformInfoProvider.otp = ""; + } + + while (DynamicObject.isKeyDown()) { + boolean var23 = false; + + for (int var24 = 0; var24 < "1234567890".length(); ++var24) { + if (KeyHandler.field381 == "1234567890".charAt(var24)) { + var23 = true; + break; + } + } + + if (SecureRandomFuture.field1230 == 13) { + Login.loginIndex = 0; + Login.Login_username = ""; + Login.Login_password = ""; + class185.field2305 = 0; + DesktopPlatformInfoProvider.otp = ""; + } else { + if (SecureRandomFuture.field1230 == 85 && DesktopPlatformInfoProvider.otp.length() > 0) { + DesktopPlatformInfoProvider.otp = DesktopPlatformInfoProvider.otp.substring(0, DesktopPlatformInfoProvider.otp.length() - 1); + } + + if (SecureRandomFuture.field1230 == 84) { + DesktopPlatformInfoProvider.otp.trim(); + if (DesktopPlatformInfoProvider.otp.length() != 6) { + PlayerType.setLoginResponseString("", "Please enter a 6-digit PIN.", ""); + return; + } + + class185.field2305 = Integer.parseInt(DesktopPlatformInfoProvider.otp); + DesktopPlatformInfoProvider.otp = ""; + PlayerType.method4104(true); + PlayerType.setLoginResponseString("", "Connecting to server...", ""); + MouseRecorder.updateGameState(20); + return; + } + + if (var23 && DesktopPlatformInfoProvider.otp.length() < 6) { + DesktopPlatformInfoProvider.otp = DesktopPlatformInfoProvider.otp + KeyHandler.field381; + } + } + } + } else if (Login.loginIndex == 5) { + int var20 = Login.loginBoxX + 180 - 80; + short var22 = 321; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + GrandExchangeOfferAgeComparator.method167(); + return; + } + + var20 = Login.loginBoxX + 180 + 80; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + TilePaint.Login_promptCredentials(true); + } + + short var9 = 361; + if (class162.field1988 != null) { + int var24 = class162.field1988.highX / 2; + if (var4 == 1 && var25 >= class162.field1988.lowX - var24 && var25 <= var24 + class162.field1988.lowX && var18 >= var9 - 15 && var18 < var9) { + ArchiveDiskActionHandler.openURL(FaceNormal.method3229("secure", true) + "m=weblogin/g=oldscape/cant_log_in", true, false); + } + } + + while (DynamicObject.isKeyDown()) { + boolean var10 = false; + + for (int var11 = 0; var11 < "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".length(); ++var11) { + if (KeyHandler.field381 == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".charAt(var11)) { + var10 = true; + break; + } + } + + if (SecureRandomFuture.field1230 == 13) { + TilePaint.Login_promptCredentials(true); + } else { + if (SecureRandomFuture.field1230 == 85 && Login.Login_username.length() > 0) { + Login.Login_username = Login.Login_username.substring(0, Login.Login_username.length() - 1); + } + + if (SecureRandomFuture.field1230 == 84) { + GrandExchangeOfferAgeComparator.method167(); + return; + } + + if (var10 && Login.Login_username.length() < 320) { + Login.Login_username = Login.Login_username + KeyHandler.field381; + } + } + } + } else if (Login.loginIndex == 6) { + while (DynamicObject.isKeyDown()) { + if (SecureRandomFuture.field1230 == 84 || SecureRandomFuture.field1230 == 13) { + TilePaint.Login_promptCredentials(true); + } + } + + short var21 = 321; + if (var4 == 1 && var18 >= var21 - 20 && var18 <= var21 + 20){ + TilePaint.Login_promptCredentials(true); + } + } else if (Login.loginIndex == 7) { + int var20 = Login.loginBoxX + 180 - 80; + short var22 = 321; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + ArchiveDiskActionHandler.openURL(FaceNormal.method3229("secure", true) + "m=dob/set_dob.ws", true, false); + PlayerType.setLoginResponseString("", "Page has opened in a new window.", "(Please check your popup blocker.)"); + Login.loginIndex = 6; + return; + } + + var20 = Login.loginBoxX + 180 + 80; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + TilePaint.Login_promptCredentials(true); + } + } else if (Login.loginIndex == 8) { + int var20 = Login.loginBoxX + 180 - 80; + short var22 = 321; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + ArchiveDiskActionHandler.openURL("https://www.jagex.com/terms/privacy/#eight", true, false); + PlayerType.setLoginResponseString("", "Page has opened in a new window.", "(Please check your popup blocker.)"); + Login.loginIndex = 6; + return; + } + + var20 = Login.loginBoxX + 180 + 80; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + TilePaint.Login_promptCredentials(true); + } + } else if (Login.loginIndex == 12) { + String var16 = ""; + switch (Login.field1174) { + case 0: + var16 = "https://support.runescape.com/hc/en-gb/articles/115002238729-Account-Bans"; break; - } - - if (SecureRandomFuture.field1230 == 96) { - if (Login.worldSelectPage > 0 && WorldMapIcon_0.worldSelectLeftSprite != null) { - --Login.worldSelectPage; - } - } else if (SecureRandomFuture.field1230 == 97 && Login.worldSelectPage < Login.worldSelectPagesCount && HealthBar.worldSelectRightSprite != null) { - ++Login.worldSelectPage; - } + case 1: + var16 = "https://support.runescape.com/hc/en-gb/articles/206103939-My-account-is-locked"; + break; + default: + TilePaint.Login_promptCredentials(false); } - } else { - if ((MouseHandler.MouseHandler_lastButton == 1 || !WorldMapIcon_1.mouseCam && MouseHandler.MouseHandler_lastButton == 4) && MouseHandler.MouseHandler_lastPressedX >= Login.xPadding + 765 - 50 && MouseHandler.MouseHandler_lastPressedY >= 453) { - AbstractArchive.clientPreferences.titleMusicDisabled = !AbstractArchive.clientPreferences.titleMusicDisabled; - Language.savePreferences(); - if (!AbstractArchive.clientPreferences.titleMusicDisabled) { - UserComparator4.method3349(class225.archive6, "scape main", "", 255, false); - } else { - VertexNormal.method2960(); - } + int var8 = Login.loginBoxX + 180; + short var9 = 276; + if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { + ArchiveDiskActionHandler.openURL(var16, true, false); + PlayerType.setLoginResponseString("", "Page has opened in a new window.", "(Please check your popup blocker.)"); + Login.loginIndex = 6; + return; } - if (Client.gameState != 5) { - if (Login.field1181 == -1L) { - Login.field1181 = class30.method566() + 1000L; - } - - long var12 = class30.method566(); - boolean var3; - if (Client.archiveLoaders != null && Client.archiveLoaderArchive < Client.archiveLoaders.size()) { - while (true) { - if (Client.archiveLoaderArchive >= Client.archiveLoaders.size()) { - var3 = true; - break; - } - - ArchiveLoader var15 = (ArchiveLoader)Client.archiveLoaders.get(Client.archiveLoaderArchive); - if (!var15.isLoaded()) { - var3 = false; - break; - } - - ++Client.archiveLoaderArchive; - } - } else { - var3 = true; - } - - if (var3 && Login.field1177 == -1L) { - Login.field1177 = var12; - if (Login.field1177 > Login.field1181) { - Login.field1181 = Login.field1177; - } - } - - if (Client.gameState == 10 || Client.gameState == 11) { - if (WorldMapLabelSize.clientLanguage == Language.Language_EN) { - if (MouseHandler.MouseHandler_lastButton == 1 || !WorldMapIcon_1.mouseCam && MouseHandler.MouseHandler_lastButton == 4) { - var4 = Login.xPadding + 5; - short var14 = 463; - byte var6 = 100; - byte var7 = 35; - if (MouseHandler.MouseHandler_lastPressedX >= var4 && MouseHandler.MouseHandler_lastPressedX <= var6 + var4 && MouseHandler.MouseHandler_lastPressedY >= var14 && MouseHandler.MouseHandler_lastPressedY <= var14 + var7) { - if (BufferedNetSocket.loadWorlds()) { - Login.worldSelectOpen = true; - Login.worldSelectPage = 0; - Login.worldSelectPagesCount = 0; - } - - return; - } - } - - if (class51.World_request != null && BufferedNetSocket.loadWorlds()) { - Login.worldSelectOpen = true; - Login.worldSelectPage = 0; - Login.worldSelectPagesCount = 0; - } - } - - var4 = MouseHandler.MouseHandler_lastButton; - int var25 = MouseHandler.MouseHandler_lastPressedX; - int var18 = MouseHandler.MouseHandler_lastPressedY; - if (var4 == 0) { - var25 = MouseHandler.MouseHandler_x; - var18 = MouseHandler.MouseHandler_y; - } - - if (!WorldMapIcon_1.mouseCam && var4 == 4) { - var4 = 1; - } - - int var8; - short var9; - if (Login.loginIndex == 0) { - boolean var19 = false; - - while (DynamicObject.isKeyDown()) { - if (SecureRandomFuture.field1230 == 84) { - var19 = true; - } - } - - var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 80; - var9 = 291; - if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { - ArchiveDiskActionHandler.openURL(FaceNormal.method3229("secure", true) + "m=account-creation/g=oldscape/create_account_funnel.ws", true, false); - } - - var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 80; - if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20 || var19) { - if ((Client.worldProperties & 33554432) != 0) { - Login.Login_response0 = ""; - Login.Login_response1 = "This is a Beta world."; - Login.Login_response2 = "Your normal account will not be affected."; - Login.Login_response3 = ""; - Login.loginIndex = 1; - if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) { - Login.currentLoginField = 1; - } else { - Login.currentLoginField = 0; - } - } else if ((Client.worldProperties & 4) != 0) { - if ((Client.worldProperties & 1024) != 0) { - Login.Login_response1 = "This is a High Risk PvP world."; - Login.Login_response2 = "Players can attack each other almost everywhere"; - Login.Login_response3 = "and the Protect Item prayer won't work."; - } else { - Login.Login_response1 = "This is a PvP world."; - Login.Login_response2 = "Players can attack each other"; - Login.Login_response3 = "almost everywhere."; - } - - Login.Login_response0 = "Warning!"; - Login.loginIndex = 1; - if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) { - Login.currentLoginField = 1; - } else { - Login.currentLoginField = 0; - } - } else if ((Client.worldProperties & 1024) != 0) { - Login.Login_response1 = "This is a High Risk world."; - Login.Login_response2 = "The Protect Item prayer will"; - Login.Login_response3 = "not work on this world."; - Login.Login_response0 = "Warning!"; - Login.loginIndex = 1; - if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) { - Login.currentLoginField = 1; - } else { - Login.currentLoginField = 0; - } - } else { - TilePaint.method3043(false); - } - } - } else { - int var20; - short var22; - if (Login.loginIndex != 1) { - boolean var10; - int var11; - short var21; - if (Login.loginIndex == 2) { - var21 = 201; - var20 = var21 + 52; - if (var4 == 1 && var18 >= var20 - 12 && var18 < var20 + 2) { - Login.currentLoginField = 0; - } - - var20 += 15; - if (var4 == 1 && var18 >= var20 - 12 && var18 < var20 + 2) { - Login.currentLoginField = 1; - } - - var20 += 15; - var21 = 361; - if (LoginScreenAnimation.field1032 != null) { - var8 = LoginScreenAnimation.field1032.highX / 2; - if (var4 == 1 && var25 >= LoginScreenAnimation.field1032.lowX - var8 && var25 <= var8 + LoginScreenAnimation.field1032.lowX && var18 >= var21 - 15 && var18 < var21) { - switch(Login.field1171) { - case 1: - PlayerType.setLoginResponseString("Please enter your username.", "If you created your account after November", "2010, this will be the creation email address."); - Login.loginIndex = 5; - return; - case 2: - ArchiveDiskActionHandler.openURL("https://support.runescape.com/hc/en-gb", true, false); - } - } - } - - var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 80; - var9 = 321; - if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { - Login.Login_username = Login.Login_username.trim(); - if (Login.Login_username.length() == 0) { - PlayerType.setLoginResponseString("", "Please enter your username/email address.", ""); - return; - } - - if (Login.Login_password.length() == 0) { - PlayerType.setLoginResponseString("", "Please enter your password.", ""); - return; - } - - PlayerType.setLoginResponseString("", "Connecting to server...", ""); - PlayerType.method4104(false); - MouseRecorder.updateGameState(20); - return; - } - - var8 = Login.loginBoxX + 180 + 80; - if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { - Login.loginIndex = 0; - Login.Login_username = ""; - Login.Login_password = ""; - class185.field2305 = 0; - DesktopPlatformInfoProvider.otp = ""; - Login.field1183 = true; - } - - var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + -117; - var9 = 277; - Login.field1176 = var25 >= var8 && var25 < var8 + class83.field1145 && var18 >= var9 && var18 < var9 + WorldMapCacheName.field286; - if (var4 == 1 && Login.field1176) { - Client.Login_isUsernameRemembered = !Client.Login_isUsernameRemembered; - if (!Client.Login_isUsernameRemembered && AbstractArchive.clientPreferences.rememberedUsername != null) { - AbstractArchive.clientPreferences.rememberedUsername = null; - Language.savePreferences(); - } - } - - var8 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 24; - var9 = 277; - Login.field1192 = var25 >= var8 && var25 < var8 + class83.field1145 && var18 >= var9 && var18 < var9 + WorldMapCacheName.field286; - if (var4 == 1 && Login.field1192) { - AbstractArchive.clientPreferences.hideUsername = !AbstractArchive.clientPreferences.hideUsername; - if (!AbstractArchive.clientPreferences.hideUsername) { - Login.Login_username = ""; - AbstractArchive.clientPreferences.rememberedUsername = null; - if (Client.Login_isUsernameRemembered && Login.Login_username != null && Login.Login_username.length() > 0) { - Login.currentLoginField = 1; - } else { - Login.currentLoginField = 0; - } - } - - Language.savePreferences(); - } - - while (true) { - while (DynamicObject.isKeyDown()) { - var10 = false; - - for (var11 = 0; var11 < "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".length(); ++var11) { - if (KeyHandler.field381 == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".charAt(var11)) { - var10 = true; - break; - } - } - - if (SecureRandomFuture.field1230 == 13) { - Login.loginIndex = 0; - Login.Login_username = ""; - Login.Login_password = ""; - class185.field2305 = 0; - DesktopPlatformInfoProvider.otp = ""; - Login.field1183 = true; - } else if (Login.currentLoginField == 0) { - if (SecureRandomFuture.field1230 == 85 && Login.Login_username.length() > 0) { - Login.Login_username = Login.Login_username.substring(0, Login.Login_username.length() - 1); - } - - if (SecureRandomFuture.field1230 == 84 || SecureRandomFuture.field1230 == 80) { - Login.currentLoginField = 1; - } - - if (var10 && Login.Login_username.length() < 320) { - Login.Login_username = Login.Login_username + KeyHandler.field381; - } - } else if (Login.currentLoginField == 1) { - if (SecureRandomFuture.field1230 == 85 && Login.Login_password.length() > 0) { - Login.Login_password = Login.Login_password.substring(0, Login.Login_password.length() - 1); - } - - if (SecureRandomFuture.field1230 == 84 || SecureRandomFuture.field1230 == 80) { - Login.currentLoginField = 0; - } - - if (SecureRandomFuture.field1230 == 84) { - Login.Login_username = Login.Login_username.trim(); - if (Login.Login_username.length() == 0) { - PlayerType.setLoginResponseString("", "Please enter your username/email address.", ""); - return; - } - - if (Login.Login_password.length() == 0) { - PlayerType.setLoginResponseString("", "Please enter your password.", ""); - return; - } - - PlayerType.setLoginResponseString("", "Connecting to server...", ""); - PlayerType.method4104(false); - MouseRecorder.updateGameState(20); - return; - } - - if (var10 && Login.Login_password.length() < 20) { - Login.Login_password = Login.Login_password + KeyHandler.field381; - } - } - } - - return; - } - } else if (Login.loginIndex == 3) { - var20 = Login.loginBoxX + 180; - var22 = 276; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - TilePaint.method3043(false); - } - - var20 = Login.loginBoxX + 180; - var22 = 326; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - PlayerType.setLoginResponseString("Please enter your username.", "If you created your account after November", "2010, this will be the creation email address."); - Login.loginIndex = 5; - return; - } - } else { - int var24; - if (Login.loginIndex == 4) { - var20 = Login.loginBoxX + 180 - 80; - var22 = 321; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - DesktopPlatformInfoProvider.otp.trim(); - if (DesktopPlatformInfoProvider.otp.length() != 6) { - PlayerType.setLoginResponseString("", "Please enter a 6-digit PIN.", ""); - return; - } - - class185.field2305 = Integer.parseInt(DesktopPlatformInfoProvider.otp); - DesktopPlatformInfoProvider.otp = ""; - PlayerType.method4104(true); - PlayerType.setLoginResponseString("", "Connecting to server...", ""); - MouseRecorder.updateGameState(20); - return; - } - - if (var4 == 1 && var25 >= Login.loginBoxX + 180 - 9 && var25 <= Login.loginBoxX + 180 + 130 && var18 >= 263 && var18 <= 296) { - Login.field1183 = !Login.field1183; - } - - if (var4 == 1 && var25 >= Login.loginBoxX + 180 - 34 && var25 <= Login.loginBoxX + 34 + 180 && var18 >= 351 && var18 <= 363) { - ArchiveDiskActionHandler.openURL(FaceNormal.method3229("secure", true) + "m=totp-authenticator/disableTOTPRequest", true, false); - } - - var20 = Login.loginBoxX + 180 + 80; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - Login.loginIndex = 0; - Login.Login_username = ""; - Login.Login_password = ""; - class185.field2305 = 0; - DesktopPlatformInfoProvider.otp = ""; - } - - while (DynamicObject.isKeyDown()) { - boolean var23 = false; - - for (var24 = 0; var24 < "1234567890".length(); ++var24) { - if (KeyHandler.field381 == "1234567890".charAt(var24)) { - var23 = true; - break; - } - } - - if (SecureRandomFuture.field1230 == 13) { - Login.loginIndex = 0; - Login.Login_username = ""; - Login.Login_password = ""; - class185.field2305 = 0; - DesktopPlatformInfoProvider.otp = ""; - } else { - if (SecureRandomFuture.field1230 == 85 && DesktopPlatformInfoProvider.otp.length() > 0) { - DesktopPlatformInfoProvider.otp = DesktopPlatformInfoProvider.otp.substring(0, DesktopPlatformInfoProvider.otp.length() - 1); - } - - if (SecureRandomFuture.field1230 == 84) { - DesktopPlatformInfoProvider.otp.trim(); - if (DesktopPlatformInfoProvider.otp.length() != 6) { - PlayerType.setLoginResponseString("", "Please enter a 6-digit PIN.", ""); - return; - } - - class185.field2305 = Integer.parseInt(DesktopPlatformInfoProvider.otp); - DesktopPlatformInfoProvider.otp = ""; - PlayerType.method4104(true); - PlayerType.setLoginResponseString("", "Connecting to server...", ""); - MouseRecorder.updateGameState(20); - return; - } - - if (var23 && DesktopPlatformInfoProvider.otp.length() < 6) { - DesktopPlatformInfoProvider.otp = DesktopPlatformInfoProvider.otp + KeyHandler.field381; - } - } - } - } else if (Login.loginIndex == 5) { - var20 = Login.loginBoxX + 180 - 80; - var22 = 321; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - GrandExchangeOfferAgeComparator.method167(); - return; - } - - var20 = Login.loginBoxX + 180 + 80; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - TilePaint.method3043(true); - } - - var9 = 361; - if (class162.field1988 != null) { - var24 = class162.field1988.highX / 2; - if (var4 == 1 && var25 >= class162.field1988.lowX - var24 && var25 <= var24 + class162.field1988.lowX && var18 >= var9 - 15 && var18 < var9) { - ArchiveDiskActionHandler.openURL(FaceNormal.method3229("secure", true) + "m=weblogin/g=oldscape/cant_log_in", true, false); - } - } - - while (DynamicObject.isKeyDown()) { - var10 = false; - - for (var11 = 0; var11 < "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".length(); ++var11) { - if (KeyHandler.field381 == "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!\"£$%^&*()-_=+[{]};:'@#~,<.>/?\\| ".charAt(var11)) { - var10 = true; - break; - } - } - - if (SecureRandomFuture.field1230 == 13) { - TilePaint.method3043(true); - } else { - if (SecureRandomFuture.field1230 == 85 && Login.Login_username.length() > 0) { - Login.Login_username = Login.Login_username.substring(0, Login.Login_username.length() - 1); - } - - if (SecureRandomFuture.field1230 == 84) { - GrandExchangeOfferAgeComparator.method167(); - return; - } - - if (var10 && Login.Login_username.length() < 320) { - Login.Login_username = Login.Login_username + KeyHandler.field381; - } - } - } - } else if (Login.loginIndex == 6) { - while (true) { - do { - if (!DynamicObject.isKeyDown()) { - var21 = 321; - if (var4 == 1 && var18 >= var21 - 20 && var18 <= var21 + 20) { - TilePaint.method3043(true); - } - - return; - } - } while(SecureRandomFuture.field1230 != 84 && SecureRandomFuture.field1230 != 13); - - TilePaint.method3043(true); - } - } else if (Login.loginIndex == 7) { - var20 = Login.loginBoxX + 180 - 80; - var22 = 321; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - ArchiveDiskActionHandler.openURL(FaceNormal.method3229("secure", true) + "m=dob/set_dob.ws", true, false); - PlayerType.setLoginResponseString("", "Page has opened in a new window.", "(Please check your popup blocker.)"); - Login.loginIndex = 6; - return; - } - - var20 = Login.loginBoxX + 180 + 80; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - TilePaint.method3043(true); - } - } else if (Login.loginIndex == 8) { - var20 = Login.loginBoxX + 180 - 80; - var22 = 321; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - ArchiveDiskActionHandler.openURL("https://www.jagex.com/terms/privacy/#eight", true, false); - PlayerType.setLoginResponseString("", "Page has opened in a new window.", "(Please check your popup blocker.)"); - Login.loginIndex = 6; - return; - } - - var20 = Login.loginBoxX + 180 + 80; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - TilePaint.method3043(true); - } - } else if (Login.loginIndex == 12) { - String var16 = ""; - switch(Login.field1174) { - case 0: - var16 = "https://support.runescape.com/hc/en-gb/articles/115002238729-Account-Bans"; - break; - case 1: - var16 = "https://support.runescape.com/hc/en-gb/articles/206103939-My-account-is-locked"; - break; - default: - TilePaint.method3043(false); - } - - var8 = Login.loginBoxX + 180; - var9 = 276; - if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { - ArchiveDiskActionHandler.openURL(var16, true, false); - PlayerType.setLoginResponseString("", "Page has opened in a new window.", "(Please check your popup blocker.)"); - Login.loginIndex = 6; - return; - } - - var8 = Login.loginBoxX + 180; - var9 = 326; - if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { - TilePaint.method3043(false); - } - } else if (Login.loginIndex == 24) { - var20 = Login.loginBoxX + 180; - var22 = 301; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - TilePaint.method3043(false); - } - } - } - } else { - while (DynamicObject.isKeyDown()) { - if (SecureRandomFuture.field1230 == 84) { - TilePaint.method3043(false); - } else if (SecureRandomFuture.field1230 == 13) { - Login.loginIndex = 0; - } - } - - var20 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 80; - var22 = 321; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - TilePaint.method3043(false); - } - - var20 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 80; - if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { - Login.loginIndex = 0; - } - } - } - - } + var8 = Login.loginBoxX + 180; + var9 = 326; + if (var4 == 1 && var25 >= var8 - 75 && var25 <= var8 + 75 && var18 >= var9 - 20 && var18 <= var9 + 20) { + TilePaint.Login_promptCredentials(false); + } + } else if (Login.loginIndex == 24) { + int var20 = Login.loginBoxX + 180; + short var22 = 301; + if (var4 == 1 && var25 >= var20 - 75 && var25 <= var20 + 75 && var18 >= var22 - 20 && var18 <= var22 + 20) { + TilePaint.Login_promptCredentials(false); } } } diff --git a/runescape-client/src/main/java/MenuAction.java b/runescape-client/src/main/java/MenuAction.java index bfac6ecb59..08a56b78a2 100644 --- a/runescape-client/src/main/java/MenuAction.java +++ b/runescape-client/src/main/java/MenuAction.java @@ -92,7 +92,7 @@ public class MenuAction { } NetCache.NetCache_loadTime = 0; - NetCache.field3142 = class30.method566(); + NetCache.field3142 = class30.currentTimeMillis(); return; } diff --git a/runescape-client/src/main/java/MilliClock.java b/runescape-client/src/main/java/MilliClock.java index 25ea29f3c9..70a166c3a4 100644 --- a/runescape-client/src/main/java/MilliClock.java +++ b/runescape-client/src/main/java/MilliClock.java @@ -40,7 +40,7 @@ public class MilliClock extends Clock { this.field1992 = 256; this.field1994 = 1; this.field1996 = 0; - this.field1997 = class30.method566(); + this.field1997 = class30.currentTimeMillis(); for (int var1 = 0; var1 < 10; ++var1) { this.field1993[var1] = this.field1997; @@ -72,7 +72,7 @@ public class MilliClock extends Clock { int var4 = this.field1994; this.field1992 = 300; this.field1994 = 1; - this.field1997 = class30.method566(); + this.field1997 = class30.currentTimeMillis(); if (0L == this.field1993[this.field1995]) { this.field1992 = var3; this.field1994 = var4; diff --git a/runescape-client/src/main/java/MouseHandler.java b/runescape-client/src/main/java/MouseHandler.java index c43bc96417..e69852f024 100644 --- a/runescape-client/src/main/java/MouseHandler.java +++ b/runescape-client/src/main/java/MouseHandler.java @@ -225,7 +225,7 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi MouseHandler_idleCycles = 0; MouseHandler_lastPressedXVolatile = var1.getX(); MouseHandler_lastPressedYVolatile = var1.getY(); - MouseHandler_lastPressedTimeMillisVolatile = class30.method566(); + MouseHandler_lastPressedTimeMillisVolatile = class30.currentTimeMillis(); MouseHandler_lastButtonVolatile = this.getButton(var1); if (MouseHandler_lastButtonVolatile != 0) { MouseHandler_currentButtonVolatile = MouseHandler_lastButtonVolatile; diff --git a/runescape-client/src/main/java/MouseRecorder.java b/runescape-client/src/main/java/MouseRecorder.java index b9ed04b6a7..27b34c85d8 100644 --- a/runescape-client/src/main/java/MouseRecorder.java +++ b/runescape-client/src/main/java/MouseRecorder.java @@ -226,7 +226,7 @@ public class MouseRecorder implements Runnable { ) static final void method1213() { if (Client.logoutTimer > 0) { - DynamicObject.method2223(); + DynamicObject.logOut(); } else { Client.timer.method4937(); updateGameState(40); diff --git a/runescape-client/src/main/java/Occluder.java b/runescape-client/src/main/java/Occluder.java index 6e9da731e1..5559180fb0 100644 --- a/runescape-client/src/main/java/Occluder.java +++ b/runescape-client/src/main/java/Occluder.java @@ -215,7 +215,7 @@ public final class Occluder { var3 = var3 + "; Expires=Thu, 01-Jan-1970 00:00:00 GMT; Max-Age=0"; } else { String var4 = var3 + "; Expires="; - long var6 = class30.method566() + 94608000000L; + long var6 = class30.currentTimeMillis() + 94608000000L; Calendar.Calendar_calendar.setTime(new Date(var6)); int var8 = Calendar.Calendar_calendar.get(7); int var9 = Calendar.Calendar_calendar.get(5); diff --git a/runescape-client/src/main/java/PcmPlayer.java b/runescape-client/src/main/java/PcmPlayer.java index 606db70486..c9bb6421be 100644 --- a/runescape-client/src/main/java/PcmPlayer.java +++ b/runescape-client/src/main/java/PcmPlayer.java @@ -101,7 +101,7 @@ public class PcmPlayer { protected PcmPlayer() { this.field1388 = 32; - this.timeMs = class30.method566(); + this.timeMs = class30.currentTimeMillis(); this.field1393 = 0L; this.field1383 = 0; this.field1397 = 0; @@ -182,7 +182,7 @@ public class PcmPlayer { @Export("run") public final synchronized void run() { if (this.samples != null) { - long var1 = class30.method566(); + long var1 = class30.currentTimeMillis(); try { if (this.field1393 != 0L) { @@ -289,7 +289,7 @@ public class PcmPlayer { this.discard(); } catch (Exception var2) { this.close(); - this.field1393 = class30.method566() + 2000L; + this.field1393 = class30.currentTimeMillis() + 2000L; } } @@ -454,7 +454,7 @@ public class PcmPlayer { this.stream.fill(var1, 0, var2); } - this.timeMs = class30.method566(); + this.timeMs = class30.currentTimeMillis(); } @ObfuscatedName("al") diff --git a/runescape-client/src/main/java/PlayerAppearance.java b/runescape-client/src/main/java/PlayerAppearance.java index ace44f396d..80a84c9a6a 100644 --- a/runescape-client/src/main/java/PlayerAppearance.java +++ b/runescape-client/src/main/java/PlayerAppearance.java @@ -420,7 +420,7 @@ public class PlayerAppearance { garbageValue = "-1021250910" ) public static boolean method4010() { - long var0 = class30.method566(); + long var0 = class30.currentTimeMillis(); int var2 = (int)(var0 - NetCache.field3142); NetCache.field3142 = var0; if (var2 > 200) { diff --git a/runescape-client/src/main/java/SequenceDefinition.java b/runescape-client/src/main/java/SequenceDefinition.java index e6c22c6a1b..1caac7a4eb 100644 --- a/runescape-client/src/main/java/SequenceDefinition.java +++ b/runescape-client/src/main/java/SequenceDefinition.java @@ -371,8 +371,9 @@ public class SequenceDefinition extends DualNode { signature = "(II)V", garbageValue = "-645881783" ) - static final void method4756(int var0) { - DynamicObject.method2223(); + @Export("forceDisconnect") + static final void forceDisconnect(int var0) { + DynamicObject.logOut(); switch(var0) { case 1: Login.loginIndex = 24; diff --git a/runescape-client/src/main/java/TilePaint.java b/runescape-client/src/main/java/TilePaint.java index d96f4616f5..b531e78aa0 100644 --- a/runescape-client/src/main/java/TilePaint.java +++ b/runescape-client/src/main/java/TilePaint.java @@ -94,7 +94,8 @@ public final class TilePaint { signature = "(ZI)V", garbageValue = "-2065502658" ) - static void method3043(boolean var0) { + @Export("Login_promptCredentials") + static void Login_promptCredentials(boolean var0) { Login.Login_response1 = ""; Login.Login_response2 = "Enter your username/email & password."; Login.Login_response3 = ""; diff --git a/runescape-client/src/main/java/Timer.java b/runescape-client/src/main/java/Timer.java index e04204f3ab..220435a3eb 100644 --- a/runescape-client/src/main/java/Timer.java +++ b/runescape-client/src/main/java/Timer.java @@ -74,7 +74,7 @@ public class Timer { garbageValue = "-20" ) public void method4936() { - this.field3561 = class30.method566(); + this.field3561 = class30.currentTimeMillis(); } @ObfuscatedName("n") @@ -84,7 +84,7 @@ public class Timer { ) public void method4937() { if (-1L != this.field3561) { - this.field3565 = class30.method566() - this.field3561; + this.field3565 = class30.currentTimeMillis() - this.field3561; this.field3561 = -1L; } @@ -96,7 +96,7 @@ public class Timer { garbageValue = "-1928577406" ) public void method4938(int var1) { - this.field3562 = class30.method566(); + this.field3562 = class30.currentTimeMillis(); this.field3567 = var1; } @@ -107,7 +107,7 @@ public class Timer { ) public void method4939() { if (-1L != this.field3562) { - this.field3564 = class30.method566() - this.field3562; + this.field3564 = class30.currentTimeMillis() - this.field3562; this.field3562 = -1L; } diff --git a/runescape-client/src/main/java/VarbitDefinition.java b/runescape-client/src/main/java/VarbitDefinition.java index 286a5e5b7f..4f3f74a277 100644 --- a/runescape-client/src/main/java/VarbitDefinition.java +++ b/runescape-client/src/main/java/VarbitDefinition.java @@ -84,24 +84,11 @@ public class VarbitDefinition extends DualNode { Login.xPadding = (FloorDecoration.canvasWidth - 765) / 2; Login.loginBoxX = Login.xPadding + 202; GrandExchangeOfferUnitPriceComparator.loginBoxCenter = Login.loginBoxX + 180; - int var10; - int var12; - int var14; - byte var23; - int var24; - int var28; - int var29; - int var30; - int var31; - int var32; - int var45; if (Login.worldSelectOpen) { - int var37; - int var39; if (ArchiveLoader.worldSelectBackSprites == null) { Archive var36 = GrandExchangeOfferAgeComparator.archive8; - var39 = var36.getGroupId("sl_back"); - var37 = var36.getFileId(var39, ""); + int var39 = var36.getGroupId("sl_back"); + int var37 = var36.getFileId(var39, ""); Sprite[] var35 = Canvas.SpriteBuffer_getSpriteArray(var36, var39, var37); ArchiveLoader.worldSelectBackSprites = var35; } @@ -132,13 +119,13 @@ public class VarbitDefinition extends DualNode { var0.drawCentered("Select a world", Login.xPadding + 62, 15, 0, -1); if (Frames.worldSelectStars != null) { Frames.worldSelectStars[1].drawAt(Login.xPadding + 140, 1); - var1.draw("Members only world", Login.xPadding + 152, 10, 16777215, -1); + var1.draw("Members only world", Login.xPadding + 152, 10, 0xffffff, -1); Frames.worldSelectStars[0].drawAt(Login.xPadding + 140, 12); - var1.draw("Free world", Login.xPadding + 152, 21, 16777215, -1); + var1.draw("Free world", Login.xPadding + 152, 21, 0xffffff, -1); } if (GrandExchangeOfferTotalQuantityComparator.worldSelectArrows != null) { - var45 = Login.xPadding + 280; + int var45 = Login.xPadding + 280; if (World.World_sortOption1[0] == 0 && World.World_sortOption2[0] == 0) { GrandExchangeOfferTotalQuantityComparator.worldSelectArrows[2].drawAt(var45, 4); } else { @@ -151,8 +138,8 @@ public class VarbitDefinition extends DualNode { GrandExchangeOfferTotalQuantityComparator.worldSelectArrows[1].drawAt(var45 + 15, 4); } - var0.draw("World", var45 + 32, 17, 16777215, -1); - var24 = Login.xPadding + 390; + var0.draw("World", var45 + 32, 17, 0xffffff, -1); + int var24 = Login.xPadding + 390; if (World.World_sortOption1[0] == 1 && World.World_sortOption2[0] == 0) { GrandExchangeOfferTotalQuantityComparator.worldSelectArrows[2].drawAt(var24, 4); } else { @@ -165,8 +152,8 @@ public class VarbitDefinition extends DualNode { GrandExchangeOfferTotalQuantityComparator.worldSelectArrows[1].drawAt(var24 + 15, 4); } - var0.draw("Players", var24 + 32, 17, 16777215, -1); - var39 = Login.xPadding + 500; + var0.draw("Players", var24 + 32, 17, 0xffffff, -1); + int var39 = Login.xPadding + 500; if (World.World_sortOption1[0] == 2 && World.World_sortOption2[0] == 0) { GrandExchangeOfferTotalQuantityComparator.worldSelectArrows[2].drawAt(var39, 4); } else { @@ -179,8 +166,8 @@ public class VarbitDefinition extends DualNode { GrandExchangeOfferTotalQuantityComparator.worldSelectArrows[1].drawAt(var39 + 15, 4); } - var0.draw("Location", var39 + 32, 17, 16777215, -1); - var37 = Login.xPadding + 610; + var0.draw("Location", var39 + 32, 17, 0xffffff, -1); + int var37 = Login.xPadding + 610; if (World.World_sortOption1[0] == 3 && World.World_sortOption2[0] == 0) { GrandExchangeOfferTotalQuantityComparator.worldSelectArrows[2].drawAt(var37, 4); } else { @@ -193,17 +180,19 @@ public class VarbitDefinition extends DualNode { GrandExchangeOfferTotalQuantityComparator.worldSelectArrows[1].drawAt(var37 + 15, 4); } - var0.draw("Type", var37 + 32, 17, 16777215, -1); + var0.draw("Type", var37 + 32, 17, 0xffffff, -1); } Rasterizer2D.Rasterizer2D_fillRectangle(Login.xPadding + 708, 4, 50, 16, 0); - var1.drawCentered("Cancel", Login.xPadding + 708 + 25, 16, 16777215, -1); + var1.drawCentered("Cancel", Login.xPadding + 708 + 25, 16, 0xffffff, -1); Login.hoveredWorldIndex = -1; if (ArchiveLoader.worldSelectBackSprites != null) { - var23 = 88; + byte var23 = 88; byte var50 = 19; - var39 = 765 / (var23 + 1) - 1; - var37 = 480 / (var50 + 1); + int var39 = 765 / (var23 + 1) - 1; + int var37 = 480 / (var50 + 1); + + int var28, var29; do { var28 = var37; @@ -231,9 +220,9 @@ public class VarbitDefinition extends DualNode { var29 = 5; } - var30 = (765 - var23 * var39 - var28 * (var39 - 1)) / 2; - var10 = (480 - var37 * var50 - var29 * (var37 - 1)) / 2; - var31 = (var37 + World.World_count - 1) / var37; + int var30 = (765 - var23 * var39 - var28 * (var39 - 1)) / 2; + int var10 = (480 - var37 * var50 - var29 * (var37 - 1)) / 2; + int var31 = (var37 + World.World_count - 1) / var37; Login.worldSelectPagesCount = var31 - var39; if (WorldMapIcon_0.worldSelectLeftSprite != null && Login.worldSelectPage > 0) { WorldMapIcon_0.worldSelectLeftSprite.drawAt(8, WallDecoration.canvasHeight / 2 - WorldMapIcon_0.worldSelectLeftSprite.subHeight / 2); @@ -243,9 +232,9 @@ public class VarbitDefinition extends DualNode { HealthBar.worldSelectRightSprite.drawAt(FloorDecoration.canvasWidth - HealthBar.worldSelectRightSprite.subWidth - 8, WallDecoration.canvasHeight / 2 - HealthBar.worldSelectRightSprite.subHeight / 2); } - var12 = var10 + 23; - var32 = var30 + Login.xPadding; - var14 = 0; + int var12 = var10 + 23; + int var32 = var30 + Login.xPadding; + int var14 = 0; boolean var15 = false; int var16 = Login.worldSelectPage; @@ -291,7 +280,7 @@ public class VarbitDefinition extends DualNode { if (MouseHandler.MouseHandler_x >= var32 && MouseHandler.MouseHandler_y >= var12 && MouseHandler.MouseHandler_x < var23 + var32 && MouseHandler.MouseHandler_y < var50 + var12 && var19) { Login.hoveredWorldIndex = var17; - ArchiveLoader.worldSelectBackSprites[var21].drawTransOverlayAt(var32, var12, 128, 16777215); + ArchiveLoader.worldSelectBackSprites[var21].drawTransOverlayAt(var32, var12, 128, 0xffffff); var15 = true; } else { ArchiveLoader.worldSelectBackSprites[var21].drawAt(var32, var12); @@ -328,407 +317,391 @@ public class VarbitDefinition extends DualNode { } class42.rasterProvider.drawFull(0, 0); - } else { - WorldMapID.leftTitleSprite.drawAt(Login.xPadding, 0); - class51.rightTitleSprite.drawAt(Login.xPadding + 382, 0); - FontName.logoSprite.drawAt(Login.xPadding + 382 - FontName.logoSprite.subWidth / 2, 18); - if (Client.gameState == 0 || Client.gameState == 5) { - var23 = 20; - var0.drawCentered("RuneScape is loading - please wait...", Login.loginBoxX + 180, 245 - var23, 16777215, -1); - var24 = 253 - var23; - Rasterizer2D.Rasterizer2D_drawRectangle(Login.loginBoxX + 180 - 152, var24, 304, 34, 9179409); - Rasterizer2D.Rasterizer2D_drawRectangle(Login.loginBoxX + 180 - 151, var24 + 1, 302, 32, 0); - Rasterizer2D.Rasterizer2D_fillRectangle(Login.loginBoxX + 180 - 150, var24 + 2, Login.Login_loadingPercent * 3, 30, 9179409); - Rasterizer2D.Rasterizer2D_fillRectangle(Login.Login_loadingPercent * 3 + (Login.loginBoxX + 180 - 150), var24 + 2, 300 - Login.Login_loadingPercent * 3, 30, 0); - var0.drawCentered(Login.Login_loadingText, Login.loginBoxX + 180, 276 - var23, 16777215, -1); - } + return; + } - String var8; - String var9; - char[] var11; - char[] var13; - String var25; - String var27; - String var40; - short var44; - short var46; - if (Client.gameState == 20) { - class32.titleboxSprite.drawAt(Login.loginBoxX + 180 - class32.titleboxSprite.subWidth / 2, 271 - class32.titleboxSprite.subHeight / 2); - var44 = 201; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16776960, 0); + WorldMapID.leftTitleSprite.drawAt(Login.xPadding, 0); + class51.rightTitleSprite.drawAt(Login.xPadding + 382, 0); + FontName.logoSprite.drawAt(Login.xPadding + 382 - FontName.logoSprite.subWidth / 2, 18); + if (Client.gameState == 0 || Client.gameState == 5) { + byte var23 = 20; + var0.drawCentered("RuneScape is loading - please wait...", Login.loginBoxX + 180, 245 - var23, 0xffffff, -1); + int var24 = 253 - var23; + Rasterizer2D.Rasterizer2D_drawRectangle(Login.loginBoxX + 180 - 152, var24, 304, 34, 9179409); + Rasterizer2D.Rasterizer2D_drawRectangle(Login.loginBoxX + 180 - 151, var24 + 1, 302, 32, 0); + Rasterizer2D.Rasterizer2D_fillRectangle(Login.loginBoxX + 180 - 150, var24 + 2, Login.Login_loadingPercent * 3, 30, 9179409); + Rasterizer2D.Rasterizer2D_fillRectangle(Login.Login_loadingPercent * 3 + (Login.loginBoxX + 180 - 150), var24 + 2, 300 - Login.Login_loadingPercent * 3, 30, 0); + var0.drawCentered(Login.Login_loadingText, Login.loginBoxX + 180, 276 - var23, 0xffffff, -1); + } else if (Client.gameState == 20) { + class32.titleboxSprite.drawAt(Login.loginBoxX + 180 - class32.titleboxSprite.subWidth / 2, 271 - class32.titleboxSprite.subHeight / 2); + short var44 = 201; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16776960, 0); + int var45 = var44 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + var45 += 7; + if (Login.loginIndex != 4) { + var0.draw("Login: ", Login.loginBoxX + 180 - 110, var45, 0xffffff, 0); + short var46 = 200; + String var25; + if (!AbstractArchive.clientPreferences.hideUsername) { + var25 = Login.Login_username; + } else { + String var8 = Login.Login_username; + int var10 = var8.length(); + char[] var11 = new char[var10]; + + for (int var12 = 0; var12 < var10; ++var12) { + var11[var12] = '*'; + } + + String var9 = new String(var11); + var25 = var9; + } + + for (var25 = var25; var0.stringWidth(var25) > var46; var25 = var25.substring(0, var25.length() - 1)) { + } + + var0.draw(AbstractFont.escapeBrackets(var25), Login.loginBoxX + 180 - 70, var45, 0xffffff, 0); + var45 += 15; + String var8 = "Password: "; + String var27 = Login.Login_password; + int var12 = var27.length(); + char[] var13 = new char[var12]; + + for (int var14 = 0; var14 < var12; ++var14) { + var13[var14] = '*'; + } + + String var40 = new String(var13); + var0.draw(var8 + var40, Login.loginBoxX + 180 - 108, var45, 0xffffff, 0); + var45 += 15; + } + } else if (Client.gameState == 10 || Client.gameState == 11) { + class32.titleboxSprite.drawAt(Login.loginBoxX, 171); + if (Login.loginIndex == 0) { + short var44 = 251; + var0.drawCentered("Welcome to RuneScape", Login.loginBoxX + 180, var44, 16776960, 0); + int var45 = var44 + 30; + int var24 = Login.loginBoxX + 180 - 80; + short var5 = 291; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawLines("New User", var24 - 73, var5 - 20, 144, 40, 0xffffff, 0, 1, 1, 0); + var24 = Login.loginBoxX + 180 + 80; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawLines("Existing User", var24 - 73, var5 - 20, 144, 40, 0xffffff, 0, 1, 1, 0); + } else if (Login.loginIndex == 1) { + var0.drawCentered(Login.Login_response0, Login.loginBoxX + 180, 201, 16776960, 0); + short var44 = 236; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 0xffffff, 0); + int var45 = var44 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 0xffffff, 0); + var45 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 0xffffff, 0); + var45 += 15; + int var24 = Login.loginBoxX + 180 - 80; + short var5 = 321; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawCentered("Continue", var24, var5 + 5, 0xffffff, 0); + var24 = Login.loginBoxX + 180 + 80; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawCentered("Cancel", var24, var5 + 5, 0xffffff, 0); + } else if (Login.loginIndex == 2) { + short var44 = 201; + var0.drawCentered(Login.Login_response1, GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var44, 16776960, 0); + int var45 = var44 + 15; + var0.drawCentered(Login.Login_response2, GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var45, 16776960, 0); + var45 += 15; + var0.drawCentered(Login.Login_response3, GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var45, 16776960, 0); + var45 += 15; + var45 += 7; + var0.draw("Login: ", GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 110, var45, 0xffffff, 0); + short var46 = 200; + String var25; + if (!AbstractArchive.clientPreferences.hideUsername) { + var25 = Login.Login_username; + } else { + String var8 = Login.Login_username; + int var10 = var8.length(); + char[] var11 = new char[var10]; + + for (int var12 = 0; var12 < var10; ++var12) { + var11[var12] = '*'; + } + + String var9 = new String(var11); + var25 = var9; + } + + for (var25 = var25; var0.stringWidth(var25) > var46; var25 = var25.substring(1)) { + } + + var0.draw(AbstractFont.escapeBrackets(var25) + (Login.currentLoginField == 0 & Client.cycle % 40 < 20 ? World.colorStartTag(16776960) + "|" : ""), GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 70, var45, 0xffffff, 0); + var45 += 15; + String var8 = "Password: "; + String var27 = Login.Login_password; + int var12 = var27.length(); + char[] var13 = new char[var12]; + + for (int var14 = 0; var14 < var12; ++var14) { + var13[var14] = '*'; + } + + String var40 = new String(var13); + var0.draw(var8 + var40 + (Login.currentLoginField == 1 & Client.cycle % 40 < 20 ? World.colorStartTag(16776960) + "|" : ""), GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 108, var45, 0xffffff, 0); + var45 += 15; + var44 = 277; + int var31 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + -117; + IndexedSprite var34 = ClientPacket.method3578(Client.Login_isUsernameRemembered, Login.field1176); + var34.drawAt(var31, var44); + var31 = var31 + var34.subWidth + 5; + var1.draw("Remember username", var31, var44 + 13, 16776960, 0); + var31 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 24; + var34 = ClientPacket.method3578(AbstractArchive.clientPreferences.hideUsername, Login.field1192); + var34.drawAt(var31, var44); + var31 = var31 + var34.subWidth + 5; + var1.draw("Hide username", var31, var44 + 13, 16776960, 0); var45 = var44 + 15; + int var32 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 80; + short var42 = 321; + AbstractRasterProvider.titlebuttonSprite.drawAt(var32 - 73, var42 - 20); + var0.drawCentered("Login", var32, var42 + 5, 0xffffff, 0); + var32 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 80; + AbstractRasterProvider.titlebuttonSprite.drawAt(var32 - 73, var42 - 20); + var0.drawCentered("Cancel", var32, var42 + 5, 0xffffff, 0); + var44 = 357; + switch(Login.field1171) { + case 2: + class3.field18 = "Having trouble logging in?"; + break; + default: + class3.field18 = "Can't login? Click here."; + } + + LoginScreenAnimation.field1032 = new Bounds(GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var44, var1.stringWidth(class3.field18), 11); + class162.field1988 = new Bounds(GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var44, var1.stringWidth("Still having trouble logging in?"), 11); + var1.drawCentered(class3.field18, GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var44, 0xffffff, 0); + } else if (Login.loginIndex == 3) { + short var44 = 201; + var0.drawCentered("Invalid credentials.", Login.loginBoxX + 180, var44, 16776960, 0); + int var45 = var44 + 20; + var1.drawCentered("For accounts created after 24th November 2010, please use your", Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + var1.drawCentered("email address to login. Otherwise please login with your username.", Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + int var24 = Login.loginBoxX + 180; + short var5 = 276; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var2.drawCentered("Try again", var24, var5 + 5, 0xffffff, 0); + var24 = Login.loginBoxX + 180; + var5 = 326; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var2.drawCentered("Forgotten password?", var24, var5 + 5, 0xffffff, 0); + } else if (Login.loginIndex == 4) { + var0.drawCentered("Authenticator", Login.loginBoxX + 180, 201, 16776960, 0); + short var44 = 236; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 0xffffff, 0); + int var45 = var44 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 0xffffff, 0); + var45 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 0xffffff, 0); + var45 += 15; + String var26 = "PIN: "; + String var7 = DesktopPlatformInfoProvider.otp; + int var30 = var7.length(); + char[] var47 = new char[var30]; + + for (int var31 = 0; var31 < var30; ++var31) { + var47[var31] = '*'; + } + + String var8 = new String(var47); + var0.draw(var26 + var8 + (Client.cycle % 40 < 20 ? World.colorStartTag(16776960) + "|" : ""), Login.loginBoxX + 180 - 108, var45, 0xffffff, 0); + var45 -= 8; + var0.draw("Trust this computer", Login.loginBoxX + 180 - 9, var45, 16776960, 0); + var45 += 15; + var0.draw("for 30 days: ", Login.loginBoxX + 180 - 9, var45, 16776960, 0); + int var29 = Login.loginBoxX + 180 - 9 + var0.stringWidth("for 30 days: ") + 15; + var30 = var45 - var0.ascent; + IndexedSprite var48; + if (Login.field1183) { + var48 = class42.options_buttons_2Sprite; + } else { + var48 = class195.options_buttons_0Sprite; + } + + var48.drawAt(var29, var30); + var45 += 15; + int var31 = Login.loginBoxX + 180 - 80; + short var41 = 321; + AbstractRasterProvider.titlebuttonSprite.drawAt(var31 - 73, var41 - 20); + var0.drawCentered("Continue", var31, var41 + 5, 0xffffff, 0); + var31 = Login.loginBoxX + 180 + 80; + AbstractRasterProvider.titlebuttonSprite.drawAt(var31 - 73, var41 - 20); + var0.drawCentered("Cancel", var31, var41 + 5, 0xffffff, 0); + var1.drawCentered("Can't Log In?", Login.loginBoxX + 180, var41 + 36, 255, 0); + } else if (Login.loginIndex == 5) { + var0.drawCentered("Forgotten your password?", Login.loginBoxX + 180, 201, 16776960, 0); + short var44 = 221; + var2.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16776960, 0); + int var45 = var44 + 15; + var2.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + var2.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + var45 += 14; + var0.draw("Username/email: ", Login.loginBoxX + 180 - 145, var45, 0xffffff, 0); + short var46 = 174; + String var25; + if (!AbstractArchive.clientPreferences.hideUsername) { + var25 = Login.Login_username; + } else { + String var8 = Login.Login_username; + int var10 = var8.length(); + char[] var11 = new char[var10]; + + for (int var12 = 0; var12 < var10; ++var12) { + var11[var12] = '*'; + } + + String var9 = new String(var11); + var25 = var9; + } + + for (var25 = var25; var0.stringWidth(var25) > var46; var25 = var25.substring(1)) { + } + + var0.draw(AbstractFont.escapeBrackets(var25) + (Client.cycle % 40 < 20 ? World.colorStartTag(16776960) + "|" : ""), Login.loginBoxX + 180 - 34, var45, 0xffffff, 0); + var45 += 15; + int var28 = Login.loginBoxX + 180 - 80; + short var49 = 321; + AbstractRasterProvider.titlebuttonSprite.drawAt(var28 - 73, var49 - 20); + var0.drawCentered("Recover", var28, var49 + 5, 0xffffff, 0); + var28 = Login.loginBoxX + 180 + 80; + AbstractRasterProvider.titlebuttonSprite.drawAt(var28 - 73, var49 - 20); + var0.drawCentered("Back", var28, var49 + 5, 0xffffff, 0); + var49 = 356; + var1.drawCentered("Still having trouble logging in?", GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var49, 268435455, 0); + } else if (Login.loginIndex == 6) { + short var44 = 201; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16776960, 0); + int var45 = var44 + 15; var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 16776960, 0); var45 += 15; var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 16776960, 0); var45 += 15; - var45 += 7; - if (Login.loginIndex != 4) { - var0.draw("Login: ", Login.loginBoxX + 180 - 110, var45, 16777215, 0); - var46 = 200; - if (!AbstractArchive.clientPreferences.hideUsername) { - var25 = Login.Login_username; - } else { - var8 = Login.Login_username; - var10 = var8.length(); - var11 = new char[var10]; - - for (var12 = 0; var12 < var10; ++var12) { - var11[var12] = '*'; - } - - var9 = new String(var11); - var25 = var9; - } - - for (var25 = var25; var0.stringWidth(var25) > var46; var25 = var25.substring(0, var25.length() - 1)) { - } - - var0.draw(AbstractFont.escapeBrackets(var25), Login.loginBoxX + 180 - 70, var45, 16777215, 0); - var45 += 15; - var8 = "Password: "; - var27 = Login.Login_password; - var12 = var27.length(); - var13 = new char[var12]; - - for (var14 = 0; var14 < var12; ++var14) { - var13[var14] = '*'; - } - - var40 = new String(var13); - var0.draw(var8 + var40, Login.loginBoxX + 180 - 108, var45, 16777215, 0); - var45 += 15; - } - } - - if (Client.gameState == 10 || Client.gameState == 11) { - class32.titleboxSprite.drawAt(Login.loginBoxX, 171); - short var5; - if (Login.loginIndex == 0) { - var44 = 251; - var0.drawCentered("Welcome to RuneScape", Login.loginBoxX + 180, var44, 16776960, 0); - var45 = var44 + 30; - var24 = Login.loginBoxX + 180 - 80; - var5 = 291; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawLines("New User", var24 - 73, var5 - 20, 144, 40, 16777215, 0, 1, 1, 0); - var24 = Login.loginBoxX + 180 + 80; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawLines("Existing User", var24 - 73, var5 - 20, 144, 40, 16777215, 0, 1, 1, 0); - } else if (Login.loginIndex == 1) { - var0.drawCentered(Login.Login_response0, Login.loginBoxX + 180, 201, 16776960, 0); - var44 = 236; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16777215, 0); - var45 = var44 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 16777215, 0); - var45 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 16777215, 0); - var45 += 15; - var24 = Login.loginBoxX + 180 - 80; - var5 = 321; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawCentered("Continue", var24, var5 + 5, 16777215, 0); - var24 = Login.loginBoxX + 180 + 80; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawCentered("Cancel", var24, var5 + 5, 16777215, 0); - } else if (Login.loginIndex == 2) { - var44 = 201; - var0.drawCentered(Login.Login_response1, GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var44, 16776960, 0); - var45 = var44 + 15; - var0.drawCentered(Login.Login_response2, GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var45, 16776960, 0); - var45 += 15; - var0.drawCentered(Login.Login_response3, GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var45, 16776960, 0); - var45 += 15; - var45 += 7; - var0.draw("Login: ", GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 110, var45, 16777215, 0); - var46 = 200; - if (!AbstractArchive.clientPreferences.hideUsername) { - var25 = Login.Login_username; - } else { - var8 = Login.Login_username; - var10 = var8.length(); - var11 = new char[var10]; - - for (var12 = 0; var12 < var10; ++var12) { - var11[var12] = '*'; - } - - var9 = new String(var11); - var25 = var9; - } - - for (var25 = var25; var0.stringWidth(var25) > var46; var25 = var25.substring(1)) { - } - - var0.draw(AbstractFont.escapeBrackets(var25) + (Login.currentLoginField == 0 & Client.cycle % 40 < 20 ? World.colorStartTag(16776960) + "|" : ""), GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 70, var45, 16777215, 0); - var45 += 15; - var8 = "Password: "; - var27 = Login.Login_password; - var12 = var27.length(); - var13 = new char[var12]; - - for (var14 = 0; var14 < var12; ++var14) { - var13[var14] = '*'; - } - - var40 = new String(var13); - var0.draw(var8 + var40 + (Login.currentLoginField == 1 & Client.cycle % 40 < 20 ? World.colorStartTag(16776960) + "|" : ""), GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 108, var45, 16777215, 0); - var45 += 15; - var44 = 277; - var31 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + -117; - IndexedSprite var34 = ClientPacket.method3578(Client.Login_isUsernameRemembered, Login.field1176); - var34.drawAt(var31, var44); - var31 = var31 + var34.subWidth + 5; - var1.draw("Remember username", var31, var44 + 13, 16776960, 0); - var31 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 24; - var34 = ClientPacket.method3578(AbstractArchive.clientPreferences.hideUsername, Login.field1192); - var34.drawAt(var31, var44); - var31 = var31 + var34.subWidth + 5; - var1.draw("Hide username", var31, var44 + 13, 16776960, 0); - var45 = var44 + 15; - var32 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter - 80; - short var42 = 321; - AbstractRasterProvider.titlebuttonSprite.drawAt(var32 - 73, var42 - 20); - var0.drawCentered("Login", var32, var42 + 5, 16777215, 0); - var32 = GrandExchangeOfferUnitPriceComparator.loginBoxCenter + 80; - AbstractRasterProvider.titlebuttonSprite.drawAt(var32 - 73, var42 - 20); - var0.drawCentered("Cancel", var32, var42 + 5, 16777215, 0); - var44 = 357; - switch(Login.field1171) { - case 2: - class3.field18 = "Having trouble logging in?"; + int var24 = Login.loginBoxX + 180; + short var5 = 321; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawCentered("Back", var24, var5 + 5, 0xffffff, 0); + } else if (Login.loginIndex == 7) { + short var44 = 216; + var0.drawCentered("Your date of birth isn't set.", Login.loginBoxX + 180, var44, 16776960, 0); + int var45 = var44 + 15; + var2.drawCentered("Please verify your account status by", Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + var2.drawCentered("setting your date of birth.", Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + int var24 = Login.loginBoxX + 180 - 80; + short var5 = 321; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawCentered("Set Date of Birth", var24, var5 + 5, 0xffffff, 0); + var24 = Login.loginBoxX + 180 + 80; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawCentered("Back", var24, var5 + 5, 0xffffff, 0); + } else if (Login.loginIndex == 8) { + short var44 = 216; + var0.drawCentered("Sorry, but your account is not eligible to play.", Login.loginBoxX + 180, var44, 16776960, 0); + int var45 = var44 + 15; + var2.drawCentered("For more information, please take a look at", Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + var2.drawCentered("our privacy policy.", Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + int var24 = Login.loginBoxX + 180 - 80; + short var5 = 321; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawCentered("Privacy Policy", var24, var5 + 5, 0xffffff, 0); + var24 = Login.loginBoxX + 180 + 80; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawCentered("Back", var24, var5 + 5, 0xffffff, 0); + } else if (Login.loginIndex == 12) { + short var44 = 201; + String var4 = ""; + String var26 = ""; + String var25 = ""; + switch (Login.field1174) { + case 0: + var4 = "Your account has been disabled."; + var26 = Strings.field2793; + var25 = ""; + break; + case 1: + var4 = "Account locked as we suspect it has been stolen."; + var26 = Strings.field2783; + var25 = ""; break; default: - class3.field18 = "Can't login? Click here."; - } - - LoginScreenAnimation.field1032 = new Bounds(GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var44, var1.stringWidth(class3.field18), 11); - class162.field1988 = new Bounds(GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var44, var1.stringWidth("Still having trouble logging in?"), 11); - var1.drawCentered(class3.field18, GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var44, 16777215, 0); - } else if (Login.loginIndex == 3) { - var44 = 201; - var0.drawCentered("Invalid credentials.", Login.loginBoxX + 180, var44, 16776960, 0); - var45 = var44 + 20; - var1.drawCentered("For accounts created after 24th November 2010, please use your", Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var1.drawCentered("email address to login. Otherwise please login with your username.", Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var24 = Login.loginBoxX + 180; - var5 = 276; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var2.drawCentered("Try again", var24, var5 + 5, 16777215, 0); - var24 = Login.loginBoxX + 180; - var5 = 326; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var2.drawCentered("Forgotten password?", var24, var5 + 5, 16777215, 0); - } else { - String var26; - if (Login.loginIndex == 4) { - var0.drawCentered("Authenticator", Login.loginBoxX + 180, 201, 16776960, 0); - var44 = 236; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16777215, 0); - var45 = var44 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 16777215, 0); - var45 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 16777215, 0); - var45 += 15; - var26 = "PIN: "; - String var7 = DesktopPlatformInfoProvider.otp; - var30 = var7.length(); - char[] var47 = new char[var30]; - - for (var31 = 0; var31 < var30; ++var31) { - var47[var31] = '*'; - } - - var8 = new String(var47); - var0.draw(var26 + var8 + (Client.cycle % 40 < 20 ? World.colorStartTag(16776960) + "|" : ""), Login.loginBoxX + 180 - 108, var45, 16777215, 0); - var45 -= 8; - var0.draw("Trust this computer", Login.loginBoxX + 180 - 9, var45, 16776960, 0); - var45 += 15; - var0.draw("for 30 days: ", Login.loginBoxX + 180 - 9, var45, 16776960, 0); - var29 = Login.loginBoxX + 180 - 9 + var0.stringWidth("for 30 days: ") + 15; - var30 = var45 - var0.ascent; - IndexedSprite var48; - if (Login.field1183) { - var48 = class42.options_buttons_2Sprite; - } else { - var48 = class195.options_buttons_0Sprite; - } - - var48.drawAt(var29, var30); - var45 += 15; - var31 = Login.loginBoxX + 180 - 80; - short var41 = 321; - AbstractRasterProvider.titlebuttonSprite.drawAt(var31 - 73, var41 - 20); - var0.drawCentered("Continue", var31, var41 + 5, 16777215, 0); - var31 = Login.loginBoxX + 180 + 80; - AbstractRasterProvider.titlebuttonSprite.drawAt(var31 - 73, var41 - 20); - var0.drawCentered("Cancel", var31, var41 + 5, 16777215, 0); - var1.drawCentered("Can't Log In?", Login.loginBoxX + 180, var41 + 36, 255, 0); - } else { - short var49; - if (Login.loginIndex == 5) { - var0.drawCentered("Forgotten your password?", Login.loginBoxX + 180, 201, 16776960, 0); - var44 = 221; - var2.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16776960, 0); - var45 = var44 + 15; - var2.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var2.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var45 += 14; - var0.draw("Username/email: ", Login.loginBoxX + 180 - 145, var45, 16777215, 0); - var46 = 174; - if (!AbstractArchive.clientPreferences.hideUsername) { - var25 = Login.Login_username; - } else { - var8 = Login.Login_username; - var10 = var8.length(); - var11 = new char[var10]; - - for (var12 = 0; var12 < var10; ++var12) { - var11[var12] = '*'; - } - - var9 = new String(var11); - var25 = var9; - } - - for (var25 = var25; var0.stringWidth(var25) > var46; var25 = var25.substring(1)) { - } - - var0.draw(AbstractFont.escapeBrackets(var25) + (Client.cycle % 40 < 20 ? World.colorStartTag(16776960) + "|" : ""), Login.loginBoxX + 180 - 34, var45, 16777215, 0); - var45 += 15; - var28 = Login.loginBoxX + 180 - 80; - var49 = 321; - AbstractRasterProvider.titlebuttonSprite.drawAt(var28 - 73, var49 - 20); - var0.drawCentered("Recover", var28, var49 + 5, 16777215, 0); - var28 = Login.loginBoxX + 180 + 80; - AbstractRasterProvider.titlebuttonSprite.drawAt(var28 - 73, var49 - 20); - var0.drawCentered("Back", var28, var49 + 5, 16777215, 0); - var49 = 356; - var1.drawCentered("Still having trouble logging in?", GrandExchangeOfferUnitPriceComparator.loginBoxCenter, var49, 268435455, 0); - } else if (Login.loginIndex == 6) { - var44 = 201; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16776960, 0); - var45 = var44 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var24 = Login.loginBoxX + 180; - var5 = 321; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawCentered("Back", var24, var5 + 5, 16777215, 0); - } else if (Login.loginIndex == 7) { - var44 = 216; - var0.drawCentered("Your date of birth isn't set.", Login.loginBoxX + 180, var44, 16776960, 0); - var45 = var44 + 15; - var2.drawCentered("Please verify your account status by", Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var2.drawCentered("setting your date of birth.", Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var24 = Login.loginBoxX + 180 - 80; - var5 = 321; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawCentered("Set Date of Birth", var24, var5 + 5, 16777215, 0); - var24 = Login.loginBoxX + 180 + 80; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawCentered("Back", var24, var5 + 5, 16777215, 0); - } else if (Login.loginIndex == 8) { - var44 = 216; - var0.drawCentered("Sorry, but your account is not eligible to play.", Login.loginBoxX + 180, var44, 16776960, 0); - var45 = var44 + 15; - var2.drawCentered("For more information, please take a look at", Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var2.drawCentered("our privacy policy.", Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var24 = Login.loginBoxX + 180 - 80; - var5 = 321; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawCentered("Privacy Policy", var24, var5 + 5, 16777215, 0); - var24 = Login.loginBoxX + 180 + 80; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawCentered("Back", var24, var5 + 5, 16777215, 0); - } else if (Login.loginIndex == 12) { - var44 = 201; - String var4 = ""; - var26 = ""; - var25 = ""; - switch(Login.field1174) { - case 0: - var4 = "Your account has been disabled."; - var26 = Strings.field2793; - var25 = ""; - break; - case 1: - var4 = "Account locked as we suspect it has been stolen."; - var26 = Strings.field2783; - var25 = ""; - break; - default: - TilePaint.method3043(false); - } - - var0.drawCentered(var4, Login.loginBoxX + 180, var44, 16776960, 0); - var45 = var44 + 15; - var2.drawCentered(var26, Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var2.drawCentered(var25, Login.loginBoxX + 180, var45, 16776960, 0); - var45 += 15; - var28 = Login.loginBoxX + 180; - var49 = 276; - AbstractRasterProvider.titlebuttonSprite.drawAt(var28 - 73, var49 - 20); - var0.drawCentered("Support Page", var28, var49 + 5, 16777215, 0); - var28 = Login.loginBoxX + 180; - var49 = 326; - AbstractRasterProvider.titlebuttonSprite.drawAt(var28 - 73, var49 - 20); - var0.drawCentered("Back", var28, var49 + 5, 16777215, 0); - } else if (Login.loginIndex == 24) { - var44 = 221; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 16777215, 0); - var45 = var44 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 16777215, 0); - var45 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 16777215, 0); - var45 += 15; - var24 = Login.loginBoxX + 180; - var5 = 301; - AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); - var0.drawCentered("Ok", var24, var5 + 5, 16777215, 0); - } - } + TilePaint.Login_promptCredentials(false); } - } - if (Client.gameState >= 10) { - int[] var3 = new int[4]; - Rasterizer2D.Rasterizer2D_getClipArray(var3); - Rasterizer2D.Rasterizer2D_setClip(Login.xPadding, 0, Login.xPadding + 765, WallDecoration.canvasHeight); - BufferedSink.loginScreenRunesAnimation.draw(Login.xPadding - 22, Client.cycle); - BufferedSink.loginScreenRunesAnimation.draw(Login.xPadding + 22 + 765 - 128, Client.cycle); - Rasterizer2D.Rasterizer2D_setClipArray(var3); + var0.drawCentered(var4, Login.loginBoxX + 180, var44, 16776960, 0); + int var45 = var44 + 15; + var2.drawCentered(var26, Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + var2.drawCentered(var25, Login.loginBoxX + 180, var45, 16776960, 0); + var45 += 15; + int var28 = Login.loginBoxX + 180; + short var49 = 276; + AbstractRasterProvider.titlebuttonSprite.drawAt(var28 - 73, var49 - 20); + var0.drawCentered("Support Page", var28, var49 + 5, 0xffffff, 0); + var28 = Login.loginBoxX + 180; + var49 = 326; + AbstractRasterProvider.titlebuttonSprite.drawAt(var28 - 73, var49 - 20); + var0.drawCentered("Back", var28, var49 + 5, 0xffffff, 0); + } else if (Login.loginIndex == 24) { + short var44 = 221; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var44, 0xffffff, 0); + int var45 = var44 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var45, 0xffffff, 0); + var45 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var45, 0xffffff, 0); + var45 += 15; + int var24 = Login.loginBoxX + 180; + short var5 = 301; + AbstractRasterProvider.titlebuttonSprite.drawAt(var24 - 73, var5 - 20); + var0.drawCentered("Ok", var24, var5 + 5, 0xffffff, 0); } - - UserComparator7.title_muteSprite[AbstractArchive.clientPreferences.titleMusicDisabled ? 1 : 0].drawAt(Login.xPadding + 765 - 40, 463); - if (Client.gameState > 5 && Language.Language_EN == WorldMapLabelSize.clientLanguage) { - if (Skeleton.field1767 != null) { - var45 = Login.xPadding + 5; - var46 = 463; - byte var38 = 100; - byte var6 = 35; - Skeleton.field1767.drawAt(var45, var46); - var0.drawCentered("World" + " " + Client.worldId, var38 / 2 + var45, var6 / 2 + var46 - 2, 16777215, 0); - if (class51.World_request != null) { - var1.drawCentered("Loading...", var38 / 2 + var45, var6 / 2 + var46 + 12, 16777215, 0); - } else { - var1.drawCentered("Click to switch", var38 / 2 + var45, var6 / 2 + var46 + 12, 16777215, 0); - } - } else { - Skeleton.field1767 = WorldMapRectangle.SpriteBuffer_getIndexedSpriteByName(GrandExchangeOfferAgeComparator.archive8, "sl_button", ""); - } - } - } + + if (Client.gameState >= 10) { + int[] var3 = new int[4]; + Rasterizer2D.Rasterizer2D_getClipArray(var3); + Rasterizer2D.Rasterizer2D_setClip(Login.xPadding, 0, Login.xPadding + 765, WallDecoration.canvasHeight); + BufferedSink.loginScreenRunesAnimation.draw(Login.xPadding - 22, Client.cycle); + BufferedSink.loginScreenRunesAnimation.draw(Login.xPadding + 22 + 765 - 128, Client.cycle); + Rasterizer2D.Rasterizer2D_setClipArray(var3); + } + + UserComparator7.title_muteSprite[AbstractArchive.clientPreferences.titleMusicDisabled ? 1 : 0].drawAt(Login.xPadding + 765 - 40, 463); + if (Client.gameState > 5 && Language.Language_EN == WorldMapLabelSize.clientLanguage) { + if (Skeleton.field1767 == null) { + Skeleton.field1767 = WorldMapRectangle.SpriteBuffer_getIndexedSpriteByName(GrandExchangeOfferAgeComparator.archive8, "sl_button", ""); + } else { + int var45 = Login.xPadding + 5; + short var46 = 463; + byte var38 = 100; + byte var6 = 35; + Skeleton.field1767.drawAt(var45, var46); + var0.drawCentered("World" + " " + Client.worldId, var38 / 2 + var45, var6 / 2 + var46 - 2, 0xffffff, 0); + if (class51.World_request != null) { + var1.drawCentered("Loading...", var38 / 2 + var45, var6 / 2 + var46 + 12, 0xffffff, 0); + } else { + var1.drawCentered("Click to switch", var38 / 2 + var45, var6 / 2 + var46 + 12, 0xffffff, 0); + } + } + } + } } diff --git a/runescape-client/src/main/java/Varcs.java b/runescape-client/src/main/java/Varcs.java index 50e4652a9e..64f653b807 100644 --- a/runescape-client/src/main/java/Varcs.java +++ b/runescape-client/src/main/java/Varcs.java @@ -16,7 +16,8 @@ public class Varcs { @ObfuscatedGetter( intValue = -1292567711 ) - static int field1255; + @Export("graphicsTickTimeIdx") + static int graphicsTickTimeIdx; @ObfuscatedName("ho") @ObfuscatedGetter( intValue = -2002882325 @@ -237,7 +238,7 @@ public class Varcs { } this.unwrittenChanges = false; - this.field1253 = class30.method566(); + this.field1253 = class30.currentTimeMillis(); } @ObfuscatedName("i") @@ -339,7 +340,7 @@ public class Varcs { ) @Export("tryWrite") void tryWrite() { - if (this.unwrittenChanges && this.field1253 < class30.method566() - 60000L) { + if (this.unwrittenChanges && this.field1253 < class30.currentTimeMillis() - 60000L) { this.write(); } diff --git a/runescape-client/src/main/java/WorldMap.java b/runescape-client/src/main/java/WorldMap.java index cd7df9aa22..4f6d0e2954 100644 --- a/runescape-client/src/main/java/WorldMap.java +++ b/runescape-client/src/main/java/WorldMap.java @@ -425,7 +425,7 @@ public class WorldMap { garbageValue = "-1491433552" ) public void method6445(int var1, int var2, boolean var3, boolean var4) { - long var5 = class30.method566(); + long var5 = class30.currentTimeMillis(); this.method6305(var1, var2, var4, var5); if (!this.hasTarget() && (var4 || var3)) { if (var4) { @@ -543,7 +543,7 @@ public class WorldMap { final void setWorldMapPosition(int var1, int var2, boolean var3) { this.centerTileX = var1; this.centerTileY = var2; - class30.method566(); + class30.currentTimeMillis(); if (var3) { this.method6269(); } diff --git a/runescape-client/src/main/java/WorldMapDecoration.java b/runescape-client/src/main/java/WorldMapDecoration.java index 3dbee34ff6..4a36426872 100644 --- a/runescape-client/src/main/java/WorldMapDecoration.java +++ b/runescape-client/src/main/java/WorldMapDecoration.java @@ -161,13 +161,13 @@ public class WorldMapDecoration { int var0; for (var0 = 0; var0 < 32; ++var0) { - GameShell.field430[var0] = 0L; + GameShell.graphicsTickTimes[var0] = 0L; } for (var0 = 0; var0 < 32; ++var0) { - GameShell.field431[var0] = 0L; + GameShell.clientTickTimes[var0] = 0L; } - GameShell.field419 = 0; + GameShell.gameCyclesToDo = 0; } } diff --git a/runescape-client/src/main/java/WorldMapID.java b/runescape-client/src/main/java/WorldMapID.java index f4b0569293..7e07fde89b 100644 --- a/runescape-client/src/main/java/WorldMapID.java +++ b/runescape-client/src/main/java/WorldMapID.java @@ -33,7 +33,8 @@ public class WorldMapID { @ObfuscatedGetter( intValue = -81572617 ) - static int field259; + @Export("clientTickTimeIdx") + static int clientTickTimeIdx; @ObfuscatedName("v") @ObfuscatedGetter( intValue = -1325901065 diff --git a/runescape-client/src/main/java/class30.java b/runescape-client/src/main/java/class30.java index 29a50a064a..32c030e4b6 100644 --- a/runescape-client/src/main/java/class30.java +++ b/runescape-client/src/main/java/class30.java @@ -41,7 +41,8 @@ public class class30 { signature = "(I)J", garbageValue = "1399044967" ) - public static final synchronized long method566() { + @Export("currentTimeMillis") + public static final synchronized long currentTimeMillis() { long var0 = System.currentTimeMillis(); if (var0 < class296.field3688) { class296.field3689 += class296.field3688 - var0; diff --git a/runescape-client/src/main/java/class4.java b/runescape-client/src/main/java/class4.java index dc7e3353df..e1deb727da 100644 --- a/runescape-client/src/main/java/class4.java +++ b/runescape-client/src/main/java/class4.java @@ -122,7 +122,7 @@ final class class4 implements class0 { } if (AbstractUserComparator.garbageCollector != null) { - long var9 = class30.method566(); + long var9 = class30.currentTimeMillis(); long var3 = AbstractUserComparator.garbageCollector.getCollectionTime(); if (GameShell.garbageCollectorLastCollectionTime != -1L) { long var5 = var3 - GameShell.garbageCollectorLastCollectionTime;