diff --git a/build.gradle b/build.gradle index ab267f2985..db223a370f 100644 --- a/build.gradle +++ b/build.gradle @@ -42,12 +42,6 @@ allprojects { rootPath = rootDir.toString().replace('\\', '/') injectedClassesPath = rootPath + "/injected-client/build/libs/injected-client-" + version + ".jar" } - - gradle.projectsEvaluated { - tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" - } - } } subprojects { diff --git a/injector-plugin/src/main/java/net/runelite/injector/raw/RasterizerHook.java b/injector-plugin/src/main/java/net/runelite/injector/raw/RasterizerHook.java index f7b1c6df33..df671fff40 100644 --- a/injector-plugin/src/main/java/net/runelite/injector/raw/RasterizerHook.java +++ b/injector-plugin/src/main/java/net/runelite/injector/raw/RasterizerHook.java @@ -47,16 +47,16 @@ public class RasterizerHook private static final String r3d_vert = "Rasterizer3D_vertAlpha"; private static final String r3d_horiz = "Rasterizer3D_horizAlpha"; private static final String r3d_field = "Rasterizer3D_alpha"; - private static final String sprite_alpha1 = "Sprite_alpha1"; - private static final String sprite_alpha2 = "Sprite_alpha2"; + private static final String sprite_alpha1 = "Sprite_drawTransparent"; + private static final String sprite_alpha2 = "Sprite_drawTransScaled"; private static final String font = "AbstractFont_placeGlyph"; private static final String rast3D = "Rasterizer3D_iDontKnow"; private static final String rast3D2 = "Rasterizer3D_textureAlpha"; - private static final String sprite = "Sprite_something"; - private static final String sprite2 = "Sprite_somethingElse"; - private static final String sprite3 = "Sprite_anotherOne"; - private static final String sprite4 = "Sprite_andAnotherOne"; + private static final String sprite = "Sprite_draw"; + private static final String sprite2 = "Sprite_drawScaled"; + private static final String sprite3 = "Sprite_drawTransOverlay"; + private static final String sprite4 = "Sprite_drawTransBg"; private static final String indexedSprite = "IndexedSprite_something"; private static final String indexedSprite2 = "IndexedSprite_two"; diff --git a/runelite-api/src/main/java/net/runelite/api/MenuAction.java b/runelite-api/src/main/java/net/runelite/api/MenuAction.java index cafbbe7706..e61e502a64 100644 --- a/runelite-api/src/main/java/net/runelite/api/MenuAction.java +++ b/runelite-api/src/main/java/net/runelite/api/MenuAction.java @@ -155,6 +155,8 @@ public enum MenuAction WIDGET_TYPE_5(29), /** * Interaction with widget (type 6). + * + * This is the continue button on message boxes */ WIDGET_TYPE_6(30), /** diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetType.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetType.java index cec850036f..8f8a95cce1 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetType.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetType.java @@ -35,10 +35,12 @@ public final class WidgetType public static final int TEXT_INVENTORY = 7; public static final int IF1_TOOLTIP = 8; public static final int LINE = 9; + public static final int EQUIPMENT_SCREEN_MODEL = 328; public static final int FPS = 1336; public static final int VIEWPORT = 1337; public static final int MINIMAP = 1338; public static final int COMPASS = 1339; public static final int WORLD_MAP = 1400; public static final int WORLD_MAP_OVERVIEW = 1401; + public static final int LOGIN_SCREEN_FIRE = 1402; } diff --git a/runelite-mixins/build.gradle b/runelite-mixins/build.gradle index 07f462bd9e..cd70b2906c 100644 --- a/runelite-mixins/build.gradle +++ b/runelite-mixins/build.gradle @@ -1,9 +1,10 @@ description = 'RuneLite Mixins' dependencies { - testImplementation group: 'junit', name: 'junit', version: '4.12' - testImplementation group: 'org.mockito', name: 'mockito-all', version: '1.10.19' compileOnly group: 'org.slf4j', name: 'slf4j-api', version: '1.7.26' implementation project(':runescape-api') compileOnly group: 'com.google.guava', name: 'guava', version: '28.0-jre' compileOnly group: 'javax.inject', name: 'javax.inject', version: '1' } +tasks.withType(JavaCompile){ + options.compilerArgs.addAll('-source', '7', '-Xlint:-unchecked') +} \ 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 259200b484..63480aa4be 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 @@ -279,10 +279,10 @@ public interface RSClient extends RSGameShell, Client @Override int[] getPlayerMenuTypes(); - @Import("MouseHandler_x0") + @Import("MouseHandler_xVolatile") int getMouseX(); - @Import("MouseHandler_y0") + @Import("MouseHandler_yVolatile") int getMouseY(); @Import("Scene_selectedScreenX") diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSSprite.java b/runescape-api/src/main/java/net/runelite/rs/api/RSSprite.java index d85d4e1427..1f5ee77b46 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSSprite.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSSprite.java @@ -5,7 +5,7 @@ import net.runelite.mapping.Import; public interface RSSprite extends Sprite { - @Import("drawAt2") + @Import("drawTransBgAt") @Override void drawAt(int x, int y); @@ -30,9 +30,9 @@ public interface RSSprite extends Sprite @Import("height") void setMaxHeight(int maxHeight); - @Import("yOffset") - void setOffsetX(int offsetX); // <-- I don't even know - @Import("xOffset") - void setOffsetY(int offsetY); // <-- I don't even know + void setOffsetX(int offsetX); + + @Import("yOffset") + void setOffsetY(int offsetY); } diff --git a/runescape-client/build.gradle b/runescape-client/build.gradle index b697f0a39b..7a115e1503 100644 --- a/runescape-client/build.gradle +++ b/runescape-client/build.gradle @@ -6,3 +6,6 @@ dependencies { testImplementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.26' testImplementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.26' } +tasks.withType(JavaCompile) { + options.compilerArgs.addAll('-g:source,vars,lines', '-Xlint:-unchecked') +} \ No newline at end of file diff --git a/runescape-client/src/main/java/AbstractFont.java b/runescape-client/src/main/java/AbstractFont.java index cb8fba29c0..2a83739df0 100644 --- a/runescape-client/src/main/java/AbstractFont.java +++ b/runescape-client/src/main/java/AbstractFont.java @@ -1043,14 +1043,14 @@ public abstract class AbstractFont extends Rasterizer2D { @ObfuscatedName("at") @Export("AbstractFont_placeGlyphAlpha") static void AbstractFont_placeGlyphAlpha(int[] var0, byte[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) { - var2 = ((var2 & 65280) * var9 & 16711680) + (var9 * (var2 & 16711935) & -16711936) >> 8; + var2 = ((var2 & 0xff00) * var9 & 0xff0000) + (var9 * (var2 & 0xff00ff) & 0xff00ff00) >> 8; var9 = 256 - var9; for (int var10 = -var6; var10 < 0; ++var10) { for (int var11 = -var5; var11 < 0; ++var11) { if (var1[var3++] != 0) { int var12 = var0[var4]; - var0[var4++] = (((var12 & 65280) * var9 & 16711680) + ((var12 & 16711935) * var9 & -16711936) >> 8) + var2; + var0[var4++] = (((var12 & 0xff00) * var9 & 0xff0000) + ((var12 & 0xff00ff) * var9 & 0xff00ff00) >> 8) + var2; } else { ++var4; } diff --git a/runescape-client/src/main/java/AbstractWorldMapData.java b/runescape-client/src/main/java/AbstractWorldMapData.java index ce2314d09f..252065109a 100644 --- a/runescape-client/src/main/java/AbstractWorldMapData.java +++ b/runescape-client/src/main/java/AbstractWorldMapData.java @@ -284,7 +284,7 @@ public abstract class AbstractWorldMapData { int var9 = var8 - var7; String var6; if (var9 < -9) { - var6 = ClientPreferences.colorStartTag(16711680); + var6 = ClientPreferences.colorStartTag(0xff0000); } else if (var9 < -6) { var6 = ClientPreferences.colorStartTag(16723968); } else if (var9 < -3) { @@ -292,7 +292,7 @@ public abstract class AbstractWorldMapData { } else if (var9 < 0) { var6 = ClientPreferences.colorStartTag(16756736); } else if (var9 > 9) { - var6 = ClientPreferences.colorStartTag(65280); + var6 = ClientPreferences.colorStartTag(0xff00); } else if (var9 > 6) { var6 = ClientPreferences.colorStartTag(4259584); } else if (var9 > 3) { @@ -300,21 +300,21 @@ public abstract class AbstractWorldMapData { } else if (var9 > 0) { var6 = ClientPreferences.colorStartTag(12648192); } else { - var6 = ClientPreferences.colorStartTag(16776960); + var6 = ClientPreferences.colorStartTag(0xffff00); } var4 = var4 + var6 + " " + " (" + "level-" + var0.combatLevel + ")"; } if (var0.isFollower && Client.followerOpsLowPriority) { - class188.insertMenuItemNoShift("Examine", ClientPreferences.colorStartTag(16776960) + var4, 1003, var1, var2, var3); + class188.insertMenuItemNoShift("Examine", ClientPreferences.colorStartTag(0xffff00) + var4, 1003, var1, var2, var3); } if (Client.isItemSelected == 1) { - class188.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ClientPreferences.colorStartTag(16776960) + var4, 7, var1, var2, var3); + class188.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ClientPreferences.colorStartTag(0xffff00) + var4, 7, var1, var2, var3); } else if (Client.isSpellSelected) { if ((WorldMapCacheName.selectedSpellFlags & 2) == 2) { - class188.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ClientPreferences.colorStartTag(16776960) + var4, 8, var1, var2, var3); + class188.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ClientPreferences.colorStartTag(0xffff00) + var4, 8, var1, var2, var3); } } else { int var10 = var0.isFollower && Client.followerOpsLowPriority ? 2000 : 0; @@ -343,7 +343,7 @@ public abstract class AbstractWorldMapData { var8 = var10 + 13; } - class188.insertMenuItemNoShift(var11[var7], ClientPreferences.colorStartTag(16776960) + var4, var8, var1, var2, var3); + class188.insertMenuItemNoShift(var11[var7], ClientPreferences.colorStartTag(0xffff00) + var4, var8, var1, var2, var3); } } } @@ -378,14 +378,14 @@ public abstract class AbstractWorldMapData { var8 = var12 + 13; } - class188.insertMenuItemNoShift(var11[var7], ClientPreferences.colorStartTag(16776960) + var4, var8, var1, var2, var3); + class188.insertMenuItemNoShift(var11[var7], ClientPreferences.colorStartTag(0xffff00) + var4, var8, var1, var2, var3); } } } } if (!var0.isFollower || !Client.followerOpsLowPriority) { - class188.insertMenuItemNoShift("Examine", ClientPreferences.colorStartTag(16776960) + var4, 1003, var1, var2, var3); + class188.insertMenuItemNoShift("Examine", ClientPreferences.colorStartTag(0xffff00) + var4, 1003, var1, var2, var3); } } diff --git a/runescape-client/src/main/java/AbstractWorldMapIcon.java b/runescape-client/src/main/java/AbstractWorldMapIcon.java index 4c2d8e0350..a13b4606f8 100644 --- a/runescape-client/src/main/java/AbstractWorldMapIcon.java +++ b/runescape-client/src/main/java/AbstractWorldMapIcon.java @@ -105,7 +105,7 @@ public abstract class AbstractWorldMapIcon { if (!this.hasValidElement()) { return false; } - WorldMapElement var3 = class222.getWorldMapElement(this.getElement()); + WorldMapElement var3 = class222.WorldMapElement_get(this.getElement()); int var4 = this.getSubWidth(); int var5 = this.getSubHeight(); switch(var3.horizontalAlignment.value) { diff --git a/runescape-client/src/main/java/Archive.java b/runescape-client/src/main/java/Archive.java index 9080902fe4..e0468c6209 100644 --- a/runescape-client/src/main/java/Archive.java +++ b/runescape-client/src/main/java/Archive.java @@ -438,9 +438,10 @@ public class Archive extends AbstractArchive { signature = "(IB)V", garbageValue = "35" ) - static final void method4269(int var0) { + @Export("drawInterfaceModelComponents") + static final void drawInterfaceModelComponents(int var0) { if (class162.loadInterface(var0)) { - class225.method4122(Widget.Widget_interfaceComponents[var0], -1); + class225.drawModelComponents(Widget.Widget_interfaceComponents[var0], -1); } } } diff --git a/runescape-client/src/main/java/ArchiveDiskActionHandler.java b/runescape-client/src/main/java/ArchiveDiskActionHandler.java index 0fd358b9dd..ec13f9667e 100644 --- a/runescape-client/src/main/java/ArchiveDiskActionHandler.java +++ b/runescape-client/src/main/java/ArchiveDiskActionHandler.java @@ -74,7 +74,7 @@ public class ArchiveDiskActionHandler implements Runnable { field3144 = 600; } } else { - EnumDefinition.method4550(100L); + EnumDefinition.sleepMillis(100L); synchronized(ArchiveDiskActionHandler_lock) { if (field3144 <= 1) { field3144 = 0; diff --git a/runescape-client/src/main/java/ArchiveLoader.java b/runescape-client/src/main/java/ArchiveLoader.java index 75bd235e5f..690cf09bd2 100644 --- a/runescape-client/src/main/java/ArchiveLoader.java +++ b/runescape-client/src/main/java/ArchiveLoader.java @@ -256,7 +256,7 @@ public class ArchiveLoader { } if (!Client.localPlayer.isHidden) { - Rasterizer2D.Rasterizer2D_fillRectangle(var4.width / 2 + var1 - 1, var4.height / 2 + var2 - 1, 3, 3, 16777215); + Rasterizer2D.Rasterizer2D_fillRectangle(var4.width / 2 + var1 - 1, var4.height / 2 + var2 - 1, 3, 3, 0xffffff); } } else { Rasterizer2D.Rasterizer2D_fillMaskedRectangle(var1, var2, 0, var4.xStarts, var4.xWidths); diff --git a/runescape-client/src/main/java/BZip2Decompressor.java b/runescape-client/src/main/java/BZip2Decompressor.java index 3f275001af..20cb637efb 100644 --- a/runescape-client/src/main/java/BZip2Decompressor.java +++ b/runescape-client/src/main/java/BZip2Decompressor.java @@ -192,7 +192,7 @@ public final class BZip2Decompressor { int[] var23 = null; int[] var24 = null; int[] var25 = null; - var0.blockSize100k = 1410065408; + var0.blockSize100k = 1; if (VarbitDefinition.BZip2Decompressor_block == null) { VarbitDefinition.BZip2Decompressor_block = new int[var0.blockSize100k * 100000]; } diff --git a/runescape-client/src/main/java/Client.java b/runescape-client/src/main/java/Client.java index 6645b0ac7b..751d01ed77 100644 --- a/runescape-client/src/main/java/Client.java +++ b/runescape-client/src/main/java/Client.java @@ -311,7 +311,8 @@ public final class Client extends GameShell implements Usernamed { @ObfuscatedSignature( signature = "Lhj;" ) - static Widget field850; + @Export("meslayerContinueWidget") + static Widget meslayerContinueWidget; @ObfuscatedName("mx") @ObfuscatedGetter( intValue = 176559841 @@ -584,7 +585,8 @@ public final class Client extends GameShell implements Usernamed { ) static long field666; @ObfuscatedName("cb") - static boolean field667; + @Export("hadFocus") + static boolean hadFocus; @ObfuscatedName("cx") @Export("displayFps") static boolean displayFps; @@ -1102,7 +1104,8 @@ public final class Client extends GameShell implements Usernamed { @ObfuscatedGetter( intValue = -36674671 ) - static int field774; + @Export("drawPlayerNames") + static int drawPlayerNames; @ObfuscatedName("kv") @ObfuscatedGetter( intValue = -469680529 @@ -1211,12 +1214,14 @@ public final class Client extends GameShell implements Usernamed { @ObfuscatedGetter( intValue = 1100971195 ) - static int field803; + @Export("viewportX") + static int viewportX; @ObfuscatedName("lz") @ObfuscatedGetter( intValue = 361474091 ) - static int field804; + @Export("viewportY") + static int viewportY; @ObfuscatedName("lv") @ObfuscatedSignature( signature = "Lcn;" @@ -1287,7 +1292,7 @@ public final class Client extends GameShell implements Usernamed { field717 = -1; field665 = -1; field666 = -1L; - field667 = true; + hadFocus = true; displayFps = false; rebootTimer = 0; hintArrowType = 0; @@ -1390,7 +1395,7 @@ public final class Client extends GameShell implements Usernamed { localPlayerIndex = -1; field771 = 0; renderSelf = true; - field774 = 0; + drawPlayerNames = 0; field775 = 0; field776 = new int[1000]; playerMenuOpcodes = new int[]{44, 45, 46, 47, 48, 49, 50, 51}; @@ -1419,8 +1424,8 @@ public final class Client extends GameShell implements Usernamed { shiftClickDrop = false; tapToDrop = false; showMouseOverText = true; - field803 = -1; - field804 = -1; + viewportX = -1; + viewportY = -1; field840 = 0; field833 = 50; isItemSelected = 0; @@ -1436,7 +1441,7 @@ public final class Client extends GameShell implements Usernamed { field818 = -1; chatEffects = 0; field809 = 0; - field850 = null; + meslayerContinueWidget = null; runEnergy = 0; weight = 0; staffModLevel = 0; @@ -1485,7 +1490,7 @@ public final class Client extends GameShell implements Usernamed { gameDrawingMode = 0; field868 = 0L; isResizable = true; - field870 = new int[]{16776960, 16711680, 65280, 65535, 16711935, 16777215}; + field870 = new int[]{0xffff00, 0xff0000, 0xff00, 65535, 0xff00ff, 0xffffff}; publicChatMode = 0; tradeChatMode = 0; field762 = ""; @@ -1621,124 +1626,122 @@ public final class Client extends GameShell implements Usernamed { while (true) { ArchiveDiskAction var1; - synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { - var1 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_responseQueue.removeLast(); + synchronized (ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { + var1 = (ArchiveDiskAction) ArchiveDiskActionHandler.ArchiveDiskActionHandler_responseQueue.removeLast(); } if (var1 == null) { - int var6; - try { - if (class197.field2402 == 1) { - var6 = Interpreter.midiPcmStream.method3707(); - if (var6 > 0 && Interpreter.midiPcmStream.isReady()) { - var6 -= class197.field2404; - if (var6 < 0) { - var6 = 0; - } - - Interpreter.midiPcmStream.method3706(var6); - } else { - Interpreter.midiPcmStream.clear(); - Interpreter.midiPcmStream.removeAll(); - if (GrandExchangeOfferNameComparator.musicTrackArchive != null) { - class197.field2402 = 2; - } else { - class197.field2402 = 0; - } - - UserComparator10.musicTrack = null; - WorldMapLabelSize.soundCache = null; - } - } - } catch (Exception var11) { - var11.printStackTrace(); - Interpreter.midiPcmStream.clear(); - class197.field2402 = 0; - UserComparator10.musicTrack = null; - WorldMapLabelSize.soundCache = null; - GrandExchangeOfferNameComparator.musicTrackArchive = null; - } - - class186.playPcmPlayers(); - synchronized(KeyHandler.KeyHandler_instance) { - ++KeyHandler.KeyHandler_idleCycles; - KeyHandler.field396 = KeyHandler.field385; - KeyHandler.field386 = 0; - int var7; - if (KeyHandler.field398 >= 0) { - while (KeyHandler.field388 != KeyHandler.field398) { - var7 = KeyHandler.field391[KeyHandler.field388]; - KeyHandler.field388 = KeyHandler.field388 + 1 & 127; - if (var7 < 0) { - KeyHandler.KeyHandler_pressedKeys[~var7] = false; - } else { - if (!KeyHandler.KeyHandler_pressedKeys[var7] && KeyHandler.field386 < KeyHandler.field401.length - 1) { - KeyHandler.field401[++KeyHandler.field386 - 1] = var7; - } - - KeyHandler.KeyHandler_pressedKeys[var7] = true; - } - } - } else { - for (var7 = 0; var7 < 112; ++var7) { - KeyHandler.KeyHandler_pressedKeys[var7] = false; - } - - KeyHandler.field398 = KeyHandler.field388; - } - - if (KeyHandler.field386 > 0) { - KeyHandler.KeyHandler_idleCycles = 0; - } - - KeyHandler.field385 = KeyHandler.field404; - } - - synchronized(MouseHandler.MouseHandler_instance) { - MouseHandler.MouseHandler_currentButton = MouseHandler.MouseHandler_currentButton0; - MouseHandler.MouseHandler_x = MouseHandler.MouseHandler_x0; - MouseHandler.MouseHandler_y = MouseHandler.MouseHandler_y0; - MouseHandler.MouseHandler_millis = MouseHandler.MouseHandler_millis0; - MouseHandler.MouseHandler_lastButton = MouseHandler.MouseHandler_lastButton0; - MouseHandler.MouseHandler_lastPressedX = MouseHandler.MouseHandler_lastPressedX0; - MouseHandler.MouseHandler_lastPressedY = MouseHandler.MouseHandler_lastPressedY0; - MouseHandler.MouseHandler_lastPressedTimeMillis = MouseHandler.MouseHandler_lastPressedTimeMillis0; - MouseHandler.MouseHandler_lastButton0 = 0; - } - - if (WorldMapManager.mouseWheel != null) { - var6 = WorldMapManager.mouseWheel.useRotation(); - mouseWheelRotation = var6; - } - - if (gameState == 0) { - Timer.load(); - WallDecoration.method3291(); - } else if (gameState == 5) { - VarbitDefinition.method4484(this); - Timer.load(); - WallDecoration.method3291(); - } else if (gameState != 10 && gameState != 11) { - if (gameState == 20) { - VarbitDefinition.method4484(this); - this.doCycleLoggedOut(); - } else if (gameState == 25) { - PacketBufferNode.method3628(); - } - } else { - VarbitDefinition.method4484(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); + var1.archive.load(var1.archiveDisk, (int) var1.key, var1.data, false); + } + + int var6; + try { + if (class197.field2402 == 1) { + var6 = Interpreter.midiPcmStream.method3707(); + if (var6 > 0 && Interpreter.midiPcmStream.isReady()) { + var6 -= class197.field2404; + if (var6 < 0) { + var6 = 0; + } + + Interpreter.midiPcmStream.method3706(var6); + } else { + Interpreter.midiPcmStream.clear(); + Interpreter.midiPcmStream.removeAll(); + if (GrandExchangeOfferNameComparator.musicTrackArchive != null) { + class197.field2402 = 2; + } else { + class197.field2402 = 0; + } + + UserComparator10.musicTrack = null; + WorldMapLabelSize.soundCache = null; + } + } + } catch (Exception var11) { + var11.printStackTrace(); + Interpreter.midiPcmStream.clear(); + class197.field2402 = 0; + UserComparator10.musicTrack = null; + WorldMapLabelSize.soundCache = null; + GrandExchangeOfferNameComparator.musicTrackArchive = null; + } + + class186.playPcmPlayers(); + synchronized(KeyHandler.KeyHandler_instance) { + ++KeyHandler.KeyHandler_idleCycles; + KeyHandler.field396 = KeyHandler.field385; + KeyHandler.field386 = 0; + int var7; + if (KeyHandler.field398 >= 0) { + while (KeyHandler.field388 != KeyHandler.field398) { + var7 = KeyHandler.field391[KeyHandler.field388]; + KeyHandler.field388 = KeyHandler.field388 + 1 & 127; + if (var7 < 0) { + KeyHandler.KeyHandler_pressedKeys[~var7] = false; + } else { + if (!KeyHandler.KeyHandler_pressedKeys[var7] && KeyHandler.field386 < KeyHandler.field401.length - 1) { + KeyHandler.field401[++KeyHandler.field386 - 1] = var7; + } + + KeyHandler.KeyHandler_pressedKeys[var7] = true; + } + } + } else { + for (var7 = 0; var7 < 112; ++var7) { + KeyHandler.KeyHandler_pressedKeys[var7] = false; + } + + KeyHandler.field398 = KeyHandler.field388; + } + + if (KeyHandler.field386 > 0) { + KeyHandler.KeyHandler_idleCycles = 0; + } + + KeyHandler.field385 = KeyHandler.field404; + } + + synchronized(MouseHandler.MouseHandler_instance) { + MouseHandler.MouseHandler_currentButton = MouseHandler.MouseHandler_currentButtonVolatile; + MouseHandler.MouseHandler_x = MouseHandler.MouseHandler_xVolatile; + MouseHandler.MouseHandler_y = MouseHandler.MouseHandler_yVolatile; + MouseHandler.MouseHandler_millis = MouseHandler.MouseHandler_lastMovedVolatile; + MouseHandler.MouseHandler_lastButton = MouseHandler.MouseHandler_lastButtonVolatile; + MouseHandler.MouseHandler_lastPressedX = MouseHandler.MouseHandler_lastPressedXVolatile; + MouseHandler.MouseHandler_lastPressedY = MouseHandler.MouseHandler_lastPressedYVolatile; + MouseHandler.MouseHandler_lastPressedTimeMillis = MouseHandler.MouseHandler_lastPressedTimeMillisVolatile; + MouseHandler.MouseHandler_lastButtonVolatile = 0; + } + + if (WorldMapManager.mouseWheel != null) { + var6 = WorldMapManager.mouseWheel.useRotation(); + mouseWheelRotation = var6; + } + + if (gameState == 0) { + Timer.load(); + WallDecoration.method3291(); + } else if (gameState == 5) { + VarbitDefinition.method4484(this); + Timer.load(); + WallDecoration.method3291(); + } else if (gameState == 10 || gameState == 11) { + VarbitDefinition.method4484(this); + } else if (gameState == 20) { + VarbitDefinition.method4484(this); + this.doCycleLoggedOut(); + } else if (gameState == 25) { + PacketBufferNode.method3628(); + } + + if (gameState == 30) { + this.doCycleLoggedIn(); + } else if (gameState == 40 || gameState == 45) { + this.doCycleLoggedOut(); } } @@ -1808,36 +1811,34 @@ public final class Client extends GameShell implements Usernamed { this.drawInitial(Login.Login_loadingPercent, Login.Login_loadingText, var1); } else if (gameState == 5) { class189.drawTitle(WorldMapIcon_1.fontBold12, Coord.fontPlain11, class169.fontPlain12); - } else if (gameState != 10 && gameState != 11) { - if (gameState == 20) { - class189.drawTitle(WorldMapIcon_1.fontBold12, Coord.fontPlain11, class169.fontPlain12); - } else if (gameState == 25) { - if (field709 == 1) { - if (field705 > field706) { - field706 = field705; - } - - var4 = (field706 * 50 - field705 * 50) / field706; - TriBool.drawLoadingMessage("Loading - please wait." + "
" + " (" + var4 + "%" + ")", false); - } else if (field709 == 2) { - if (field707 > field896) { - field896 = field707; - } - - var4 = (field896 * 50 - field707 * 50) / field896 + 50; - TriBool.drawLoadingMessage("Loading - please wait." + "
" + " (" + var4 + "%" + ")", false); - } else { - TriBool.drawLoadingMessage("Loading - please wait.", false); - } - } else if (gameState == 30) { - this.drawLoggedIn(); - } else if (gameState == 40) { - TriBool.drawLoadingMessage("Connection lost" + "
" + "Please wait - attempting to reestablish", false); - } else if (gameState == 45) { - TriBool.drawLoadingMessage("Please wait...", false); - } - } else { + } else if (gameState == 10 || gameState == 11) { class189.drawTitle(WorldMapIcon_1.fontBold12, Coord.fontPlain11, class169.fontPlain12); + } else if (gameState == 20) { + class189.drawTitle(WorldMapIcon_1.fontBold12, Coord.fontPlain11, class169.fontPlain12); + } else if (gameState == 25) { + if (field709 == 1) { + if (field705 > field706) { + field706 = field705; + } + + var4 = (field706 * 50 - field705 * 50) / field706; + TriBool.drawLoadingMessage("Loading - please wait." + "
" + " (" + var4 + "%" + ")", false); + } else if (field709 == 2) { + if (field707 > field896) { + field896 = field707; + } + + var4 = (field896 * 50 - field707 * 50) / field896 + 50; + TriBool.drawLoadingMessage("Loading - please wait." + "
" + " (" + var4 + "%" + ")", false); + } else { + TriBool.drawLoadingMessage("Loading - please wait.", false); + } + } else if (gameState == 30) { + this.drawLoggedIn(); + } else if (gameState == 40) { + TriBool.drawLoadingMessage("Connection lost" + "
" + "Please wait - attempting to reestablish", false); + } else if (gameState == 45) { + TriBool.drawLoadingMessage("Please wait...", false); } if (gameState == 30 && gameDrawingMode == 0 && !var1 && !isResizable) { @@ -2849,8 +2850,8 @@ public final class Client extends GameShell implements Usernamed { for (var5 = 0; var5 < KeyHandler.field386; ++var5) { long var22 = var20 - field879; - if (var22 > 16777215L) { - var22 = 16777215L; + if (var22 > 0xffffffL) { + var22 = 0xffffffL; } field879 = var20; @@ -2879,15 +2880,15 @@ public final class Client extends GameShell implements Usernamed { packetWriter.method2219(var15); } - if (class267.field3557 && !field667) { - field667 = true; + if (class267.hasFocus && !hadFocus) { + hadFocus = true; var15 = Archive.method4265(ClientPacket.field2276, packetWriter.isaacCipher); var15.packetBuffer.writeByte(1); packetWriter.method2219(var15); } - if (!class267.field3557 && field667) { - field667 = false; + if (!class267.hasFocus && hadFocus) { + hadFocus = false; var15 = Archive.method4265(ClientPacket.field2276, packetWriter.isaacCipher); var15.packetBuffer.writeByte(0); packetWriter.method2219(var15); @@ -2947,10 +2948,10 @@ public final class Client extends GameShell implements Usernamed { for (var7 = 0; var7 < 104; ++var7) { long var24 = GrandExchangeOfferWorldComparator.scene.getFloorDecorationTag(class42.plane, var6, var7); if (0L != var24) { - var10 = class43.method770(var24); + var10 = class43.getObjectIdFromTag(var24); var11 = ViewportMouse.getObjectDefinition(var10).mapIconId; if (var11 >= 0) { - mapIcons[mapIconCount] = class222.getWorldMapElement(var11).getSpriteBool(false); + mapIcons[mapIconCount] = class222.WorldMapElement_get(var11).getSpriteBool(false); mapIconXs[mapIconCount] = var6; mapIconYs[mapIconCount] = var7; ++mapIconCount; @@ -3018,7 +3019,7 @@ public final class Client extends GameShell implements Usernamed { if (ItemContainer.field549 != null) { ++field759; if (field759 >= 15) { - Strings.method4120(ItemContainer.field549); + Strings.invalidateWidget(ItemContainer.field549); ItemContainer.field549 = null; } } @@ -3053,7 +3054,7 @@ public final class Client extends GameShell implements Usernamed { } if (var4 != localPlayer.plane) { - WorldMapLabel.method418(localPlayer.pathX[0] + MusicPatchNode2.baseX * 64, localPlayer.pathY[0] + class1.baseY * 64, var4, false); + WorldMapLabel.changePlane(localPlayer.pathX[0] + MusicPatchNode2.baseX * 64, localPlayer.pathY[0] + class1.baseY * 64, var4, false); } mouseWheelRotation = 0; @@ -3087,7 +3088,7 @@ public final class Client extends GameShell implements Usernamed { } if (WorldMapIcon_0.dragInventoryWidget != null) { - Strings.method4120(WorldMapIcon_0.dragInventoryWidget); + Strings.invalidateWidget(WorldMapIcon_0.dragInventoryWidget); ++itemDragDuration; if (MouseHandler.MouseHandler_currentButton == 0) { if (field874) { @@ -3171,21 +3172,21 @@ public final class Client extends GameShell implements Usernamed { if (var36 != LoginScreenAnimation.mousedOverWidgetIf1) { if (var36 != null) { - Strings.method4120(var36); + Strings.invalidateWidget(var36); } if (LoginScreenAnimation.mousedOverWidgetIf1 != null) { - Strings.method4120(LoginScreenAnimation.mousedOverWidgetIf1); + Strings.invalidateWidget(LoginScreenAnimation.mousedOverWidgetIf1); } } if (var38 != class32.field284 && field840 == field833) { if (var38 != null) { - Strings.method4120(var38); + Strings.invalidateWidget(var38); } if (class32.field284 != null) { - Strings.method4120(class32.field284); + Strings.invalidateWidget(class32.field284); } } @@ -3193,7 +3194,7 @@ public final class Client extends GameShell implements Usernamed { if (field840 < field833) { ++field840; if (field840 == field833) { - Strings.method4120(class32.field284); + Strings.invalidateWidget(class32.field284); } } } else if (field840 > 0) { @@ -3326,7 +3327,7 @@ public final class Client extends GameShell implements Usernamed { packetWriter.method2219(var30); } - ArchiveLoader.friendSystem.method1762(); + ArchiveLoader.friendSystem.processFriendUpdates(); ++packetWriter.field1319; if (packetWriter.field1319 > 50) { var30 = Archive.method4265(ClientPacket.field2225, packetWriter.isaacCipher); @@ -3416,7 +3417,7 @@ public final class Client extends GameShell implements Usernamed { @Export("drawLoggedIn") final void drawLoggedIn() { if (rootInterface != -1) { - Archive.method4269(rootInterface); + Archive.drawInterfaceModelComponents(rootInterface); } int var1; @@ -3430,8 +3431,8 @@ public final class Client extends GameShell implements Usernamed { } field741 = cycle; - field803 = -1; - field804 = -1; + viewportX = -1; + viewportY = -1; class294.field3697 = null; if (rootInterface != -1) { rootWidgetCount = 0; @@ -3441,11 +3442,11 @@ public final class Client extends GameShell implements Usernamed { Rasterizer2D.Rasterizer2D_resetClip(); if (showMouseCross) { if (mouseCrossColor == 1) { - Occluder.crossSprites[mouseCrossState * 20 / 100].drawAt2(mouseCrossX - 8, mouseCrossY - 8); + Occluder.crossSprites[mouseCrossState * 20 / 100].drawTransBgAt(mouseCrossX - 8, mouseCrossY - 8); } if (mouseCrossColor == 2) { - Occluder.crossSprites[mouseCrossState * 20 / 100 + 4].drawAt2(mouseCrossX - 8, mouseCrossY - 8); + Occluder.crossSprites[mouseCrossState * 20 / 100 + 4].drawTransBgAt(mouseCrossX - 8, mouseCrossY - 8); } } @@ -3456,8 +3457,8 @@ public final class Client extends GameShell implements Usernamed { int var7; int var13; if (!isMenuOpen) { - if (field803 != -1) { - WorldMapSprite.drawMenuActionTextAt(field803, field804); + if (viewportX != -1) { + WorldMapSprite.drawMenuActionTextAt(viewportX, viewportY); } } else { var1 = class247.menuX; @@ -3476,12 +3477,12 @@ public final class Client extends GameShell implements Usernamed { int var16; for (var13 = 0; var13 < menuOptionsCount; ++var13) { var15 = var2 + (menuOptionsCount - 1 - var13) * 15 + 31; - var16 = 16777215; + var16 = 0xffffff; if (var6 > var1 && var6 < var1 + var3 && var7 > var15 - 13 && var7 < var15 + 3) { - var16 = 16776960; + var16 = 0xffff00; } - WorldMapIcon_1.fontBold12.draw(WorldMapLabel.method417(var13), var1 + 3, var15, var16, 0); + WorldMapIcon_1.fontBold12.draw(WorldMapLabel.getMenuText(var13), var1 + 3, var15, var16, 0); } var13 = class247.menuX; @@ -3499,9 +3500,9 @@ public final class Client extends GameShell implements Usernamed { if (gameDrawingMode == 3) { for (var1 = 0; var1 < rootWidgetCount; ++var1) { if (field862[var1]) { - Rasterizer2D.Rasterizer2D_fillRectangleAlpha(rootWidgetXs[var1], rootWidgetYs[var1], rootWidgetWidths[var1], rootWidgetHeights[var1], 16711935, 128); + Rasterizer2D.Rasterizer2D_fillRectangleAlpha(rootWidgetXs[var1], rootWidgetYs[var1], rootWidgetWidths[var1], rootWidgetHeights[var1], 0xff00ff, 128); } else if (field861[var1]) { - Rasterizer2D.Rasterizer2D_fillRectangleAlpha(rootWidgetXs[var1], rootWidgetYs[var1], rootWidgetWidths[var1], rootWidgetHeights[var1], 16711680, 128); + Rasterizer2D.Rasterizer2D_fillRectangleAlpha(rootWidgetXs[var1], rootWidgetYs[var1], rootWidgetWidths[var1], rootWidgetHeights[var1], 0xff0000, 128); } } } @@ -3512,75 +3513,76 @@ public final class Client extends GameShell implements Usernamed { var4 = field718; for (ObjectSound var5 = (ObjectSound)ObjectSound.objectSounds.last(); var5 != null; var5 = (ObjectSound)ObjectSound.objectSounds.previous()) { - if (var5.soundEffectId != -1 || var5.soundEffectIds != null) { - var6 = 0; - if (var2 > var5.field1077 * 128) { - var6 += var2 - var5.field1077 * 128; - } else if (var2 < var5.field1083 * 16384) { - var6 += var5.field1083 * 16384 - var2; + if (var5.soundEffectId == -1 && var5.soundEffectIds == null) { + continue; + } + var6 = 0; + if (var2 > var5.field1077 * 128) { + var6 += var2 - var5.field1077 * 128; + } else if (var2 < var5.x * 16384) { + var6 += var5.x * 16384 - var2; + } + + if (var3 > var5.field1082 * 128) { + var6 += var3 - var5.field1082 * 128; + } else if (var3 < var5.y * 128) { + var6 += var5.y * 128 - var3; + } + + if (var6 - 64 <= var5.field1091 && field892 != 0 && var1 == var5.plane) { + var6 -= 64; + if (var6 < 0) { + var6 = 0; } - if (var3 > var5.field1082 * 128) { - var6 += var3 - var5.field1082 * 128; - } else if (var3 < var5.field1090 * 128) { - var6 += var5.field1090 * 128 - var3; - } - - if (var6 - 64 <= var5.field1091 && field892 != 0 && var1 == var5.field1078) { - var6 -= 64; - if (var6 < 0) { - var6 = 0; - } - - var7 = (var5.field1091 - var6) * field892 / var5.field1091; - Object var10000; - if (var5.stream1 == null) { - if (var5.soundEffectId >= 0) { - var10000 = null; - SoundEffect var8 = SoundEffect.readSoundEffect(class13.archive4, var5.soundEffectId, 0); - if (var8 != null) { - RawSound var9 = var8.toRawSound().resample(AttackOption.decimator); - RawPcmStream var10 = RawPcmStream.createRawPcmStream(var9, 100, var7); - var10.setNumLoops(-1); - SecureRandomCallable.pcmStreamMixer.addSubStream(var10); - var5.stream1 = var10; - } - } - } else { - var5.stream1.method2527(var7); - } - - if (var5.stream2 == null) { - if (var5.soundEffectIds != null && (var5.field1089 -= var4) <= 0) { - var13 = (int)(Math.random() * (double)var5.soundEffectIds.length); - var10000 = null; - SoundEffect var18 = SoundEffect.readSoundEffect(class13.archive4, var5.soundEffectIds[var13], 0); - if (var18 != null) { - RawSound var19 = var18.toRawSound().resample(AttackOption.decimator); - RawPcmStream var11 = RawPcmStream.createRawPcmStream(var19, 100, var7); - var11.setNumLoops(0); - SecureRandomCallable.pcmStreamMixer.addSubStream(var11); - var5.stream2 = var11; - var5.field1089 = var5.field1086 + (int)(Math.random() * (double)(var5.field1081 - var5.field1086)); - } - } - } else { - var5.stream2.method2527(var7); - if (!var5.stream2.hasNext()) { - var5.stream2 = null; + var7 = (var5.field1091 - var6) * field892 / var5.field1091; + Object var10000; + if (var5.stream1 == null) { + if (var5.soundEffectId >= 0) { + var10000 = null; + SoundEffect var8 = SoundEffect.readSoundEffect(class13.archive4, var5.soundEffectId, 0); + if (var8 != null) { + RawSound var9 = var8.toRawSound().resample(AttackOption.decimator); + RawPcmStream var10 = RawPcmStream.createRawPcmStream(var9, 100, var7); + var10.setNumLoops(-1); + SecureRandomCallable.pcmStreamMixer.addSubStream(var10); + var5.stream1 = var10; } } } else { - if (var5.stream1 != null) { - SecureRandomCallable.pcmStreamMixer.removeSubStream(var5.stream1); - var5.stream1 = null; - } + var5.stream1.method2527(var7); + } - if (var5.stream2 != null) { - SecureRandomCallable.pcmStreamMixer.removeSubStream(var5.stream2); + if (var5.stream2 == null) { + if (var5.soundEffectIds != null && (var5.field1089 -= var4) <= 0) { + var13 = (int)(Math.random() * (double)var5.soundEffectIds.length); + var10000 = null; + SoundEffect var18 = SoundEffect.readSoundEffect(class13.archive4, var5.soundEffectIds[var13], 0); + if (var18 != null) { + RawSound var19 = var18.toRawSound().resample(AttackOption.decimator); + RawPcmStream var11 = RawPcmStream.createRawPcmStream(var19, 100, var7); + var11.setNumLoops(0); + SecureRandomCallable.pcmStreamMixer.addSubStream(var11); + var5.stream2 = var11; + var5.field1089 = var5.field1086 + (int)(Math.random() * (double)(var5.field1081 - var5.field1086)); + } + } + } else { + var5.stream2.method2527(var7); + if (!var5.stream2.hasNext()) { var5.stream2 = null; } } + } else { + if (var5.stream1 != null) { + SecureRandomCallable.pcmStreamMixer.removeSubStream(var5.stream1); + var5.stream1 = null; + } + + if (var5.stream2 != null) { + SecureRandomCallable.pcmStreamMixer.removeSubStream(var5.stream2); + var5.stream2 = null; + } } } @@ -3673,7 +3675,7 @@ public final class Client extends GameShell implements Usernamed { var6 = class80.getWidget(var16); if (var47 != var6.isHidden) { var6.isHidden = var47; - Strings.method4120(var6); + Strings.invalidateWidget(var6); } var1.serverPacket = null; @@ -3760,7 +3762,7 @@ public final class Client extends GameShell implements Usernamed { var8.modelAngleX = var16; var8.modelAngleY = var17; var8.modelZoom = var5; - Strings.method4120(var8); + Strings.invalidateWidget(var8); } var1.serverPacket = null; @@ -3805,7 +3807,7 @@ public final class Client extends GameShell implements Usernamed { var19.modelAngleX = var43.xan2d; var19.modelAngleY = var43.yan2d; var19.modelZoom = var43.zoom2d * 100 / var17; - Strings.method4120(var19); + Strings.invalidateWidget(var19); } else { var19.itemId = var5; var19.itemQuantity = var17; @@ -3828,7 +3830,7 @@ public final class Client extends GameShell implements Usernamed { var19.modelZoom = var19.modelZoom * 32 / var19.rawWidth; } - Strings.method4120(var19); + Strings.invalidateWidget(var19); } var1.serverPacket = null; @@ -3951,7 +3953,7 @@ public final class Client extends GameShell implements Usernamed { if (var5 != var6.scrollY) { var6.scrollY = var5; - Strings.method4120(var6); + Strings.invalidateWidget(var6); } } @@ -3997,7 +3999,7 @@ public final class Client extends GameShell implements Usernamed { var53.itemIds[var17] = 0; } - Strings.method4120(var53); + Strings.invalidateWidget(var53); var1.serverPacket = null; return true; } @@ -4065,7 +4067,7 @@ public final class Client extends GameShell implements Usernamed { var6.sequenceId = var16; var6.modelFrame = 0; var6.modelFrameCycle = 0; - Strings.method4120(var6); + Strings.invalidateWidget(var6); } var1.serverPacket = null; @@ -4302,9 +4304,9 @@ public final class Client extends GameShell implements Usernamed { class197.closeInterface(var54, true); } - if (field850 != null) { - Strings.method4120(field850); - field850 = null; + if (meslayerContinueWidget != null) { + Strings.invalidateWidget(meslayerContinueWidget); + meslayerContinueWidget = null; } var1.serverPacket = null; @@ -4346,7 +4348,7 @@ public final class Client extends GameShell implements Usernamed { if (var6.modelType != 2 || var16 != var6.modelId) { var6.modelType = 2; var6.modelId = var16; - Strings.method4120(var6); + Strings.invalidateWidget(var6); } var1.serverPacket = null; @@ -4363,7 +4365,7 @@ public final class Client extends GameShell implements Usernamed { var19.rawY = var5; var19.xAlignment = 0; var19.yAlignment = 0; - Strings.method4120(var19); + Strings.invalidateWidget(var19); this.alignWidget(var19); if (var19.type == 0) { WorldMapSprite.revalidateWidgetScroll(Widget.Widget_interfaceComponents[var16 >> 16], var19, false); @@ -4472,7 +4474,7 @@ public final class Client extends GameShell implements Usernamed { var53 = class80.getWidget(var16); var53.modelType = 3; var53.modelId = localPlayer.appearance.getChatHeadId(); - Strings.method4120(var53); + Strings.invalidateWidget(var53); var1.serverPacket = null; return true; } @@ -4654,7 +4656,7 @@ public final class Client extends GameShell implements Usernamed { } if (var6 != null) { - Strings.method4120(var6); + Strings.invalidateWidget(var6); } class65.method1176(); @@ -4699,7 +4701,7 @@ public final class Client extends GameShell implements Usernamed { var6 = class80.getWidget(var16); if (!var18.equals(var6.text)) { var6.text = var18; - Strings.method4120(var6); + Strings.invalidateWidget(var6); } var1.serverPacket = null; @@ -4754,7 +4756,7 @@ public final class Client extends GameShell implements Usernamed { Widget var28 = class80.getWidget(var16); if (var9 != var28.color) { var28.color = var9; - Strings.method4120(var28); + Strings.invalidateWidget(var28); } var1.serverPacket = null; @@ -4793,12 +4795,12 @@ public final class Client extends GameShell implements Usernamed { var8 = class80.getWidget(var5); if (var8 != null) { - Strings.method4120(var8); + Strings.invalidateWidget(var8); } var8 = class80.getWidget(var16); if (var8 != null) { - Strings.method4120(var8); + Strings.invalidateWidget(var8); WorldMapSprite.revalidateWidgetScroll(Widget.Widget_interfaceComponents[var8.id >>> 16], var8, true); } @@ -4881,7 +4883,7 @@ public final class Client extends GameShell implements Usernamed { if (var6.modelType != 1 || var5 != var6.modelId) { var6.modelType = 1; var6.modelId = var5; - Strings.method4120(var6); + Strings.invalidateWidget(var6); } var1.serverPacket = null; @@ -4919,7 +4921,7 @@ public final class Client extends GameShell implements Usernamed { } if (var6 != null) { - Strings.method4120(var6); + Strings.invalidateWidget(var6); } class65.method1176(); @@ -5102,7 +5104,7 @@ public final class Client extends GameShell implements Usernamed { field874 = false; itemDragDuration = 0; if (WorldMapIcon_0.dragInventoryWidget != null) { - Strings.method4120(WorldMapIcon_0.dragInventoryWidget); + Strings.invalidateWidget(WorldMapIcon_0.dragInventoryWidget); } WorldMapIcon_0.dragInventoryWidget = class80.getWidget(var5); @@ -5113,7 +5115,7 @@ public final class Client extends GameShell implements Usernamed { Decimator.method2510(var2); } - Strings.method4120(WorldMapIcon_0.dragInventoryWidget); + Strings.invalidateWidget(WorldMapIcon_0.dragInventoryWidget); return; } @@ -5151,7 +5153,7 @@ public final class Client extends GameShell implements Usernamed { ) @Export("resizeRoot") final void resizeRoot(boolean var1) { - WorldMapSprite.method416(rootInterface, GrandExchangeEvent.canvasWidth, ParamDefinition.canvasHeight, var1); + WorldMapSprite.resizeComponents(rootInterface, GrandExchangeEvent.canvasWidth, ParamDefinition.canvasHeight, var1); } @ObfuscatedName("iw") @@ -5182,7 +5184,7 @@ public final class Client extends GameShell implements Usernamed { garbageValue = "41" ) final void method1641() { - Strings.method4120(clickedWidget); + Strings.invalidateWidget(clickedWidget); ++class80.widgetDragDuration; if (field745 && field873) { int var1 = MouseHandler.MouseHandler_x; diff --git a/runescape-client/src/main/java/ClientPacket.java b/runescape-client/src/main/java/ClientPacket.java index 2f68b3c9f0..8d8c4e71cf 100644 --- a/runescape-client/src/main/java/ClientPacket.java +++ b/runescape-client/src/main/java/ClientPacket.java @@ -806,7 +806,7 @@ public class ClientPacket implements ClientPacketMarker var29 = 16; var30 = var7.getBoundaryObjectTag(var0, var2, var3); if (var30 != 0L) { - var29 = ViewportMouse.getObjectDefinition(class43.method770(var30)).int2; + var29 = ViewportMouse.getObjectDefinition(class43.getObjectIdFromTag(var30)).int2; } if (var9.animationId == -1 && var9.transforms == null) { @@ -820,7 +820,7 @@ public class ClientPacket implements ClientPacketMarker var29 = 8; var30 = var7.getBoundaryObjectTag(var0, var2, var3); if (var30 != 0L) { - var29 = ViewportMouse.getObjectDefinition(class43.method770(var30)).int2 / 2; + var29 = ViewportMouse.getObjectDefinition(class43.getObjectIdFromTag(var30)).int2 / 2; } if (var9.animationId == -1 && var9.transforms == null) { @@ -843,7 +843,7 @@ public class ClientPacket implements ClientPacketMarker var29 = 8; var30 = var7.getBoundaryObjectTag(var0, var2, var3); if (var30 != 0L) { - var29 = ViewportMouse.getObjectDefinition(class43.method770(var30)).int2 / 2; + var29 = ViewportMouse.getObjectDefinition(class43.getObjectIdFromTag(var30)).int2 / 2; } int var28 = var5 + 2 & 3; diff --git a/runescape-client/src/main/java/Clock.java b/runescape-client/src/main/java/Clock.java index fd5b6ab917..d6b707f2cc 100644 --- a/runescape-client/src/main/java/Clock.java +++ b/runescape-client/src/main/java/Clock.java @@ -30,7 +30,7 @@ public abstract class Clock { garbageValue = "-333181863" ) @Export("wait") - public abstract int wait(int var1, int var2); + public abstract int wait(int tickLength, int fiveOrOne); @ObfuscatedName("fx") @ObfuscatedSignature( diff --git a/runescape-client/src/main/java/CollisionMap.java b/runescape-client/src/main/java/CollisionMap.java index ba7fc666c0..5cc971e2e7 100644 --- a/runescape-client/src/main/java/CollisionMap.java +++ b/runescape-client/src/main/java/CollisionMap.java @@ -62,7 +62,7 @@ public class CollisionMap { if (var1 != 0 && var2 != 0 && var1 < this.xSize - 5 && var2 < this.ySize - 5) { this.flags[var1][var2] = 16777216; } else { - this.flags[var1][var2] = 16777215; + this.flags[var1][var2] = 0xffffff; } } } diff --git a/runescape-client/src/main/java/Decimator.java b/runescape-client/src/main/java/Decimator.java index c8891a477f..1b44fe4649 100644 --- a/runescape-client/src/main/java/Decimator.java +++ b/runescape-client/src/main/java/Decimator.java @@ -30,40 +30,41 @@ public class Decimator { int[][] table; public Decimator(int var1, int var2) { - if (var2 != var1) { - int var3 = FriendSystem.method1819(var1, var2); - var1 /= var3; - var2 /= var3; - this.inputRate = var1; - this.outputRate = var2; - this.table = new int[var1][14]; + if (var2 == var1) { + return; + } + int var3 = FriendSystem.method1819(var1, var2); + var1 /= var3; + var2 /= var3; + this.inputRate = var1; + this.outputRate = var2; + this.table = new int[var1][14]; - for (int var4 = 0; var4 < var1; ++var4) { - int[] var5 = this.table[var4]; - double var6 = (double)var4 / (double)var1 + 6.0D; - int var8 = (int)Math.floor(1.0D + (var6 - 7.0D)); - if (var8 < 0) { - var8 = 0; - } - - int var9 = (int)Math.ceil(7.0D + var6); - if (var9 > 14) { - var9 = 14; - } - - for (double var10 = (double)var2 / (double)var1; var8 < var9; ++var8) { - double var12 = 3.141592653589793D * ((double)var8 - var6); - double var14 = var10; - if (var12 < -1.0E-4D || var12 > 1.0E-4D) { - var14 = var10 * (Math.sin(var12) / var12); - } - - var14 *= 0.54D + 0.46D * Math.cos(((double)var8 - var6) * 0.2243994752564138D); - var5[var8] = (int)Math.floor(0.5D + var14 * 65536.0D); - } + for (int var4 = 0; var4 < var1; ++var4) { + int[] var5 = this.table[var4]; + double var6 = (double)var4 / (double)var1 + 6.0D; + int var8 = (int)Math.floor(1.0D + (var6 - 7.0D)); + if (var8 < 0) { + var8 = 0; } + int var9 = (int)Math.ceil(7.0D + var6); + if (var9 > 14) { + var9 = 14; + } + + for (double var10 = (double)var2 / (double)var1; var8 < var9; ++var8) { + double var12 = 3.141592653589793D * ((double)var8 - var6); + double var14 = var10; + if (var12 < -1.0E-4D || var12 > 1.0E-4D) { + var14 = var10 * (Math.sin(var12) / var12); + } + + var14 *= 0.54D + 0.46D * Math.cos(((double)var8 - var6) * 0.2243994752564138D); + var5[var8] = (int)Math.floor(0.5D + var14 * 65536.0D); + } } + } @ObfuscatedName("q") @@ -73,39 +74,40 @@ public class Decimator { ) @Export("resample") byte[] resample(byte[] var1) { - if (this.table != null) { - int var2 = (int)((long)this.outputRate * (long)var1.length / (long)this.inputRate) + 14; - int[] var3 = new int[var2]; - int var4 = 0; - int var5 = 0; + if (this.table == null) { + return var1; + } + int var2 = (int)((long)this.outputRate * (long)var1.length / (long)this.inputRate) + 14; + int[] var3 = new int[var2]; + int var4 = 0; + int var5 = 0; - int var6; - for (var6 = 0; var6 < var1.length; ++var6) { - byte var7 = var1[var6]; - int[] var8 = this.table[var5]; + int var6; + for (var6 = 0; var6 < var1.length; ++var6) { + byte var7 = var1[var6]; + int[] var8 = this.table[var5]; - int var9; - for (var9 = 0; var9 < 14; ++var9) { - var3[var4 + var9] += var7 * var8[var9]; - } - - var5 += this.outputRate; - var9 = var5 / this.inputRate; - var4 += var9; - var5 -= var9 * this.inputRate; + int var9; + for (var9 = 0; var9 < 14; ++var9) { + var3[var4 + var9] += var7 * var8[var9]; } - var1 = new byte[var2]; + var5 += this.outputRate; + var9 = var5 / this.inputRate; + var4 += var9; + var5 -= var9 * this.inputRate; + } - for (var6 = 0; var6 < var2; ++var6) { - int var10 = var3[var6] + 32768 >> 16; - if (var10 < -128) { - var1[var6] = -128; - } else if (var10 > 127) { - var1[var6] = 127; - } else { - var1[var6] = (byte)var10; - } + var1 = new byte[var2]; + + for (var6 = 0; var6 < var2; ++var6) { + int var10 = var3[var6] + 32768 >> 16; + if (var10 < -128) { + var1[var6] = -128; + } else if (var10 > 127) { + var1[var6] = 127; + } else { + var1[var6] = (byte)var10; } } @@ -175,624 +177,630 @@ public class Decimator { ) @Export("drawActor2d") static final void drawActor2d(Actor var0, int var1, int var2, int var3, int var4, int var5) { - if (var0 != null && var0.isVisible()) { - if (var0 instanceof NPC) { - NPCDefinition var6 = ((NPC)var0).definition; - if (var6.transforms != null) { - var6 = var6.transform(); - } - - if (var6 == null) { - return; - } + if (var0 == null || !var0.isVisible()) { + return; + } + if (var0 instanceof NPC) { + NPCDefinition var6 = ((NPC)var0).definition; + if (var6.transforms != null) { + var6 = var6.transform(); } - int var75 = Players.Players_count; - int[] var7 = Players.Players_indices; - byte var8 = 0; - Player var10; - if (var1 < var75 && var0.playerCycle == Client.cycle) { - var10 = (Player)var0; - boolean var9; - if (Client.field774 == 0) { - var9 = false; - } else { - boolean var78; - if (var10 != Client.localPlayer) { - var78 = (Client.field774 & 4) != 0; - boolean var79 = var78; - boolean var13; - if (!var78) { - var13 = (Client.field774 & 1) != 0; - var79 = var13 && var10.isFriend(); - } - - var13 = var79; - if (!var79) { - boolean var80 = (Client.field774 & 2) != 0; - var13 = var80 && var10.isClanMember(); - } - - var9 = var13; - } else { - var78 = (Client.field774 & 8) != 0; - var9 = var78; - } - } - - if (var9) { - Player var11 = (Player)var0; - if (var1 < var75) { - class219.getActorScreenLocation(var0, var0.defaultHeight + 15); - AbstractFont var12 = (AbstractFont)Client.fontsMap.get(FontName.FontName_plain12); - byte var92 = 9; - var12.drawCentered(var11.username.getName(), var2 + Client.viewportTempX, var3 + Client.viewportTempY - var92, 16777215, 0); - var8 = 18; - } - } + if (var6 == null) { + return; } + } - int var87 = -2; - int var15; - int var22; - int var23; - if (!var0.healthBars.isEmpty()) { - class219.getActorScreenLocation(var0, var0.defaultHeight + 15); - - for (HealthBar var88 = (HealthBar)var0.healthBars.last(); var88 != null; var88 = (HealthBar)var0.healthBars.previous()) { - HealthBarUpdate var89 = var88.get(Client.cycle); - if (var89 == null) { - if (var88.isEmpty()) { - var88.remove(); - } - } else { - HealthBarDefinition var91 = var88.definition; - Sprite var76 = var91.getBackSprite(); - Sprite var14 = var91.getFrontSprite(); - int var16 = 0; - if (var76 != null && var14 != null) { - if (var91.widthPadding * 2 < var14.subWidth) { - var16 = var91.widthPadding; - } - - var15 = var14.subWidth - var16 * 2; - } else { - var15 = var91.width; - } - - int var17 = 255; - boolean var18 = true; - int var19 = Client.cycle - var89.cycle; - int var20 = var15 * var89.health2 / var91.width; - int var21; - int var93; - if (var89.cycleOffset > var19) { - var21 = var91.int4 == 0 ? 0 : var91.int4 * (var19 / var91.int4); - var22 = var15 * var89.health / var91.width; - var93 = var21 * (var20 - var22) / var89.cycleOffset + var22; - } else { - var93 = var20; - var21 = var89.cycleOffset + var91.int5 - var19; - if (var91.int3 >= 0) { - var17 = (var21 << 8) / (var91.int5 - var91.int3); - } - } - - if (var89.health2 > 0 && var93 < 1) { - var93 = 1; - } - - if (var76 != null && var14 != null) { - if (var93 == var15) { - var93 += var16 * 2; - } else { - var93 += var16; - } - - var21 = var76.subHeight; - var87 += var21; - var22 = var2 + Client.viewportTempX - (var15 >> 1); - var23 = var3 + Client.viewportTempY - var87; - var22 -= var16; - if (var17 >= 0 && var17 < 255) { - var76.method6129(var22, var23, var17); - Rasterizer2D.Rasterizer2D_expandClip(var22, var23, var93 + var22, var21 + var23); - var14.method6129(var22, var23, var17); - } else { - var76.drawAt2(var22, var23); - Rasterizer2D.Rasterizer2D_expandClip(var22, var23, var93 + var22, var21 + var23); - var14.drawAt2(var22, var23); - } - - Rasterizer2D.Rasterizer2D_setClip(var2, var3, var2 + var4, var3 + var5); - var87 += 2; - } else { - var87 += 5; - if (Client.viewportTempX > -1) { - var21 = var2 + Client.viewportTempX - (var15 >> 1); - var22 = var3 + Client.viewportTempY - var87; - Rasterizer2D.Rasterizer2D_fillRectangle(var21, var22, var93, 5, 65280); - Rasterizer2D.Rasterizer2D_fillRectangle(var21 + var93, var22, var15 - var93, 5, 16711680); - } - - var87 += 2; - } - } - } - } - - if (var87 == -2) { - var87 += 7; - } - - var87 += var8; - if (var1 < var75) { - var10 = (Player)var0; - if (var10.isHidden) { - return; - } - - if (var10.headIconPk != -1 || var10.headIconPrayer != -1) { - class219.getActorScreenLocation(var0, var0.defaultHeight + 15); - if (Client.viewportTempX > -1) { - if (var10.headIconPk != -1) { - var87 += 25; - UserComparator3.headIconPkSprites[var10.headIconPk].drawAt2(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87); - } - - if (var10.headIconPrayer != -1) { - var87 += 25; - SoundCache.headIconPrayerSprites[var10.headIconPrayer].drawAt2(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87); - } - } - } - - if (var1 >= 0 && Client.hintArrowType == 10 && var7[var1] == Client.hintArrowPlayerIndex) { - class219.getActorScreenLocation(var0, var0.defaultHeight + 15); - if (Client.viewportTempX > -1) { - var87 += class173.headIconHintSprites[1].subHeight; - class173.headIconHintSprites[1].drawAt2(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87); - } - } + int var75 = Players.Players_count; + int[] var7 = Players.Players_indices; + byte var8 = 0; + Player var10; + if (var1 < var75 && var0.playerCycle == Client.cycle) { + var10 = (Player)var0; + boolean var9; + if (Client.drawPlayerNames == 0) { + var9 = false; } else { - NPCDefinition var90 = ((NPC)var0).definition; - if (var90.transforms != null) { - var90 = var90.transform(); - } - - if (var90.headIconPrayer >= 0 && var90.headIconPrayer < SoundCache.headIconPrayerSprites.length) { - class219.getActorScreenLocation(var0, var0.defaultHeight + 15); - if (Client.viewportTempX > -1) { - SoundCache.headIconPrayerSprites[var90.headIconPrayer].drawAt2(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - 30); + boolean var78; + if (var10 != Client.localPlayer) { + var78 = (Client.drawPlayerNames & 4) != 0; + boolean var79 = var78; + boolean var13; + if (!var78) { + var13 = (Client.drawPlayerNames & 1) != 0; + var79 = var13 && var10.isFriend(); } - } - if (Client.hintArrowType == 1 && Client.npcIndices[var1 - var75] == Client.hintArrowNpcIndex && Client.cycle % 20 < 10) { - class219.getActorScreenLocation(var0, var0.defaultHeight + 15); - if (Client.viewportTempX > -1) { - class173.headIconHintSprites[0].drawAt2(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - 28); + var13 = var79; + if (!var79) { + boolean var80 = (Client.drawPlayerNames & 2) != 0; + var13 = var80 && var10.isClanMember(); } + + var9 = var13; + } else { + var78 = (Client.drawPlayerNames & 8) != 0; + var9 = var78; } } - if (var0.overheadText != null && (var1 >= var75 || !var0.field998 && (Client.publicChatMode == 4 || !var0.isAutoChatting && (Client.publicChatMode == 0 || Client.publicChatMode == 3 || Client.publicChatMode == 1 && ((Player)var0).isFriend())))) { - class219.getActorScreenLocation(var0, var0.defaultHeight); - if (Client.viewportTempX > -1 && Client.overheadTextCount < Client.overheadTextLimit) { - Client.overheadTextXOffsets[Client.overheadTextCount] = WorldMapIcon_1.fontBold12.stringWidth(var0.overheadText) / 2; - Client.overheadTextAscents[Client.overheadTextCount] = WorldMapIcon_1.fontBold12.ascent; - Client.overheadTextXs[Client.overheadTextCount] = Client.viewportTempX; - Client.overheadTextYs[Client.overheadTextCount] = Client.viewportTempY; - Client.overheadTextColors[Client.overheadTextCount] = var0.overheadTextColor; - Client.overheadTextEffects[Client.overheadTextCount] = var0.overheadTextEffect; - Client.overheadTextCyclesRemaining[Client.overheadTextCount] = var0.overheadTextCyclesRemaining; - Client.overheadText[Client.overheadTextCount] = var0.overheadText; - ++Client.overheadTextCount; + if (var9) { + Player var11 = (Player)var0; + if (var1 < var75) { + class219.getActorScreenLocation(var0, var0.defaultHeight + 15); + AbstractFont var12 = (AbstractFont)Client.fontsMap.get(FontName.FontName_plain12); + byte var92 = 9; + var12.drawCentered(var11.username.getName(), var2 + Client.viewportTempX, var3 + Client.viewportTempY - var92, 0xffffff, 0); + var8 = 18; } } + } - for (int var77 = 0; var77 < 4; ++var77) { - int var96 = var0.hitSplatCycles[var77]; - int var97 = var0.hitSplatTypes[var77]; - HitSplatDefinition var95 = null; - int var98 = 0; - if (var97 >= 0) { - if (var96 <= Client.cycle) { - continue; - } + int var87 = -2; + int var15; + int var22; + int var23; + if (!var0.healthBars.isEmpty()) { + class219.getActorScreenLocation(var0, var0.defaultHeight + 15); - var95 = Projectile.getHitSplatDefinition(var0.hitSplatTypes[var77]); - var98 = var95.field3344; - if (var95 != null && var95.transforms != null) { - var95 = var95.transform(); - if (var95 == null) { - var0.hitSplatCycles[var77] = -1; - continue; - } + for (HealthBar var88 = (HealthBar)var0.healthBars.last(); var88 != null; var88 = (HealthBar)var0.healthBars.previous()) { + HealthBarUpdate var89 = var88.get(Client.cycle); + if (var89 == null) { + if (var88.isEmpty()) { + var88.remove(); } - } else if (var96 < 0) { continue; } - var15 = var0.hitSplatTypes2[var77]; - HitSplatDefinition var81 = null; - if (var15 >= 0) { - var81 = Projectile.getHitSplatDefinition(var15); - if (var81 != null && var81.transforms != null) { - var81 = var81.transform(); + HealthBarDefinition var91 = var88.definition; + Sprite var76 = var91.getBackSprite(); + Sprite var14 = var91.getFrontSprite(); + int var16 = 0; + if (var76 != null && var14 != null) { + if (var91.widthPadding * 2 < var14.subWidth) { + var16 = var91.widthPadding; + } + + var15 = var14.subWidth - var16 * 2; + } else { + var15 = var91.width; + } + + int var17 = 255; + boolean var18 = true; + int var19 = Client.cycle - var89.cycle; + int var20 = var15 * var89.health2 / var91.width; + int var21; + int var93; + if (var89.cycleOffset > var19) { + var21 = var91.int4 == 0 ? 0 : var91.int4 * (var19 / var91.int4); + var22 = var15 * var89.health / var91.width; + var93 = var21 * (var20 - var22) / var89.cycleOffset + var22; + } else { + var93 = var20; + var21 = var89.cycleOffset + var91.int5 - var19; + if (var91.int3 >= 0) { + var17 = (var21 << 8) / (var91.int5 - var91.int3); } } - if (var96 - var98 <= Client.cycle) { - if (var95 == null) { - var0.hitSplatCycles[var77] = -1; - } else { - class219.getActorScreenLocation(var0, var0.defaultHeight / 2); - if (Client.viewportTempX > -1) { - if (var77 == 1) { - Client.viewportTempY -= 20; - } + if (var89.health2 > 0 && var93 < 1) { + var93 = 1; + } - if (var77 == 2) { - Client.viewportTempX -= 15; - Client.viewportTempY -= 10; - } + if (var76 == null || var14 == null) { + var87 += 5; + if (Client.viewportTempX > -1) { + var21 = var2 + Client.viewportTempX - (var15 >> 1); + var22 = var3 + Client.viewportTempY - var87; + Rasterizer2D.Rasterizer2D_fillRectangle(var21, var22, var93, 5, 0xff00); + Rasterizer2D.Rasterizer2D_fillRectangle(var21 + var93, var22, var15 - var93, 5, 0xff0000); + } - if (var77 == 3) { - Client.viewportTempX += 15; - Client.viewportTempY -= 10; - } + var87 += 2; + continue; + } - Sprite var82 = null; - Sprite var83 = null; - Sprite var84 = null; - Sprite var85 = null; - var22 = 0; - var23 = 0; - int var24 = 0; - int var25 = 0; - int var26 = 0; - int var27 = 0; - int var28 = 0; - int var29 = 0; - Sprite var30 = null; - Sprite var31 = null; - Sprite var32 = null; - Sprite var33 = null; - int var34 = 0; - int var35 = 0; - int var36 = 0; - int var37 = 0; - int var38 = 0; - int var39 = 0; - int var40 = 0; - int var41 = 0; - int var42 = 0; - var82 = var95.method4551(); - int var43; - if (var82 != null) { - var22 = var82.subWidth; - var43 = var82.subHeight; - if (var43 > var42) { - var42 = var43; - } + if (var93 == var15) { + var93 += var16 * 2; + } else { + var93 += var16; + } - var26 = var82.yOffset; - } + var21 = var76.subHeight; + var87 += var21; + var22 = var2 + Client.viewportTempX - (var15 >> 1); + var23 = var3 + Client.viewportTempY - var87; + var22 -= var16; + if (var17 >= 0 && var17 < 255) { + var76.drawTransAt(var22, var23, var17); + Rasterizer2D.Rasterizer2D_expandClip(var22, var23, var93 + var22, var21 + var23); + var14.drawTransAt(var22, var23, var17); + } else { + var76.drawTransBgAt(var22, var23); + Rasterizer2D.Rasterizer2D_expandClip(var22, var23, var93 + var22, var21 + var23); + var14.drawTransBgAt(var22, var23); + } - var83 = var95.method4557(); - if (var83 != null) { - var23 = var83.subWidth; - var43 = var83.subHeight; - if (var43 > var42) { - var42 = var43; - } + Rasterizer2D.Rasterizer2D_setClip(var2, var3, var2 + var4, var3 + var5); + var87 += 2; + } + } - var27 = var83.yOffset; - } + if (var87 == -2) { + var87 += 7; + } - var84 = var95.method4558(); - if (var84 != null) { - var24 = var84.subWidth; - var43 = var84.subHeight; - if (var43 > var42) { - var42 = var43; - } + var87 += var8; + if (var1 < var75) { + var10 = (Player)var0; + if (var10.isHidden) { + return; + } - var28 = var84.yOffset; - } + if (var10.headIconPk != -1 || var10.headIconPrayer != -1) { + class219.getActorScreenLocation(var0, var0.defaultHeight + 15); + if (Client.viewportTempX > -1) { + if (var10.headIconPk != -1) { + var87 += 25; + UserComparator3.headIconPkSprites[var10.headIconPk].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87); + } - var85 = var95.method4583(); - if (var85 != null) { - var25 = var85.subWidth; - var43 = var85.subHeight; - if (var43 > var42) { - var42 = var43; - } - - var29 = var85.yOffset; - } - - if (var81 != null) { - var30 = var81.method4551(); - if (var30 != null) { - var34 = var30.subWidth; - var43 = var30.subHeight; - if (var43 > var42) { - var42 = var43; - } - - var38 = var30.yOffset; - } - - var31 = var81.method4557(); - if (var31 != null) { - var35 = var31.subWidth; - var43 = var31.subHeight; - if (var43 > var42) { - var42 = var43; - } - - var39 = var31.yOffset; - } - - var32 = var81.method4558(); - if (var32 != null) { - var36 = var32.subWidth; - var43 = var32.subHeight; - if (var43 > var42) { - var42 = var43; - } - - var40 = var32.yOffset; - } - - var33 = var81.method4583(); - if (var33 != null) { - var37 = var33.subWidth; - var43 = var33.subHeight; - if (var43 > var42) { - var42 = var43; - } - - var41 = var33.yOffset; - } - } - - Font var86 = var95.getFont(); - if (var86 == null) { - var86 = Coord.fontPlain11; - } - - Font var44; - if (var81 != null) { - var44 = var81.getFont(); - if (var44 == null) { - var44 = Coord.fontPlain11; - } - } else { - var44 = Coord.fontPlain11; - } - - String var45 = null; - String var46 = null; - boolean var47 = false; - int var48 = 0; - var45 = var95.getString(var0.hitSplatValues[var77]); - int var94 = var86.stringWidth(var45); - if (var81 != null) { - var46 = var81.getString(var0.hitSplatValues2[var77]); - var48 = var44.stringWidth(var46); - } - - int var49 = 0; - int var50 = 0; - if (var23 > 0) { - if (var84 == null && var85 == null) { - var49 = 1; - } else { - var49 = var94 / var23 + 1; - } - } - - if (var81 != null && var35 > 0) { - if (var32 == null && var33 == null) { - var50 = 1; - } else { - var50 = var48 / var35 + 1; - } - } - - int var51 = 0; - int var52 = var51; - if (var22 > 0) { - var51 += var22; - } - - var51 += 2; - int var53 = var51; - if (var24 > 0) { - var51 += var24; - } - - int var54 = var51; - int var55 = var51; - int var56; - if (var23 > 0) { - var56 = var23 * var49; - var51 += var56; - var55 += (var56 - var94) / 2; - } else { - var51 += var94; - } - - var56 = var51; - if (var25 > 0) { - var51 += var25; - } - - int var57 = 0; - int var58 = 0; - int var59 = 0; - int var60 = 0; - int var61 = 0; - int var62; - if (var81 != null) { - var51 += 2; - var57 = var51; - if (var34 > 0) { - var51 += var34; - } - - var51 += 2; - var58 = var51; - if (var36 > 0) { - var51 += var36; - } - - var59 = var51; - var61 = var51; - if (var35 > 0) { - var62 = var50 * var35; - var51 += var62; - var61 += (var62 - var48) / 2; - } else { - var51 += var48; - } - - var60 = var51; - if (var37 > 0) { - var51 += var37; - } - } - - var62 = var0.hitSplatCycles[var77] - Client.cycle; - int var63 = var95.field3335 - var62 * var95.field3335 / var95.field3344; - int var64 = var62 * var95.field3340 / var95.field3344 + -var95.field3340; - int var65 = var63 + (var2 + Client.viewportTempX - (var51 >> 1)); - int var66 = var3 + Client.viewportTempY - 12 + var64; - int var67 = var66; - int var68 = var42 + var66; - int var69 = var66 + var95.field3328 + 15; - int var70 = var69 - var86.maxAscent; - int var71 = var69 + var86.maxDescent; - if (var70 < var66) { - var67 = var70; - } - - if (var71 > var68) { - var68 = var71; - } - - int var72 = 0; - int var73; - int var74; - if (var81 != null) { - var72 = var66 + var81.field3328 + 15; - var73 = var72 - var44.maxAscent; - var74 = var72 + var44.maxDescent; - if (var73 < var67) { - ; - } - - if (var74 > var68) { - ; - } - } - - var73 = 255; - if (var95.field3341 >= 0) { - var73 = (var62 << 8) / (var95.field3344 - var95.field3341); - } - - if (var73 >= 0 && var73 < 255) { - if (var82 != null) { - var82.method6129(var65 + var52 - var26, var66, var73); - } - - if (var84 != null) { - var84.method6129(var65 + var53 - var28, var66, var73); - } - - if (var83 != null) { - for (var74 = 0; var74 < var49; ++var74) { - var83.method6129(var23 * var74 + (var54 + var65 - var27), var66, var73); - } - } - - if (var85 != null) { - var85.method6129(var56 + var65 - var29, var66, var73); - } - - var86.drawAlpha(var45, var55 + var65, var69, var95.field3333, 0, var73); - if (var81 != null) { - if (var30 != null) { - var30.method6129(var65 + var57 - var38, var66, var73); - } - - if (var32 != null) { - var32.method6129(var65 + var58 - var40, var66, var73); - } - - if (var31 != null) { - for (var74 = 0; var74 < var50; ++var74) { - var31.method6129(var74 * var35 + (var65 + var59 - var39), var66, var73); - } - } - - if (var33 != null) { - var33.method6129(var60 + var65 - var41, var66, var73); - } - - var44.drawAlpha(var46, var65 + var61, var72, var81.field3333, 0, var73); - } - } else { - if (var82 != null) { - var82.drawAt2(var52 + var65 - var26, var66); - } - - if (var84 != null) { - var84.drawAt2(var53 + var65 - var28, var66); - } - - if (var83 != null) { - for (var74 = 0; var74 < var49; ++var74) { - var83.drawAt2(var74 * var23 + (var65 + var54 - var27), var66); - } - } - - if (var85 != null) { - var85.drawAt2(var65 + var56 - var29, var66); - } - - var86.draw(var45, var65 + var55, var69, var95.field3333 | -16777216, 0); - if (var81 != null) { - if (var30 != null) { - var30.drawAt2(var57 + var65 - var38, var66); - } - - if (var32 != null) { - var32.drawAt2(var58 + var65 - var40, var66); - } - - if (var31 != null) { - for (var74 = 0; var74 < var50; ++var74) { - var31.drawAt2(var74 * var35 + (var65 + var59 - var39), var66); - } - } - - if (var33 != null) { - var33.drawAt2(var60 + var65 - var41, var66); - } - - var44.draw(var46, var61 + var65, var72, var81.field3333 | -16777216, 0); - } - } - } + if (var10.headIconPrayer != -1) { + var87 += 25; + SoundCache.headIconPrayerSprites[var10.headIconPrayer].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87); } } } + if (var1 >= 0 && Client.hintArrowType == 10 && var7[var1] == Client.hintArrowPlayerIndex) { + class219.getActorScreenLocation(var0, var0.defaultHeight + 15); + if (Client.viewportTempX > -1) { + var87 += class173.headIconHintSprites[1].subHeight; + class173.headIconHintSprites[1].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - var87); + } + } + } else { + NPCDefinition var90 = ((NPC)var0).definition; + if (var90.transforms != null) { + var90 = var90.transform(); + } + + if (var90.headIconPrayer >= 0 && var90.headIconPrayer < SoundCache.headIconPrayerSprites.length) { + class219.getActorScreenLocation(var0, var0.defaultHeight + 15); + if (Client.viewportTempX > -1) { + SoundCache.headIconPrayerSprites[var90.headIconPrayer].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - 30); + } + } + + if (Client.hintArrowType == 1 && Client.npcIndices[var1 - var75] == Client.hintArrowNpcIndex && Client.cycle % 20 < 10) { + class219.getActorScreenLocation(var0, var0.defaultHeight + 15); + if (Client.viewportTempX > -1) { + class173.headIconHintSprites[0].drawTransBgAt(var2 + Client.viewportTempX - 12, var3 + Client.viewportTempY - 28); + } + } } + + if (var0.overheadText != null && (var1 >= var75 || !var0.field998 && (Client.publicChatMode == 4 || !var0.isAutoChatting && (Client.publicChatMode == 0 || Client.publicChatMode == 3 || Client.publicChatMode == 1 && ((Player)var0).isFriend())))) { + class219.getActorScreenLocation(var0, var0.defaultHeight); + if (Client.viewportTempX > -1 && Client.overheadTextCount < Client.overheadTextLimit) { + Client.overheadTextXOffsets[Client.overheadTextCount] = WorldMapIcon_1.fontBold12.stringWidth(var0.overheadText) / 2; + Client.overheadTextAscents[Client.overheadTextCount] = WorldMapIcon_1.fontBold12.ascent; + Client.overheadTextXs[Client.overheadTextCount] = Client.viewportTempX; + Client.overheadTextYs[Client.overheadTextCount] = Client.viewportTempY; + Client.overheadTextColors[Client.overheadTextCount] = var0.overheadTextColor; + Client.overheadTextEffects[Client.overheadTextCount] = var0.overheadTextEffect; + Client.overheadTextCyclesRemaining[Client.overheadTextCount] = var0.overheadTextCyclesRemaining; + Client.overheadText[Client.overheadTextCount] = var0.overheadText; + ++Client.overheadTextCount; + } + } + + for (int var77 = 0; var77 < 4; ++var77) { + int var96 = var0.hitSplatCycles[var77]; + int var97 = var0.hitSplatTypes[var77]; + HitSplatDefinition var95 = null; + int var98 = 0; + if (var97 >= 0) { + if (var96 <= Client.cycle) { + continue; + } + + var95 = Projectile.getHitSplatDefinition(var0.hitSplatTypes[var77]); + var98 = var95.field3344; + if (var95 != null && var95.transforms != null) { + var95 = var95.transform(); + if (var95 == null) { + var0.hitSplatCycles[var77] = -1; + continue; + } + } + } else if (var96 < 0) { + continue; + } + + var15 = var0.hitSplatTypes2[var77]; + HitSplatDefinition var81 = null; + if (var15 >= 0) { + var81 = Projectile.getHitSplatDefinition(var15); + if (var81 != null && var81.transforms != null) { + var81 = var81.transform(); + } + } + + if (var96 - var98 > Client.cycle) { + continue; + } + if (var95 == null) { + var0.hitSplatCycles[var77] = -1; + continue; + } + class219.getActorScreenLocation(var0, var0.defaultHeight / 2); + if (Client.viewportTempX <= -1) { + continue; + } + if (var77 == 1) { + Client.viewportTempY -= 20; + } + + if (var77 == 2) { + Client.viewportTempX -= 15; + Client.viewportTempY -= 10; + } + + if (var77 == 3) { + Client.viewportTempX += 15; + Client.viewportTempY -= 10; + } + + Sprite var82 = null; + Sprite var83 = null; + Sprite var84 = null; + Sprite var85 = null; + var22 = 0; + var23 = 0; + int var24 = 0; + int var25 = 0; + int var26 = 0; + int var27 = 0; + int var28 = 0; + int var29 = 0; + Sprite var30 = null; + Sprite var31 = null; + Sprite var32 = null; + Sprite var33 = null; + int var34 = 0; + int var35 = 0; + int var36 = 0; + int var37 = 0; + int var38 = 0; + int var39 = 0; + int var40 = 0; + int var41 = 0; + int var42 = 0; + var82 = var95.method4551(); + int var43; + if (var82 != null) { + var22 = var82.subWidth; + var43 = var82.subHeight; + if (var43 > var42) { + var42 = var43; + } + + var26 = var82.xOffset; + } + + var83 = var95.method4557(); + if (var83 != null) { + var23 = var83.subWidth; + var43 = var83.subHeight; + if (var43 > var42) { + var42 = var43; + } + + var27 = var83.xOffset; + } + + var84 = var95.method4558(); + if (var84 != null) { + var24 = var84.subWidth; + var43 = var84.subHeight; + if (var43 > var42) { + var42 = var43; + } + + var28 = var84.xOffset; + } + + var85 = var95.method4583(); + if (var85 != null) { + var25 = var85.subWidth; + var43 = var85.subHeight; + if (var43 > var42) { + var42 = var43; + } + + var29 = var85.xOffset; + } + + if (var81 != null) { + var30 = var81.method4551(); + if (var30 != null) { + var34 = var30.subWidth; + var43 = var30.subHeight; + if (var43 > var42) { + var42 = var43; + } + + var38 = var30.xOffset; + } + + var31 = var81.method4557(); + if (var31 != null) { + var35 = var31.subWidth; + var43 = var31.subHeight; + if (var43 > var42) { + var42 = var43; + } + + var39 = var31.xOffset; + } + + var32 = var81.method4558(); + if (var32 != null) { + var36 = var32.subWidth; + var43 = var32.subHeight; + if (var43 > var42) { + var42 = var43; + } + + var40 = var32.xOffset; + } + + var33 = var81.method4583(); + if (var33 != null) { + var37 = var33.subWidth; + var43 = var33.subHeight; + if (var43 > var42) { + var42 = var43; + } + + var41 = var33.xOffset; + } + } + + Font var86 = var95.getFont(); + if (var86 == null) { + var86 = Coord.fontPlain11; + } + + Font var44; + if (var81 != null) { + var44 = var81.getFont(); + if (var44 == null) { + var44 = Coord.fontPlain11; + } + } else { + var44 = Coord.fontPlain11; + } + + String var45 = null; + String var46 = null; + boolean var47 = false; + int var48 = 0; + var45 = var95.getString(var0.hitSplatValues[var77]); + int var94 = var86.stringWidth(var45); + if (var81 != null) { + var46 = var81.getString(var0.hitSplatValues2[var77]); + var48 = var44.stringWidth(var46); + } + + int var49 = 0; + int var50 = 0; + if (var23 > 0) { + if (var84 == null && var85 == null) { + var49 = 1; + } else { + var49 = var94 / var23 + 1; + } + } + + if (var81 != null && var35 > 0) { + if (var32 == null && var33 == null) { + var50 = 1; + } else { + var50 = var48 / var35 + 1; + } + } + + int var51 = 0; + int var52 = var51; + if (var22 > 0) { + var51 += var22; + } + + var51 += 2; + int var53 = var51; + if (var24 > 0) { + var51 += var24; + } + + int var54 = var51; + int var55 = var51; + int var56; + if (var23 > 0) { + var56 = var23 * var49; + var51 += var56; + var55 += (var56 - var94) / 2; + } else { + var51 += var94; + } + + var56 = var51; + if (var25 > 0) { + var51 += var25; + } + + int var57 = 0; + int var58 = 0; + int var59 = 0; + int var60 = 0; + int var61 = 0; + int var62; + if (var81 != null) { + var51 += 2; + var57 = var51; + if (var34 > 0) { + var51 += var34; + } + + var51 += 2; + var58 = var51; + if (var36 > 0) { + var51 += var36; + } + + var59 = var51; + var61 = var51; + if (var35 > 0) { + var62 = var50 * var35; + var51 += var62; + var61 += (var62 - var48) / 2; + } else { + var51 += var48; + } + + var60 = var51; + if (var37 > 0) { + var51 += var37; + } + } + + var62 = var0.hitSplatCycles[var77] - Client.cycle; + int var63 = var95.field3335 - var62 * var95.field3335 / var95.field3344; + int var64 = var62 * var95.field3340 / var95.field3344 + -var95.field3340; + int var65 = var63 + (var2 + Client.viewportTempX - (var51 >> 1)); + int var66 = var3 + Client.viewportTempY - 12 + var64; + int var67 = var66; + int var68 = var42 + var66; + int var69 = var66 + var95.field3328 + 15; + int var70 = var69 - var86.maxAscent; + int var71 = var69 + var86.maxDescent; + if (var70 < var66) { + var67 = var70; + } + + if (var71 > var68) { + var68 = var71; + } + + int var72 = 0; + int var73; + int var74; + if (var81 != null) { + var72 = var66 + var81.field3328 + 15; + var73 = var72 - var44.maxAscent; + var74 = var72 + var44.maxDescent; + if (var73 < var67) { + ; + } + + if (var74 > var68) { + ; + } + } + + var73 = 255; + if (var95.field3341 >= 0) { + var73 = (var62 << 8) / (var95.field3344 - var95.field3341); + } + + if (var73 >= 0 && var73 < 255) { + if (var82 != null) { + var82.drawTransAt(var65 + var52 - var26, var66, var73); + } + + if (var84 != null) { + var84.drawTransAt(var65 + var53 - var28, var66, var73); + } + + if (var83 != null) { + for (var74 = 0; var74 < var49; ++var74) { + var83.drawTransAt(var23 * var74 + (var54 + var65 - var27), var66, var73); + } + } + + if (var85 != null) { + var85.drawTransAt(var56 + var65 - var29, var66, var73); + } + + var86.drawAlpha(var45, var55 + var65, var69, var95.field3333, 0, var73); + if (var81 != null) { + if (var30 != null) { + var30.drawTransAt(var65 + var57 - var38, var66, var73); + } + + if (var32 != null) { + var32.drawTransAt(var65 + var58 - var40, var66, var73); + } + + if (var31 != null) { + for (var74 = 0; var74 < var50; ++var74) { + var31.drawTransAt(var74 * var35 + (var65 + var59 - var39), var66, var73); + } + } + + if (var33 != null) { + var33.drawTransAt(var60 + var65 - var41, var66, var73); + } + + var44.drawAlpha(var46, var65 + var61, var72, var81.field3333, 0, var73); + } + } else { + if (var82 != null) { + var82.drawTransBgAt(var52 + var65 - var26, var66); + } + + if (var84 != null) { + var84.drawTransBgAt(var53 + var65 - var28, var66); + } + + if (var83 != null) { + for (var74 = 0; var74 < var49; ++var74) { + var83.drawTransBgAt(var74 * var23 + (var65 + var54 - var27), var66); + } + } + + if (var85 != null) { + var85.drawTransBgAt(var65 + var56 - var29, var66); + } + + var86.draw(var45, var65 + var55, var69, var95.field3333 | 0xff000000, 0); + if (var81 == null) { + continue; + } + if (var30 != null) { + var30.drawTransBgAt(var57 + var65 - var38, var66); + } + + if (var32 != null) { + var32.drawTransBgAt(var58 + var65 - var40, var66); + } + + if (var31 != null) { + for (var74 = 0; var74 < var50; ++var74) { + var31.drawTransBgAt(var74 * var35 + (var65 + var59 - var39), var66); + } + } + + if (var33 != null) { + var33.drawTransBgAt(var60 + var65 - var41, var66); + } + + var44.draw(var46, var61 + var65, var72, var81.field3333 | 0xff000000, 0); + } + } + } @ObfuscatedName("je") diff --git a/runescape-client/src/main/java/DevicePcmPlayer.java b/runescape-client/src/main/java/DevicePcmPlayer.java index b8d9eba5bb..4eea9adf19 100644 --- a/runescape-client/src/main/java/DevicePcmPlayer.java +++ b/runescape-client/src/main/java/DevicePcmPlayer.java @@ -98,7 +98,7 @@ public class DevicePcmPlayer extends PcmPlayer { for (int var2 = 0; var2 < var1; ++var2) { int var3 = super.samples[var2]; - if ((var3 + 8388608 & -16777216) != 0) { + if ((var3 + 8388608 & 0xff000000) != 0) { var3 = 8388607 ^ var3 >> 31; } diff --git a/runescape-client/src/main/java/DirectByteArrayCopier.java b/runescape-client/src/main/java/DirectByteArrayCopier.java index a5e48b5cb1..ed36baa741 100644 --- a/runescape-client/src/main/java/DirectByteArrayCopier.java +++ b/runescape-client/src/main/java/DirectByteArrayCopier.java @@ -96,7 +96,7 @@ public class DirectByteArrayCopier extends AbstractByteArrayCopier { int var12; if (0L != var7) { var12 = GrandExchangeOfferWorldComparator.scene.getObjectFlags(var0, var2, var3, var7); - int var14 = class43.method770(var7); + int var14 = class43.getObjectIdFromTag(var7); int var15 = var12 & 31; int var16 = var12 >> 6 & 3; ObjectDefinition var13; diff --git a/runescape-client/src/main/java/DynamicObject.java b/runescape-client/src/main/java/DynamicObject.java index 5b71f767c1..1d40340919 100644 --- a/runescape-client/src/main/java/DynamicObject.java +++ b/runescape-client/src/main/java/DynamicObject.java @@ -9,7 +9,7 @@ import net.runelite.mapping.ObfuscatedSignature; @Implements("DynamicObject") public class DynamicObject extends Entity { @ObfuscatedName("x") - static int[] field1301; + static int[] Tiles_hueMultiplier; @ObfuscatedName("q") @ObfuscatedGetter( intValue = -982722193 diff --git a/runescape-client/src/main/java/EnumDefinition.java b/runescape-client/src/main/java/EnumDefinition.java index 3ce92fecda..ff21f7a4ea 100644 --- a/runescape-client/src/main/java/EnumDefinition.java +++ b/runescape-client/src/main/java/EnumDefinition.java @@ -133,28 +133,30 @@ public class EnumDefinition extends DualNode { } @ObfuscatedName("q") - public static final void method4550(long var0) { - if (var0 > 0L) { - if (0L == var0 % 10L) { - long var2 = var0 - 1L; - - try { - Thread.sleep(var2); - } catch (InterruptedException var8) { - } - - try { - Thread.sleep(1L); - } catch (InterruptedException var7) { - } - } else { - try { - Thread.sleep(var0); - } catch (InterruptedException var6) { - } - } - + @Export("sleepMillis") + public static final void sleepMillis(long var0) { + if (var0 <= 0L) { + return; } + if (0L != var0 % 10L) { + try { + Thread.sleep(var0); + } catch (InterruptedException var6) { + } + return; + } + long var2 = var0 - 1L; + + try { + Thread.sleep(var2); + } catch (InterruptedException var8) { + } + + try { + Thread.sleep(1L); + } catch (InterruptedException var7) { + } + } @ObfuscatedName("ar") diff --git a/runescape-client/src/main/java/FaceNormal.java b/runescape-client/src/main/java/FaceNormal.java index 8e347efdb4..2ecba3feba 100644 --- a/runescape-client/src/main/java/FaceNormal.java +++ b/runescape-client/src/main/java/FaceNormal.java @@ -43,8 +43,8 @@ public class FaceNormal { signature = "(Lhp;Lhp;B)V", garbageValue = "-92" ) - @Export("setNpcDefinitionArchives") - public static void setNpcDefinitionArchives(AbstractArchive var0, AbstractArchive var1) { + @Export("NpcDefinition_setArchives") + public static void NpcDefinition_setArchives(AbstractArchive var0, AbstractArchive var1) { NPCDefinition.NpcDefinition_archive = var0; NPCDefinition.NpcDefinition_modelArchive = var1; } @@ -80,8 +80,8 @@ public class FaceNormal { static void method3264() { Client.mouseLastLastPressedTimeMillis = 1L; class40.mouseRecorder.index = 0; - class267.field3557 = true; - Client.field667 = true; + class267.hasFocus = true; + Client.hadFocus = true; Client.field879 = -1L; class192.method3678(); Client.packetWriter.method2218(); @@ -158,7 +158,7 @@ public class FaceNormal { Client.followerIndex = -1; if (Client.rootInterface != -1) { var0 = Client.rootInterface; - if (var0 != -1 && ViewportMouse.loadedInterfaces[var0]) { + if (var0 != -1 && ViewportMouse.Widget_loadedInterfaces[var0]) { Widget.Widget_archive.clearFilesGroup(var0); if (Widget.Widget_interfaceComponents[var0] != null) { boolean var5 = true; @@ -177,7 +177,7 @@ public class FaceNormal { Widget.Widget_interfaceComponents[var0] = null; } - ViewportMouse.loadedInterfaces[var0] = false; + ViewportMouse.Widget_loadedInterfaces[var0] = false; } } } @@ -188,7 +188,7 @@ public class FaceNormal { Client.rootInterface = -1; Client.interfaceParents = new NodeHashTable(8); - Client.field850 = null; + Client.meslayerContinueWidget = null; Strings.method4121(); Client.playerAppearance.update((int[])null, new int[]{0, 0, 0, 0, 0}, false, -1); diff --git a/runescape-client/src/main/java/FontName.java b/runescape-client/src/main/java/FontName.java index c537dac56f..faeced04c3 100644 --- a/runescape-client/src/main/java/FontName.java +++ b/runescape-client/src/main/java/FontName.java @@ -204,616 +204,624 @@ public class FontName { for (int var9 = 0; var9 < var0.length; ++var9) { Widget var10 = var0[var9]; - if (var10 != null && (var10.parentId == var1 || var1 == -1412584499 && var10 == Client.clickedWidget)) { - int var11; - if (var8 == -1) { - Client.rootWidgetXs[Client.rootWidgetCount] = var10.x + var6; - Client.rootWidgetYs[Client.rootWidgetCount] = var7 + var10.y; - Client.rootWidgetWidths[Client.rootWidgetCount] = var10.width; - Client.rootWidgetHeights[Client.rootWidgetCount] = var10.height; - var11 = ++Client.rootWidgetCount - 1; - } else { - var11 = var8; + if (var10 == null || (var10.parentId != var1 && (var1 != -1412584499 || var10 != Client.clickedWidget))) { + continue; + } + + int var11; + if (var8 == -1) { + Client.rootWidgetXs[Client.rootWidgetCount] = var10.x + var6; + Client.rootWidgetYs[Client.rootWidgetCount] = var7 + var10.y; + Client.rootWidgetWidths[Client.rootWidgetCount] = var10.width; + Client.rootWidgetHeights[Client.rootWidgetCount] = var10.height; + var11 = ++Client.rootWidgetCount - 1; + } else { + var11 = var8; + } + + var10.rootIndex = var11; + var10.cycle = Client.cycle; + if (var10.isIf3 && ScriptEvent.isComponentHidden(var10)) { + continue; + } + + if (var10.contentType > 0) { + GrandExchangeOfferTotalQuantityComparator.method85(var10); + } + + int var12 = var10.x + var6; + int var13 = var7 + var10.y; + int var14 = var10.transparencyTop; + int var15; + int var16; + if (var10 == Client.clickedWidget) { + if (var1 != 0xabcdabcd && !var10.isScrollBar) { + WorldMapIcon_1.field188 = var0; + WorldMapDecorationType.field2742 = var6; + ClientPacket.field2305 = var7; + continue; } - var10.rootIndex = var11; - var10.cycle = Client.cycle; - if (!var10.isIf3 || !ScriptEvent.isComponentHidden(var10)) { - if (var10.contentType > 0) { - GrandExchangeOfferTotalQuantityComparator.method85(var10); + if (Client.isDraggingWidget && Client.field873) { + var15 = MouseHandler.MouseHandler_x; + var16 = MouseHandler.MouseHandler_y; + var15 -= Client.widgetClickX; + var16 -= Client.widgetClickY; + if (var15 < Client.field834) { + var15 = Client.field834; } - int var12 = var10.x + var6; - int var13 = var7 + var10.y; - int var14 = var10.transparencyTop; - int var15; - int var16; - if (var10 == Client.clickedWidget) { - if (var1 != -1412584499 && !var10.isScrollBar) { - WorldMapIcon_1.field188 = var0; - WorldMapDecorationType.field2742 = var6; - ClientPacket.field2305 = var7; - continue; - } - - if (Client.isDraggingWidget && Client.field873) { - var15 = MouseHandler.MouseHandler_x; - var16 = MouseHandler.MouseHandler_y; - var15 -= Client.widgetClickX; - var16 -= Client.widgetClickY; - if (var15 < Client.field834) { - var15 = Client.field834; - } - - if (var15 + var10.width > Client.field834 + Client.clickedWidgetParent.width) { - var15 = Client.field834 + Client.clickedWidgetParent.width - var10.width; - } - - if (var16 < Client.field835) { - var16 = Client.field835; - } - - if (var16 + var10.height > Client.field835 + Client.clickedWidgetParent.height) { - var16 = Client.field835 + Client.clickedWidgetParent.height - var10.height; - } - - var12 = var15; - var13 = var16; - } - - if (!var10.isScrollBar) { - var14 = 128; - } + if (var15 + var10.width > Client.field834 + Client.clickedWidgetParent.width) { + var15 = Client.field834 + Client.clickedWidgetParent.width - var10.width; } - int var17; - int var18; - int var19; - int var20; - int var21; - int var22; - if (var10.type == 2) { - var15 = var2; - var16 = var3; - var17 = var4; - var18 = var5; - } else if (var10.type == 9) { - var19 = var12; - var20 = var13; - var21 = var12 + var10.width; - var22 = var13 + var10.height; - if (var21 < var12) { - var19 = var21; - var21 = var12; - } - - if (var22 < var13) { - var20 = var22; - var22 = var13; - } - - ++var21; - ++var22; - var15 = var19 > var2 ? var19 : var2; - var16 = var20 > var3 ? var20 : var3; - var17 = var21 < var4 ? var21 : var4; - var18 = var22 < var5 ? var22 : var5; - } else { - var19 = var12 + var10.width; - var20 = var13 + var10.height; - var15 = var12 > var2 ? var12 : var2; - var16 = var13 > var3 ? var13 : var3; - var17 = var19 < var4 ? var19 : var4; - var18 = var20 < var5 ? var20 : var5; + if (var16 < Client.field835) { + var16 = Client.field835; } - if (!var10.isIf3 || var15 < var17 && var16 < var18) { - if (var10.contentType != 0) { - if (var10.contentType == 1336) { - if (Client.displayFps) { - var13 += 15; - class169.fontPlain12.drawRightAligned("Fps:" + GameShell.fps, var12 + var10.width, var13, 16776960, -1); - var13 += 15; - Runtime var42 = Runtime.getRuntime(); - var20 = (int)((var42.totalMemory() - var42.freeMemory()) / 1024L); - var21 = 16776960; - if (var20 > 327680 && !Client.isLowDetail) { - var21 = 16711680; - } + if (var16 + var10.height > Client.field835 + Client.clickedWidgetParent.height) { + var16 = Client.field835 + Client.clickedWidgetParent.height - var10.height; + } - class169.fontPlain12.drawRightAligned("Mem:" + var20 + "k", var12 + var10.width, var13, var21, -1); - var13 += 15; - } - continue; - } + var12 = var15; + var13 = var16; + } - if (var10.contentType == 1337) { - Client.field803 = var12; - Client.field804 = var13; - class4.drawEntities(var12, var13, var10.width, var10.height); - Client.field843[var10.rootIndex] = true; - Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); - continue; - } + if (!var10.isScrollBar) { + var14 = 128; + } + } - if (var10.contentType == 1338) { - ArchiveLoader.drawMinimap(var10, var12, var13, var11); - Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); - continue; - } + int var17; + int var18; + int var19; + int var20; + int var21; + int var22; + if (var10.type == 2) { + var15 = var2; + var16 = var3; + var17 = var4; + var18 = var5; + } else if (var10.type == 9) { + var19 = var12; + var20 = var13; + var21 = var12 + var10.width; + var22 = var13 + var10.height; + if (var21 < var12) { + var19 = var21; + var21 = var12; + } - if (var10.contentType == 1339) { - WorldMapIcon_0.drawCompass(var10, var12, var13, var11); - Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); - continue; - } + if (var22 < var13) { + var20 = var22; + var22 = var13; + } - if (var10.contentType == 1400) { - BoundaryObject.worldMap.draw(var12, var13, var10.width, var10.height, Client.cycle); - } + ++var21; + ++var22; + var15 = var19 > var2 ? var19 : var2; + var16 = var20 > var3 ? var20 : var3; + var17 = var21 < var4 ? var21 : var4; + var18 = var22 < var5 ? var22 : var5; + } else { + var19 = var12 + var10.width; + var20 = var13 + var10.height; + var15 = var12 > var2 ? var12 : var2; + var16 = var13 > var3 ? var13 : var3; + var17 = var19 < var4 ? var19 : var4; + var18 = var20 < var5 ? var20 : var5; + } - if (var10.contentType == 1401) { - BoundaryObject.worldMap.drawOverview(var12, var13, var10.width, var10.height); - } - - if (var10.contentType == 1402) { - Ignored.loginScreenRunesAnimation.draw(var12, Client.cycle); - } + if (var10.isIf3 && (var15 >= var17 || var16 >= var18)) { + continue; + } + if (var10.contentType != 0) { + if (var10.contentType == 1336) { + if (Client.displayFps) { + var13 += 15; + class169.fontPlain12.drawRightAligned("Fps:" + GameShell.fps, var12 + var10.width, var13, 0xffff00, -1); + var13 += 15; + Runtime var42 = Runtime.getRuntime(); + var20 = (int)((var42.totalMemory() - var42.freeMemory()) / 1024L); + var21 = 0xffff00; + if (var20 > 327680 && !Client.isLowDetail) { + var21 = 0xff0000; } - if (var10.type == 0) { - if (!var10.isIf3 && ScriptEvent.isComponentHidden(var10) && var10 != LoginScreenAnimation.mousedOverWidgetIf1) { - continue; - } + class169.fontPlain12.drawRightAligned("Mem:" + var20 + "k", var12 + var10.width, var13, var21, -1); + var13 += 15; + } + continue; + } - if (!var10.isIf3) { - if (var10.scrollY > var10.scrollHeight - var10.height) { - var10.scrollY = var10.scrollHeight - var10.height; - } + if (var10.contentType == 1337) { + Client.viewportX = var12; + Client.viewportY = var13; + class4.drawEntities(var12, var13, var10.width, var10.height); + Client.field843[var10.rootIndex] = true; + Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); + continue; + } - if (var10.scrollY < 0) { - var10.scrollY = 0; - } - } + if (var10.contentType == 1338) { + ArchiveLoader.drawMinimap(var10, var12, var13, var11); + Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); + continue; + } - drawInterface(var0, var10.id, var15, var16, var17, var18, var12 - var10.scrollX, var13 - var10.scrollY, var11); - if (var10.children != null) { - drawInterface(var10.children, var10.id, var15, var16, var17, var18, var12 - var10.scrollX, var13 - var10.scrollY, var11); - } + if (var10.contentType == 1339) { + WorldMapIcon_0.drawCompass(var10, var12, var13, var11); + Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); + continue; + } - InterfaceParent var30 = (InterfaceParent)Client.interfaceParents.get((long)var10.id); - if (var30 != null) { - class191.drawWidgets(var30.group, var15, var16, var17, var18, var12, var13, var11); - } + if (var10.contentType == 1400) { + BoundaryObject.worldMap.draw(var12, var13, var10.width, var10.height, Client.cycle); + } - Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); - Rasterizer3D.Rasterizer3D_setClipFromRasterizer2D(); + if (var10.contentType == 1401) { + BoundaryObject.worldMap.drawOverview(var12, var13, var10.width, var10.height); + } + + if (var10.contentType == 1402) { + Ignored.loginScreenRunesAnimation.draw(var12, Client.cycle); + } + } + + if (var10.type == 0) { + if (!var10.isIf3 && ScriptEvent.isComponentHidden(var10) && var10 != LoginScreenAnimation.mousedOverWidgetIf1) { + continue; + } + + if (!var10.isIf3) { + if (var10.scrollY > var10.scrollHeight - var10.height) { + var10.scrollY = var10.scrollHeight - var10.height; + } + + if (var10.scrollY < 0) { + var10.scrollY = 0; + } + } + + drawInterface(var0, var10.id, var15, var16, var17, var18, var12 - var10.scrollX, var13 - var10.scrollY, var11); + if (var10.children != null) { + drawInterface(var10.children, var10.id, var15, var16, var17, var18, var12 - var10.scrollX, var13 - var10.scrollY, var11); + } + + InterfaceParent var30 = (InterfaceParent)Client.interfaceParents.get((long)var10.id); + if (var30 != null) { + class191.drawWidgets(var30.group, var15, var16, var17, var18, var12, var13, var11); + } + + Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); + Rasterizer3D.Rasterizer3D_setClipFromRasterizer2D(); + } + + if (!Client.isResizable && !Client.field862[var11] && Client.gameDrawingMode <= 1) { + continue; + } + + if (var10.type == 0 && !var10.isIf3 && var10.scrollHeight > var10.height) { + NetFileRequest.method4139(var12 + var10.width, var13, var10.scrollY, var10.height, var10.scrollHeight); + } + + if (var10.type == 1) { + continue; + } + int var23; + int var24; + int var25; + int var26; + if (var10.type == 2) { + var19 = 0; + + for (var20 = 0; var20 < var10.rawHeight; ++var20) { + for (var21 = 0; var21 < var10.rawWidth; ++var21) { + var22 = var12 + var21 * (var10.paddingX + 32); + var23 = var13 + var20 * (var10.paddingY + 32); + if (var19 < 20) { + var22 += var10.inventoryXOffsets[var19]; + var23 += var10.inventoryYOffsets[var19]; } - if (Client.isResizable || Client.field862[var11] || Client.gameDrawingMode > 1) { - if (var10.type == 0 && !var10.isIf3 && var10.scrollHeight > var10.height) { - NetFileRequest.method4139(var12 + var10.width, var13, var10.scrollY, var10.height, var10.scrollHeight); + if (var10.itemIds[var19] <= 0) { + if (var10.inventorySprites != null && var19 < 20) { + Sprite var46 = var10.getInventorySprite(var19); + if (var46 != null) { + var46.drawTransBgAt(var22, var23); + } else if (Widget.field2562) { + Strings.invalidateWidget(var10); + } } + } else { + boolean var37 = false; + boolean var38 = false; + var26 = var10.itemIds[var19] - 1; + if (var22 + 32 > var2 && var22 < var4 && var23 + 32 > var3 && var23 < var5 || var10 == WorldMapIcon_0.dragInventoryWidget && var19 == Client.dragItemSlotSource) { + Sprite var27; + if (Client.isItemSelected == 1 && var19 == WorldMapIcon_1.selectedItemSlot && var10.id == MouseRecorder.selectedItemWidget) { + var27 = WorldMapSection0.getItemSprite(var26, var10.itemQuantities[var19], 2, 0, 2, false); + } else { + var27 = WorldMapSection0.getItemSprite(var26, var10.itemQuantities[var19], 1, 3153952, 2, false); + } - if (var10.type != 1) { - int var23; - int var24; - int var25; - int var26; - if (var10.type == 2) { - var19 = 0; + if (var27 != null) { + if (var10 == WorldMapIcon_0.dragInventoryWidget && var19 == Client.dragItemSlotSource) { + var24 = MouseHandler.MouseHandler_x - Client.field654; + var25 = MouseHandler.MouseHandler_y - Client.field763; + if (var24 < 5 && var24 > -5) { + var24 = 0; + } - for (var20 = 0; var20 < var10.rawHeight; ++var20) { - for (var21 = 0; var21 < var10.rawWidth; ++var21) { - var22 = var12 + var21 * (var10.paddingX + 32); - var23 = var13 + var20 * (var10.paddingY + 32); - if (var19 < 20) { - var22 += var10.inventoryXOffsets[var19]; - var23 += var10.inventoryYOffsets[var19]; - } + if (var25 < 5 && var25 > -5) { + var25 = 0; + } - if (var10.itemIds[var19] <= 0) { - if (var10.inventorySprites != null && var19 < 20) { - Sprite var46 = var10.getInventorySprite(var19); - if (var46 != null) { - var46.drawAt2(var22, var23); - } else if (Widget.field2562) { - Strings.method4120(var10); - } + if (Client.itemDragDuration < 5) { + var24 = 0; + var25 = 0; + } + + var27.drawTransAt(var24 + var22, var25 + var23, 128); + if (var1 != -1) { + Widget var28 = var0[var1 & 65535]; + int var29; + if (var23 + var25 < Rasterizer2D.Rasterizer2D_yClipStart && var28.scrollY > 0) { + var29 = (Rasterizer2D.Rasterizer2D_yClipStart - var23 - var25) * Client.field718 / 3; + if (var29 > Client.field718 * 10) { + var29 = Client.field718 * 10; } - } else { - boolean var37 = false; - boolean var38 = false; - var26 = var10.itemIds[var19] - 1; - if (var22 + 32 > var2 && var22 < var4 && var23 + 32 > var3 && var23 < var5 || var10 == WorldMapIcon_0.dragInventoryWidget && var19 == Client.dragItemSlotSource) { - Sprite var27; - if (Client.isItemSelected == 1 && var19 == WorldMapIcon_1.selectedItemSlot && var10.id == MouseRecorder.selectedItemWidget) { - var27 = WorldMapSection0.getItemSprite(var26, var10.itemQuantities[var19], 2, 0, 2, false); - } else { - var27 = WorldMapSection0.getItemSprite(var26, var10.itemQuantities[var19], 1, 3153952, 2, false); - } - if (var27 != null) { - if (var10 == WorldMapIcon_0.dragInventoryWidget && var19 == Client.dragItemSlotSource) { - var24 = MouseHandler.MouseHandler_x - Client.field654; - var25 = MouseHandler.MouseHandler_y - Client.field763; - if (var24 < 5 && var24 > -5) { - var24 = 0; - } - - if (var25 < 5 && var25 > -5) { - var25 = 0; - } - - if (Client.itemDragDuration < 5) { - var24 = 0; - var25 = 0; - } - - var27.method6129(var24 + var22, var25 + var23, 128); - if (var1 != -1) { - Widget var28 = var0[var1 & 65535]; - int var29; - if (var23 + var25 < Rasterizer2D.Rasterizer2D_yClipStart && var28.scrollY > 0) { - var29 = (Rasterizer2D.Rasterizer2D_yClipStart - var23 - var25) * Client.field718 / 3; - if (var29 > Client.field718 * 10) { - var29 = Client.field718 * 10; - } - - if (var29 > var28.scrollY) { - var29 = var28.scrollY; - } - - var28.scrollY -= var29; - Client.field763 += var29; - Strings.method4120(var28); - } - - if (var25 + var23 + 32 > Rasterizer2D.Rasterizer2D_yClipEnd && var28.scrollY < var28.scrollHeight - var28.height) { - var29 = (var25 + var23 + 32 - Rasterizer2D.Rasterizer2D_yClipEnd) * Client.field718 / 3; - if (var29 > Client.field718 * 10) { - var29 = Client.field718 * 10; - } - - if (var29 > var28.scrollHeight - var28.height - var28.scrollY) { - var29 = var28.scrollHeight - var28.height - var28.scrollY; - } - - var28.scrollY += var29; - Client.field763 -= var29; - Strings.method4120(var28); - } - } - } else if (var10 == ItemContainer.field549 && var19 == Client.field698) { - var27.method6129(var22, var23, 128); - } else { - var27.drawAt2(var22, var23); - } - } else { - Strings.method4120(var10); - } + if (var29 > var28.scrollY) { + var29 = var28.scrollY; } + + var28.scrollY -= var29; + Client.field763 += var29; + Strings.invalidateWidget(var28); } - ++var19; - } - } - } else if (var10.type == 3) { - if (ChatChannel.runCs1(var10)) { - var19 = var10.color2; - if (var10 == LoginScreenAnimation.mousedOverWidgetIf1 && var10.mouseOverColor2 != 0) { - var19 = var10.mouseOverColor2; - } - } else { - var19 = var10.color; - if (var10 == LoginScreenAnimation.mousedOverWidgetIf1 && var10.mouseOverColor != 0) { - var19 = var10.mouseOverColor; - } - } + if (var25 + var23 + 32 > Rasterizer2D.Rasterizer2D_yClipEnd && var28.scrollY < var28.scrollHeight - var28.height) { + var29 = (var25 + var23 + 32 - Rasterizer2D.Rasterizer2D_yClipEnd) * Client.field718 / 3; + if (var29 > Client.field718 * 10) { + var29 = Client.field718 * 10; + } - if (var10.fill) { - switch(var10.fillMode.value) { - case 1: - Rasterizer2D.Rasterizer2D_fillRectangleGradient(var12, var13, var10.width, var10.height, var10.color, var10.color2); - break; - case 2: - Rasterizer2D.Rasterizer2D_fillRectangleGradientAlpha(var12, var13, var10.width, var10.height, var10.color, var10.color2, 255 - (var10.transparencyTop & 255), 255 - (var10.transparencyBot & 255)); - break; - default: - if (var14 == 0) { - Rasterizer2D.Rasterizer2D_fillRectangle(var12, var13, var10.width, var10.height, var19); - } else { - Rasterizer2D.Rasterizer2D_fillRectangleAlpha(var12, var13, var10.width, var10.height, var19, 256 - (var14 & 255)); + if (var29 > var28.scrollHeight - var28.height - var28.scrollY) { + var29 = var28.scrollHeight - var28.height - var28.scrollY; + } + + var28.scrollY += var29; + Client.field763 -= var29; + Strings.invalidateWidget(var28); } } - } else if (var14 == 0) { - Rasterizer2D.Rasterizer2D_drawRectangle(var12, var13, var10.width, var10.height, var19); + } else if (var10 == ItemContainer.field549 && var19 == Client.field698) { + var27.drawTransAt(var22, var23, 128); } else { - Rasterizer2D.Rasterizer2D_drawRectangleAlpha(var12, var13, var10.width, var10.height, var19, 256 - (var14 & 255)); + var27.drawTransBgAt(var22, var23); } } else { - Font var39; - if (var10.type == 4) { - var39 = var10.getFont(); - if (var39 == null) { - if (Widget.field2562) { - Strings.method4120(var10); - } + Strings.invalidateWidget(var10); + } + } + } + + ++var19; + } + } + } else if (var10.type == 3) { + if (ChatChannel.runCs1(var10)) { + var19 = var10.color2; + if (var10 == LoginScreenAnimation.mousedOverWidgetIf1 && var10.mouseOverColor2 != 0) { + var19 = var10.mouseOverColor2; + } + } else { + var19 = var10.color; + if (var10 == LoginScreenAnimation.mousedOverWidgetIf1 && var10.mouseOverColor != 0) { + var19 = var10.mouseOverColor; + } + } + + if (var10.fill) { + switch(var10.fillMode.value) { + case 1: + Rasterizer2D.Rasterizer2D_fillRectangleGradient(var12, var13, var10.width, var10.height, var10.color, var10.color2); + break; + case 2: + Rasterizer2D.Rasterizer2D_fillRectangleGradientAlpha(var12, var13, var10.width, var10.height, var10.color, var10.color2, 255 - (var10.transparencyTop & 255), 255 - (var10.transparencyBot & 255)); + break; + default: + if (var14 == 0) { + Rasterizer2D.Rasterizer2D_fillRectangle(var12, var13, var10.width, var10.height, var19); + } else { + Rasterizer2D.Rasterizer2D_fillRectangleAlpha(var12, var13, var10.width, var10.height, var19, 256 - (var14 & 255)); + } + } + } else if (var14 == 0) { + Rasterizer2D.Rasterizer2D_drawRectangle(var12, var13, var10.width, var10.height, var19); + } else { + Rasterizer2D.Rasterizer2D_drawRectangleAlpha(var12, var13, var10.width, var10.height, var19, 256 - (var14 & 255)); + } + } else { + Font var39; + if (var10.type == 4) { + var39 = var10.getFont(); + if (var39 == null) { + if (Widget.field2562) { + Strings.invalidateWidget(var10); + } + } else { + String var44 = var10.text; + if (ChatChannel.runCs1(var10)) { + var20 = var10.color2; + if (var10 == LoginScreenAnimation.mousedOverWidgetIf1 && var10.mouseOverColor2 != 0) { + var20 = var10.mouseOverColor2; + } + + if (var10.text2.length() > 0) { + var44 = var10.text2; + } + } else { + var20 = var10.color; + if (var10 == LoginScreenAnimation.mousedOverWidgetIf1 && var10.mouseOverColor != 0) { + var20 = var10.mouseOverColor; + } + } + + if (var10.isIf3 && var10.itemId != -1) { + ItemDefinition var45 = WorldMapArea.getItemDefinition(var10.itemId); + var44 = var45.name; + if (var44 == null) { + var44 = "null"; + } + + if ((var45.isStackable == 1 || var10.itemQuantity != 1) && var10.itemQuantity != -1) { + var44 = ClientPreferences.colorStartTag(16748608) + var44 + "" + " " + 'x' + class188.method3631(var10.itemQuantity); + } + } + + if (var10 == Client.meslayerContinueWidget) { + var44 = "Please wait..."; + var20 = var10.color; + } + + if (!var10.isIf3) { + var44 = GrandExchangeOfferTotalQuantityComparator.method92(var44, var10); + } + + var39.drawLines(var44, var12, var13, var10.width, var10.height, var20, var10.textShadowed ? 0 : -1, var10.textXAlignment, var10.textYAlignment, var10.textLineHeight); + } + } else if (var10.type == 5) { + Sprite var40; + if (!var10.isIf3) { + var40 = var10.getSprite(ChatChannel.runCs1(var10)); + if (var40 != null) { + var40.drawTransBgAt(var12, var13); + } else if (Widget.field2562) { + Strings.invalidateWidget(var10); + } + } else { + if (var10.itemId != -1) { + var40 = WorldMapSection0.getItemSprite(var10.itemId, var10.itemQuantity, var10.outline, var10.spriteShadow, var10.itemQuantityMode, false); + } else { + var40 = var10.getSprite(false); + } + + if (var40 == null) { + if (Widget.field2562) { + Strings.invalidateWidget(var10); + } + } else { + var20 = var40.width; + var21 = var40.height; + if (!var10.spriteTiling) { + var22 = var10.width * 4096 / var20; + if (var10.spriteAngle != 0) { + var40.method6186(var10.width / 2 + var12, var10.height / 2 + var13, var10.spriteAngle, var22); + } else if (var14 != 0) { + var40.drawTransScaledAt(var12, var13, var10.width, var10.height, 256 - (var14 & 255)); + } else if (var20 == var10.width && var21 == var10.height) { + var40.drawTransBgAt(var12, var13); + } else { + var40.drawScaledAt(var12, var13, var10.width, var10.height); + } + } else { + Rasterizer2D.Rasterizer2D_expandClip(var12, var13, var12 + var10.width, var13 + var10.height); + var22 = (var20 - 1 + var10.width) / var20; + var23 = (var21 - 1 + var10.height) / var21; + + for (var24 = 0; var24 < var22; ++var24) { + for (var25 = 0; var25 < var23; ++var25) { + if (var10.spriteAngle != 0) { + var40.method6186(var20 / 2 + var12 + var24 * var20, var21 / 2 + var13 + var21 * var25, var10.spriteAngle, 4096); + } else if (var14 != 0) { + var40.drawTransAt(var12 + var24 * var20, var13 + var25 * var21, 256 - (var14 & 255)); } else { - String var44 = var10.text; - if (ChatChannel.runCs1(var10)) { - var20 = var10.color2; - if (var10 == LoginScreenAnimation.mousedOverWidgetIf1 && var10.mouseOverColor2 != 0) { - var20 = var10.mouseOverColor2; - } - - if (var10.text2.length() > 0) { - var44 = var10.text2; - } - } else { - var20 = var10.color; - if (var10 == LoginScreenAnimation.mousedOverWidgetIf1 && var10.mouseOverColor != 0) { - var20 = var10.mouseOverColor; - } - } - - if (var10.isIf3 && var10.itemId != -1) { - ItemDefinition var45 = WorldMapArea.getItemDefinition(var10.itemId); - var44 = var45.name; - if (var44 == null) { - var44 = "null"; - } - - if ((var45.isStackable == 1 || var10.itemQuantity != 1) && var10.itemQuantity != -1) { - var44 = ClientPreferences.colorStartTag(16748608) + var44 + "" + " " + 'x' + class188.method3631(var10.itemQuantity); - } - } - - if (var10 == Client.field850) { - var44 = "Please wait..."; - var20 = var10.color; - } - - if (!var10.isIf3) { - var44 = GrandExchangeOfferTotalQuantityComparator.method92(var44, var10); - } - - var39.drawLines(var44, var12, var13, var10.width, var10.height, var20, var10.textShadowed ? 0 : -1, var10.textXAlignment, var10.textYAlignment, var10.textLineHeight); - } - } else if (var10.type == 5) { - Sprite var40; - if (!var10.isIf3) { - var40 = var10.getSprite(ChatChannel.runCs1(var10)); - if (var40 != null) { - var40.drawAt2(var12, var13); - } else if (Widget.field2562) { - Strings.method4120(var10); - } - } else { - if (var10.itemId != -1) { - var40 = WorldMapSection0.getItemSprite(var10.itemId, var10.itemQuantity, var10.outline, var10.spriteShadow, var10.itemQuantityMode, false); - } else { - var40 = var10.getSprite(false); - } - - if (var40 == null) { - if (Widget.field2562) { - Strings.method4120(var10); - } - } else { - var20 = var40.width; - var21 = var40.height; - if (!var10.spriteTiling) { - var22 = var10.width * 4096 / var20; - if (var10.spriteAngle != 0) { - var40.method6186(var10.width / 2 + var12, var10.height / 2 + var13, var10.spriteAngle, var22); - } else if (var14 != 0) { - var40.method6131(var12, var13, var10.width, var10.height, 256 - (var14 & 255)); - } else if (var20 == var10.width && var21 == var10.height) { - var40.drawAt2(var12, var13); - } else { - var40.method6125(var12, var13, var10.width, var10.height); - } - } else { - Rasterizer2D.Rasterizer2D_expandClip(var12, var13, var12 + var10.width, var13 + var10.height); - var22 = (var20 - 1 + var10.width) / var20; - var23 = (var21 - 1 + var10.height) / var21; - - for (var24 = 0; var24 < var22; ++var24) { - for (var25 = 0; var25 < var23; ++var25) { - if (var10.spriteAngle != 0) { - var40.method6186(var20 / 2 + var12 + var24 * var20, var21 / 2 + var13 + var21 * var25, var10.spriteAngle, 4096); - } else if (var14 != 0) { - var40.method6129(var12 + var24 * var20, var13 + var25 * var21, 256 - (var14 & 255)); - } else { - var40.drawAt2(var12 + var24 * var20, var13 + var21 * var25); - } - } - } - - Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); - } - } - } - } else { - ItemDefinition var33; - if (var10.type == 6) { - boolean var36 = ChatChannel.runCs1(var10); - if (var36) { - var20 = var10.sequenceId2; - } else { - var20 = var10.sequenceId; - } - - Model var41 = null; - var22 = 0; - if (var10.itemId != -1) { - var33 = WorldMapArea.getItemDefinition(var10.itemId); - if (var33 != null) { - var33 = var33.getCountObj(var10.itemQuantity); - var41 = var33.getModel(1); - if (var41 != null) { - var41.calculateBoundsCylinder(); - var22 = var41.height / 2; - } else { - Strings.method4120(var10); - } - } - } else if (var10.modelType == 5) { - if (var10.modelId == 0) { - var41 = Client.playerAppearance.getModel((SequenceDefinition)null, -1, (SequenceDefinition)null, -1); - } else { - var41 = Client.localPlayer.getModel(); - } - } else if (var20 == -1) { - var41 = var10.getModel((SequenceDefinition)null, -1, var36, Client.localPlayer.appearance); - if (var41 == null && Widget.field2562) { - Strings.method4120(var10); - } - } else { - SequenceDefinition var47 = GrandExchangeEvent.getSequenceDefinition(var20); - var41 = var10.getModel(var47, var10.modelFrame, var36, Client.localPlayer.appearance); - if (var41 == null && Widget.field2562) { - Strings.method4120(var10); - } - } - - Rasterizer3D.method2976(var10.width / 2 + var12, var10.height / 2 + var13); - var23 = Rasterizer3D.Rasterizer3D_sine[var10.modelAngleX] * var10.modelZoom >> 16; - var24 = Rasterizer3D.Rasterizer3D_cosine[var10.modelAngleX] * var10.modelZoom >> 16; - if (var41 != null) { - if (!var10.isIf3) { - var41.method2866(0, var10.modelAngleY, 0, var10.modelAngleX, 0, var23, var24); - } else { - var41.calculateBoundsCylinder(); - if (var10.modelOrthog) { - var41.method2876(0, var10.modelAngleY, var10.modelAngleZ, var10.modelAngleX, var10.modelOffsetX, var22 + var23 + var10.modelOffsetY, var24 + var10.modelOffsetY, var10.modelZoom); - } else { - var41.method2866(0, var10.modelAngleY, var10.modelAngleZ, var10.modelAngleX, var10.modelOffsetX, var23 + var22 + var10.modelOffsetY, var24 + var10.modelOffsetY); - } - } - } - - Rasterizer3D.Rasterizer3D_method3(); - } else { - if (var10.type == 7) { - var39 = var10.getFont(); - if (var39 == null) { - if (Widget.field2562) { - Strings.method4120(var10); - } - continue; - } - - var20 = 0; - - for (var21 = 0; var21 < var10.rawHeight; ++var21) { - for (var22 = 0; var22 < var10.rawWidth; ++var22) { - if (var10.itemIds[var20] > 0) { - var33 = WorldMapArea.getItemDefinition(var10.itemIds[var20] - 1); - String var34; - if (var33.isStackable != 1 && var10.itemQuantities[var20] == 1) { - var34 = ClientPreferences.colorStartTag(16748608) + var33.name + ""; - } else { - var34 = ClientPreferences.colorStartTag(16748608) + var33.name + "" + " " + 'x' + class188.method3631(var10.itemQuantities[var20]); - } - - var25 = var22 * (var10.paddingX + 115) + var12; - var26 = var21 * (var10.paddingY + 12) + var13; - if (var10.textXAlignment == 0) { - var39.draw(var34, var25, var26, var10.color, var10.textShadowed ? 0 : -1); - } else if (var10.textXAlignment == 1) { - var39.drawCentered(var34, var10.width / 2 + var25, var26, var10.color, var10.textShadowed ? 0 : -1); - } else { - var39.drawRightAligned(var34, var25 + var10.width - 1, var26, var10.color, var10.textShadowed ? 0 : -1); - } - } - - ++var20; - } - } - } - - if (var10.type == 8 && var10 == class32.field284 && Client.field833 == Client.field840) { - var19 = 0; - var20 = 0; - Font var31 = class169.fontPlain12; - String var32 = var10.text; - - String var43; - for (var32 = GrandExchangeOfferTotalQuantityComparator.method92(var32, var10); var32.length() > 0; var20 = var20 + var31.ascent + 1) { - var24 = var32.indexOf("
"); - if (var24 != -1) { - var43 = var32.substring(0, var24); - var32 = var32.substring(var24 + 4); - } else { - var43 = var32; - var32 = ""; - } - - var25 = var31.stringWidth(var43); - if (var25 > var19) { - var19 = var25; - } - } - - var19 += 6; - var20 += 7; - var24 = var12 + var10.width - 5 - var19; - var25 = var13 + var10.height + 5; - if (var24 < var12 + 5) { - var24 = var12 + 5; - } - - if (var24 + var19 > var4) { - var24 = var4 - var19; - } - - if (var20 + var25 > var5) { - var25 = var5 - var20; - } - - Rasterizer2D.Rasterizer2D_fillRectangle(var24, var25, var19, var20, 16777120); - Rasterizer2D.Rasterizer2D_drawRectangle(var24, var25, var19, var20, 0); - var32 = var10.text; - var26 = var25 + var31.ascent + 2; - - for (var32 = GrandExchangeOfferTotalQuantityComparator.method92(var32, var10); var32.length() > 0; var26 = var26 + var31.ascent + 1) { - int var35 = var32.indexOf("
"); - if (var35 != -1) { - var43 = var32.substring(0, var35); - var32 = var32.substring(var35 + 4); - } else { - var43 = var32; - var32 = ""; - } - - var31.draw(var43, var24 + 3, var26, 0, -1); - } - } - - if (var10.type == 9) { - if (var10.field2598) { - var19 = var12; - var20 = var13 + var10.height; - var21 = var12 + var10.width; - var22 = var13; - } else { - var19 = var12; - var20 = var13; - var21 = var12 + var10.width; - var22 = var13 + var10.height; - } - - if (var10.lineWid == 1) { - Rasterizer2D.Rasterizer2D_drawLine(var19, var20, var21, var22, var10.color); - } else { - MusicPatchPcmStream.method3912(var19, var20, var21, var22, var10.color, var10.lineWid); - } - } + var40.drawTransBgAt(var12 + var24 * var20, var13 + var21 * var25); } } } + + Rasterizer2D.Rasterizer2D_setClip(var2, var3, var4, var5); + } + } + } + } else { + ItemDefinition var33; + if (var10.type == 6) { + boolean var36 = ChatChannel.runCs1(var10); + if (var36) { + var20 = var10.sequenceId2; + } else { + var20 = var10.sequenceId; + } + + Model var41 = null; + var22 = 0; + if (var10.itemId != -1) { + var33 = WorldMapArea.getItemDefinition(var10.itemId); + if (var33 != null) { + var33 = var33.getCountObj(var10.itemQuantity); + var41 = var33.getModel(1); + if (var41 != null) { + var41.calculateBoundsCylinder(); + var22 = var41.height / 2; + } else { + Strings.invalidateWidget(var10); + } + } + } else if (var10.modelType == 5) { + if (var10.modelId == 0) { + var41 = Client.playerAppearance.getModel((SequenceDefinition)null, -1, (SequenceDefinition)null, -1); + } else { + var41 = Client.localPlayer.getModel(); + } + } else if (var20 == -1) { + var41 = var10.getModel((SequenceDefinition)null, -1, var36, Client.localPlayer.appearance); + if (var41 == null && Widget.field2562) { + Strings.invalidateWidget(var10); + } + } else { + SequenceDefinition var47 = GrandExchangeEvent.getSequenceDefinition(var20); + var41 = var10.getModel(var47, var10.modelFrame, var36, Client.localPlayer.appearance); + if (var41 == null && Widget.field2562) { + Strings.invalidateWidget(var10); + } + } + + Rasterizer3D.method2976(var10.width / 2 + var12, var10.height / 2 + var13); + var23 = Rasterizer3D.Rasterizer3D_sine[var10.modelAngleX] * var10.modelZoom >> 16; + var24 = Rasterizer3D.Rasterizer3D_cosine[var10.modelAngleX] * var10.modelZoom >> 16; + if (var41 != null) { + if (!var10.isIf3) { + var41.method2866(0, var10.modelAngleY, 0, var10.modelAngleX, 0, var23, var24); + } else { + var41.calculateBoundsCylinder(); + if (var10.modelOrthog) { + var41.method2876(0, var10.modelAngleY, var10.modelAngleZ, var10.modelAngleX, var10.modelOffsetX, var22 + var23 + var10.modelOffsetY, var24 + var10.modelOffsetY, var10.modelZoom); + } else { + var41.method2866(0, var10.modelAngleY, var10.modelAngleZ, var10.modelAngleX, var10.modelOffsetX, var23 + var22 + var10.modelOffsetY, var24 + var10.modelOffsetY); + } + } + } + + Rasterizer3D.Rasterizer3D_method3(); + } else { + if (var10.type == 7) { + var39 = var10.getFont(); + if (var39 == null) { + if (Widget.field2562) { + Strings.invalidateWidget(var10); + } + continue; + } + + var20 = 0; + + for (var21 = 0; var21 < var10.rawHeight; ++var21) { + for (var22 = 0; var22 < var10.rawWidth; ++var22) { + if (var10.itemIds[var20] > 0) { + var33 = WorldMapArea.getItemDefinition(var10.itemIds[var20] - 1); + String var34; + if (var33.isStackable != 1 && var10.itemQuantities[var20] == 1) { + var34 = ClientPreferences.colorStartTag(16748608) + var33.name + ""; + } else { + var34 = ClientPreferences.colorStartTag(16748608) + var33.name + "" + " " + 'x' + class188.method3631(var10.itemQuantities[var20]); + } + + var25 = var22 * (var10.paddingX + 115) + var12; + var26 = var21 * (var10.paddingY + 12) + var13; + if (var10.textXAlignment == 0) { + var39.draw(var34, var25, var26, var10.color, var10.textShadowed ? 0 : -1); + } else if (var10.textXAlignment == 1) { + var39.drawCentered(var34, var10.width / 2 + var25, var26, var10.color, var10.textShadowed ? 0 : -1); + } else { + var39.drawRightAligned(var34, var25 + var10.width - 1, var26, var10.color, var10.textShadowed ? 0 : -1); + } + } + + ++var20; + } + } + } + + if (var10.type == 8 && var10 == class32.field284 && Client.field833 == Client.field840) { + var19 = 0; + var20 = 0; + Font var31 = class169.fontPlain12; + String var32 = var10.text; + + String var43; + for (var32 = GrandExchangeOfferTotalQuantityComparator.method92(var32, var10); var32.length() > 0; var20 = var20 + var31.ascent + 1) { + var24 = var32.indexOf("
"); + if (var24 != -1) { + var43 = var32.substring(0, var24); + var32 = var32.substring(var24 + 4); + } else { + var43 = var32; + var32 = ""; + } + + var25 = var31.stringWidth(var43); + if (var25 > var19) { + var19 = var25; + } + } + + var19 += 6; + var20 += 7; + var24 = var12 + var10.width - 5 - var19; + var25 = var13 + var10.height + 5; + if (var24 < var12 + 5) { + var24 = var12 + 5; + } + + if (var24 + var19 > var4) { + var24 = var4 - var19; + } + + if (var20 + var25 > var5) { + var25 = var5 - var20; + } + + Rasterizer2D.Rasterizer2D_fillRectangle(var24, var25, var19, var20, 16777120); + Rasterizer2D.Rasterizer2D_drawRectangle(var24, var25, var19, var20, 0); + var32 = var10.text; + var26 = var25 + var31.ascent + 2; + + for (var32 = GrandExchangeOfferTotalQuantityComparator.method92(var32, var10); var32.length() > 0; var26 = var26 + var31.ascent + 1) { + int var35 = var32.indexOf("
"); + if (var35 != -1) { + var43 = var32.substring(0, var35); + var32 = var32.substring(var35 + 4); + } else { + var43 = var32; + var32 = ""; + } + + var31.draw(var43, var24 + 3, var26, 0, -1); + } + } + + if (var10.type == 9) { + if (var10.field2598) { + var19 = var12; + var20 = var13 + var10.height; + var21 = var12 + var10.width; + var22 = var13; + } else { + var19 = var12; + var20 = var13; + var21 = var12 + var10.width; + var22 = var13 + var10.height; + } + + if (var10.lineWid == 1) { + Rasterizer2D.Rasterizer2D_drawLine(var19, var20, var21, var22, var10.color); + } else { + MusicPatchPcmStream.method3912(var19, var20, var21, var22, var10.color, var10.lineWid); } } } diff --git a/runescape-client/src/main/java/FriendSystem.java b/runescape-client/src/main/java/FriendSystem.java index 2f5c526593..fbfb05352e 100644 --- a/runescape-client/src/main/java/FriendSystem.java +++ b/runescape-client/src/main/java/FriendSystem.java @@ -84,7 +84,8 @@ public class FriendSystem { signature = "(B)V", garbageValue = "9" ) - final void method1762() { + @Export("processFriendUpdates") + final void processFriendUpdates() { for (FriendLoginUpdate var1 = (FriendLoginUpdate)this.friendsList.friendLoginUpdates.last(); var1 != null; var1 = (FriendLoginUpdate)this.friendsList.friendLoginUpdates.previous()) { if ((long)var1.field3661 < DirectByteArrayCopier.currentTimeMs() / 1000L - 5L) { if (var1.world > 0) { @@ -342,7 +343,7 @@ public class FriendSystem { garbageValue = "-77884497" ) public static int method1784(int var0) { - return class43.method770(ViewportMouse.ViewportMouse_entityTags[var0]); + return class43.getObjectIdFromTag(ViewportMouse.ViewportMouse_entityTags[var0]); } @ObfuscatedName("ag") diff --git a/runescape-client/src/main/java/GameShell.java b/runescape-client/src/main/java/GameShell.java index e8339586fa..d629ec590a 100644 --- a/runescape-client/src/main/java/GameShell.java +++ b/runescape-client/src/main/java/GameShell.java @@ -62,12 +62,13 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene @ObfuscatedGetter( intValue = 798302801 ) - static int field448; + @Export("cycleDurationMillis") + static int cycleDurationMillis; @ObfuscatedName("f") @ObfuscatedGetter( intValue = 369880599 ) - static int field443; + static int fiveOrOne; @ObfuscatedName("m") @ObfuscatedGetter( intValue = 1519220993 @@ -90,8 +91,8 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene ) static int field465; @ObfuscatedName("au") - @Export("hasFocus") - static volatile boolean hasFocus; + @Export("volatileFocus") + static volatile boolean volatileFocus; @ObfuscatedName("ah") @ObfuscatedGetter( longValue = -5454616642198733289L @@ -190,13 +191,13 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene field466 = 0; stopTimeMs = 0L; isKilled = false; - field448 = 20; - field443 = 1; + cycleDurationMillis = 20; + fiveOrOne = 1; fps = 0; field452 = new long[32]; field453 = new long[32]; field465 = 500; - hasFocus = true; + volatileFocus = true; garbageCollectorLastCollectionTime = -1L; garbageCollectorLastCheckTimeMs = -1L; } @@ -243,16 +244,17 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene ) @Export("post") final void post(Object var1) { - if (this.eventQueue != null) { - for (int var2 = 0; var2 < 50 && this.eventQueue.peekEvent() != null; ++var2) { - EnumDefinition.method4550(1L); - } - - if (var1 != null) { - this.eventQueue.postEvent(new ActionEvent(var1, 1001, "dummy")); - } - + if (this.eventQueue == null) { + return; } + for (int var2 = 0; var2 < 50 && this.eventQueue.peekEvent() != null; ++var2) { + EnumDefinition.sleepMillis(1L); + } + + if (var1 != null) { + this.eventQueue.postEvent(new ActionEvent(var1, 1001, "dummy")); + } + } @ObfuscatedName("k") @@ -444,7 +446,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene var2.removeMouseListener(MouseHandler.MouseHandler_instance); var2.removeMouseMotionListener(MouseHandler.MouseHandler_instance); var2.removeFocusListener(MouseHandler.MouseHandler_instance); - MouseHandler.MouseHandler_currentButton0 = 0; + MouseHandler.MouseHandler_currentButtonVolatile = 0; if (this.mouseWheelHandler != null) { this.mouseWheelHandler.removeFrom(this.canvas); } @@ -587,7 +589,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene } synchronized(this) { - class267.field3557 = hasFocus; + class267.hasFocus = volatileFocus; } this.doCycle(); @@ -876,7 +878,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene public final void destroy() { if (this == gameShell && !isKilled) { stopTimeMs = DirectByteArrayCopier.currentTimeMs(); - EnumDefinition.method4550(5000L); + EnumDefinition.sleepMillis(5000L); this.kill(); } } @@ -894,7 +896,7 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene if (var2.startsWith("1.6.0_")) { int var3; - for (var3 = 6; var3 < var2.length() && class49.isCharDigit(var2.charAt(var3)); ++var3) { + for (var3 = 6; var3 < var2.length() && class49.isDigit(var2.charAt(var3)); ++var3) { } String var4 = var2.substring(6, var3); @@ -904,17 +906,17 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene } } - field443 = 5; + fiveOrOne = 5; } } this.setFocusCycleRoot(true); this.addCanvas(); this.setUp(); - clock = class173.method3589(); + clock = class173.newClock(); while (0L == stopTimeMs || DirectByteArrayCopier.currentTimeMs() < stopTimeMs) { - field449 = clock.wait(field448, field443); + field449 = clock.wait(cycleDurationMillis, fiveOrOne); for (int var5 = 0; var5 < field449; ++var5) { this.method953(); @@ -951,12 +953,12 @@ public abstract class GameShell extends Applet implements Runnable, FocusListene } public final void focusGained(FocusEvent var1) { - hasFocus = true; + volatileFocus = true; this.field464 = true; } public final void focusLost(FocusEvent var1) { - hasFocus = false; + volatileFocus = false; } public final void windowActivated(WindowEvent var1) { diff --git a/runescape-client/src/main/java/GrandExchangeEvent.java b/runescape-client/src/main/java/GrandExchangeEvent.java index 5b279ec280..24cf74f075 100644 --- a/runescape-client/src/main/java/GrandExchangeEvent.java +++ b/runescape-client/src/main/java/GrandExchangeEvent.java @@ -122,9 +122,9 @@ public class GrandExchangeEvent { } } - if (Client.field850 != null) { - Strings.method4120(Client.field850); - Client.field850 = null; + if (Client.meslayerContinueWidget != null) { + Strings.invalidateWidget(Client.meslayerContinueWidget); + Client.meslayerContinueWidget = null; } } diff --git a/runescape-client/src/main/java/GrandExchangeEvents.java b/runescape-client/src/main/java/GrandExchangeEvents.java index a0773e8d7c..9e1482bd50 100644 --- a/runescape-client/src/main/java/GrandExchangeEvents.java +++ b/runescape-client/src/main/java/GrandExchangeEvents.java @@ -92,7 +92,8 @@ public class GrandExchangeEvents { signature = "(Lhp;Lhp;B)V", garbageValue = "-127" ) - public static void method66(AbstractArchive var0, AbstractArchive var1) { + @Export("KitDefinition_setArchives") + public static void KitDefinition_setArchives(AbstractArchive var0, AbstractArchive var1) { KitDefinition.KitDefinition_archive = var0; class288.KitDefinition_modelsArchive = var1; KitDefinition.KitDefinition_fileCount = KitDefinition.KitDefinition_archive.getGroupFileCount(3); @@ -103,7 +104,8 @@ public class GrandExchangeEvents { signature = "(Lhp;B)V", garbageValue = "1" ) - public static void method68(AbstractArchive var0) { + @Export("VarpDefinition_setArchives") + public static void VarpDefinition_setArchives(AbstractArchive var0) { VarpDefinition.VarpDefinition_archive = var0; VarpDefinition.VarpDefinition_fileCount = VarpDefinition.VarpDefinition_archive.getGroupFileCount(16); } @@ -186,10 +188,10 @@ public class GrandExchangeEvents { } for (var11 = 0; var11 < 104; ++var11) { - ServerBuild.field3103[var11] = 0; - Tiles.field508[var11] = 0; - Tiles.field507[var11] = 0; - DynamicObject.field1301[var11] = 0; + ServerBuild.Tiles_hue[var11] = 0; + Tiles.Tiles_saturation[var11] = 0; + Tiles.Tiles_lightness[var11] = 0; + DynamicObject.Tiles_hueMultiplier[var11] = 0; Fonts.field3689[var11] = 0; } @@ -200,14 +202,14 @@ public class GrandExchangeEvents { if (var13 >= 0 && var13 < 104) { var14 = Tiles.field504[var2][var13][var12] & 255; if (var14 > 0) { - FloorUnderlayDefinition var45 = ItemContainer.method1117(var14 - 1); - var10000 = ServerBuild.field3103; + FloorUnderlayDefinition var45 = ItemContainer.FloorUnderlayDefinition_get(var14 - 1); + var10000 = ServerBuild.Tiles_hue; var10000[var12] += var45.hue; - var10000 = Tiles.field508; + var10000 = Tiles.Tiles_saturation; var10000[var12] += var45.saturation; - var10000 = Tiles.field507; + var10000 = Tiles.Tiles_lightness; var10000[var12] += var45.lightness; - var10000 = DynamicObject.field1301; + var10000 = DynamicObject.Tiles_hueMultiplier; var10000[var12] += var45.hueMultiplier; var10002 = Fonts.field3689[var12]++; } @@ -234,13 +236,13 @@ public class GrandExchangeEvents { var47 = var46; } - var10000 = ServerBuild.field3103; + var10000 = ServerBuild.Tiles_hue; var10000[var12] -= var47.hue; - var10000 = Tiles.field508; + var10000 = Tiles.Tiles_saturation; var10000[var12] -= var47.saturation; - var10000 = Tiles.field507; + var10000 = Tiles.Tiles_lightness; var10000[var12] -= var47.lightness; - var10000 = DynamicObject.field1301; + var10000 = DynamicObject.Tiles_hueMultiplier; var10000[var12] -= var47.hueMultiplier; var10002 = Fonts.field3689[var12]--; } @@ -257,19 +259,19 @@ public class GrandExchangeEvents { for (var17 = -5; var17 < 109; ++var17) { var18 = var17 + 5; if (var18 >= 0 && var18 < 104) { - var12 += ServerBuild.field3103[var18]; - var13 += Tiles.field508[var18]; - var14 += Tiles.field507[var18]; - var15 += DynamicObject.field1301[var18]; + var12 += ServerBuild.Tiles_hue[var18]; + var13 += Tiles.Tiles_saturation[var18]; + var14 += Tiles.Tiles_lightness[var18]; + var15 += DynamicObject.Tiles_hueMultiplier[var18]; var16 += Fonts.field3689[var18]; } var19 = var17 - 5; if (var19 >= 0 && var19 < 104) { - var12 -= ServerBuild.field3103[var19]; - var13 -= Tiles.field508[var19]; - var14 -= Tiles.field507[var19]; - var15 -= DynamicObject.field1301[var19]; + var12 -= ServerBuild.Tiles_hue[var19]; + var13 -= Tiles.Tiles_saturation[var19]; + var14 -= Tiles.Tiles_lightness[var19]; + var15 -= DynamicObject.Tiles_hueMultiplier[var19]; var16 -= Fonts.field3689[var19]; } @@ -380,7 +382,7 @@ public class GrandExchangeEvents { if (var51 >= 0) { var40 = Rasterizer3D.Rasterizer3D_textureLoader.getAverageTextureRGB(var51); var39 = -1; - } else if (var35.primaryRgb == 16711935) { + } else if (var35.primaryRgb == 0xff00ff) { var39 = -2; var51 = -1; var40 = -2; @@ -631,10 +633,10 @@ public class GrandExchangeEvents { if (MouseHandler.MouseHandler_currentButton == 1 || !DevicePcmPlayerProvider.mouseCam && MouseHandler.MouseHandler_currentButton == 4) { if (var5 >= var1 && var5 < var1 + 16 && var6 >= var2 && var6 < var2 + 16) { var0.scrollY -= 4; - Strings.method4120(var0); + Strings.invalidateWidget(var0); } else if (var5 >= var1 && var5 < var1 + 16 && var6 >= var3 + var2 - 16 && var6 < var3 + var2) { var0.scrollY += 4; - Strings.method4120(var0); + Strings.invalidateWidget(var0); } else if (var5 >= var1 - Client.field882 && var5 < Client.field882 + var1 + 16 && var6 >= var2 + 16 && var6 < var3 + var2 - 16) { var7 = var3 * (var3 - 32) / var4; if (var7 < 8) { @@ -644,7 +646,7 @@ public class GrandExchangeEvents { int var8 = var6 - var2 - 16 - var7 / 2; int var9 = var3 - 32 - var7; var0.scrollY = var8 * (var4 - var3) / var9; - Strings.method4120(var0); + Strings.invalidateWidget(var0); Client.field719 = true; } } @@ -653,7 +655,7 @@ public class GrandExchangeEvents { var7 = var0.width; if (var5 >= var1 - var7 && var6 >= var2 && var5 < var1 + 16 && var6 <= var3 + var2) { var0.scrollY += Client.mouseWheelRotation * 45; - Strings.method4120(var0); + Strings.invalidateWidget(var0); } } diff --git a/runescape-client/src/main/java/GrandExchangeOffer.java b/runescape-client/src/main/java/GrandExchangeOffer.java index 2e6a09fd34..4ff2e4d750 100644 --- a/runescape-client/src/main/java/GrandExchangeOffer.java +++ b/runescape-client/src/main/java/GrandExchangeOffer.java @@ -524,7 +524,7 @@ public class GrandExchangeOffer { WorldMapElement var6; if (var0 == ScriptOpcodes.MEC_TEXT) { var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - var6 = class222.getWorldMapElement(var3); + var6 = class222.WorldMapElement_get(var3); if (var6.name == null) { Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = ""; } else { @@ -535,13 +535,13 @@ public class GrandExchangeOffer { } if (var0 == ScriptOpcodes.MEC_TEXTSIZE) { var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - var6 = class222.getWorldMapElement(var3); + var6 = class222.WorldMapElement_get(var3); Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var6.textSize; return 1; } if (var0 == ScriptOpcodes.MEC_CATEGORY) { var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - var6 = class222.getWorldMapElement(var3); + var6 = class222.WorldMapElement_get(var3); if (var6 == null) { Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = -1; } else { @@ -552,7 +552,7 @@ public class GrandExchangeOffer { } if (var0 == ScriptOpcodes.MEC_SPRITE) { var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - var6 = class222.getWorldMapElement(var3); + var6 = class222.WorldMapElement_get(var3); if (var6 == null) { Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = -1; } else { diff --git a/runescape-client/src/main/java/GrandExchangeOfferAgeComparator.java b/runescape-client/src/main/java/GrandExchangeOfferAgeComparator.java index d0ce0c6828..df655ff3cf 100644 --- a/runescape-client/src/main/java/GrandExchangeOfferAgeComparator.java +++ b/runescape-client/src/main/java/GrandExchangeOfferAgeComparator.java @@ -195,16 +195,16 @@ final class GrandExchangeOfferAgeComparator implements Comparator { } if (var1 == 324) { - Client.playerAppearance.method4006(false); + Client.playerAppearance.changeSex(false); } if (var1 == 325) { - Client.playerAppearance.method4006(true); + Client.playerAppearance.changeSex(true); } if (var1 == 326) { PacketBufferNode var4 = Archive.method4265(ClientPacket.field2215, Client.packetWriter.isaacCipher); - Client.playerAppearance.method3995(var4.packetBuffer); + Client.playerAppearance.write(var4.packetBuffer); Client.packetWriter.method2219(var4); return true; } diff --git a/runescape-client/src/main/java/GrandExchangeOfferOwnWorldComparator.java b/runescape-client/src/main/java/GrandExchangeOfferOwnWorldComparator.java index 65097c1db6..c8b4a45cd0 100644 --- a/runescape-client/src/main/java/GrandExchangeOfferOwnWorldComparator.java +++ b/runescape-client/src/main/java/GrandExchangeOfferOwnWorldComparator.java @@ -87,362 +87,353 @@ public class GrandExchangeOfferOwnWorldComparator implements Comparator { signature = "(IIIIIILer;Lfv;S)V", garbageValue = "-19782" ) - static final void method1236(int var0, int var1, int var2, int var3, int var4, int var5, Scene var6, CollisionMap var7) { - if (!Client.isLowDetail || (Tiles.Tiles_renderFlags[0][var1][var2] & 2) != 0 || (Tiles.Tiles_renderFlags[var0][var1][var2] & 16) == 0) { - if (var0 < Tiles.Tiles_minPlane) { - Tiles.Tiles_minPlane = var0; - } + static final void method1236(int plane, int x, int y, int objectID, int rotation, int objectType, Scene var6, CollisionMap var7) { + if (Client.isLowDetail && (Tiles.Tiles_renderFlags[0][x][y] & 2) == 0 && (Tiles.Tiles_renderFlags[plane][x][y] & 16) != 0) { + return; + } + if (plane < Tiles.Tiles_minPlane) { + Tiles.Tiles_minPlane = plane; + } - ObjectDefinition var8 = ViewportMouse.getObjectDefinition(var3); - int var9; - int var10; - if (var4 != 1 && var4 != 3) { - var9 = var8.sizeX; - var10 = var8.sizeY; - } else { - var9 = var8.sizeY; - var10 = var8.sizeX; - } + ObjectDefinition var8 = ViewportMouse.getObjectDefinition(objectID); + int var9; + int var10; + if (rotation != 1 && rotation != 3) { + var9 = var8.sizeX; + var10 = var8.sizeY; + } else { + var9 = var8.sizeY; + var10 = var8.sizeX; + } - int var11; - int var12; - if (var9 + var1 <= 104) { - var11 = (var9 >> 1) + var1; - var12 = (var9 + 1 >> 1) + var1; - } else { - var11 = var1; - var12 = var1 + 1; - } + int var11; + int var12; + if (var9 + x <= 104) { + var11 = (var9 >> 1) + x; + var12 = (var9 + 1 >> 1) + x; + } else { + var11 = x; + var12 = x + 1; + } - int var13; - int var14; - if (var10 + var2 <= 104) { - var13 = (var10 >> 1) + var2; - var14 = var2 + (var10 + 1 >> 1); - } else { - var13 = var2; - var14 = var2 + 1; - } + int var13; + int var14; + if (var10 + y <= 104) { + var13 = (var10 >> 1) + y; + var14 = y + (var10 + 1 >> 1); + } else { + var13 = y; + var14 = y + 1; + } - int[][] var15 = Tiles.Tiles_heights[var0]; - int var16 = var15[var11][var14] + var15[var12][var13] + var15[var11][var13] + var15[var12][var14] >> 2; - int var17 = (var1 << 7) + (var9 << 6); - int var18 = (var2 << 7) + (var10 << 6); - long var19 = Tile.calculateTag(var1, var2, 2, var8.int1 == 0, var3); - int var21 = var5 + (var4 << 6); - if (var8.int3 == 1) { - var21 += 256; - } + int[][] var15 = Tiles.Tiles_heights[plane]; + int var16 = var15[var11][var14] + var15[var12][var13] + var15[var11][var13] + var15[var12][var14] >> 2; + int var17 = (x << 7) + (var9 << 6); + int var18 = (y << 7) + (var10 << 6); + long var19 = Tile.calculateTag(x, y, 2, var8.int1 == 0, objectID); + int var21 = objectType + (rotation << 6); + if (var8.int3 == 1) { + var21 += 256; + } - if (var8.method4598()) { - class83.method1996(var0, var1, var2, var8, var4); - } + if (var8.hasSound()) { + class83.newObjectSound(plane, x, y, var8, rotation); + } - Object var22; - if (var5 == 22) { - if (!Client.isLowDetail || var8.int1 != 0 || var8.interactType == 1 || var8.boolean2) { - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(22, var4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, 22, var4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newFloorDecoration(var0, var1, var2, var16, (Entity)var22, var19, var21); - if (var8.interactType == 1 && var7 != null) { - var7.method3562(var1, var2); - } - - } - } else { - int var23; - if (var5 != 10 && var5 != 11) { - int[] var10000; - if (var5 >= 12) { - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(var5, var4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, var5, var4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.method3076(var0, var1, var2, var16, 1, 1, (Entity)var22, 0, var19, var21); - if (var5 >= 12 && var5 <= 17 && var5 != 13 && var0 > 0) { - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2] |= 2340; - } - - if (var8.interactType != 0 && var7 != null) { - var7.method3560(var1, var2, var9, var10, var8.boolean1); - } - - } else if (var5 == 0) { - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(0, var4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, 0, var4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newBoundaryObject(var0, var1, var2, var16, (Entity)var22, (Entity)null, Tiles.field512[var4], 0, var19, var21); - if (var4 == 0) { - if (var8.clipped) { - class32.field282[var0][var1][var2] = 50; - class32.field282[var0][var1][var2 + 1] = 50; - } - - if (var8.modelClipped) { - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2] |= 585; - } - } else if (var4 == 1) { - if (var8.clipped) { - class32.field282[var0][var1][var2 + 1] = 50; - class32.field282[var0][var1 + 1][var2 + 1] = 50; - } - - if (var8.modelClipped) { - var10000 = FaceNormal.field1887[var0][var1]; - var10000[1 + var2] |= 1170; - } - } else if (var4 == 2) { - if (var8.clipped) { - class32.field282[var0][var1 + 1][var2] = 50; - class32.field282[var0][var1 + 1][var2 + 1] = 50; - } - - if (var8.modelClipped) { - var10000 = FaceNormal.field1887[var0][var1 + 1]; - var10000[var2] |= 585; - } - } else if (var4 == 3) { - if (var8.clipped) { - class32.field282[var0][var1][var2] = 50; - class32.field282[var0][var1 + 1][var2] = 50; - } - - if (var8.modelClipped) { - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2] |= 1170; - } - } - - if (var8.interactType != 0 && var7 != null) { - var7.method3559(var1, var2, var5, var4, var8.boolean1); - } - - if (var8.int2 != 16) { - var6.method3082(var0, var1, var2, var8.int2); - } - - } else if (var5 == 1) { - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(1, var4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, 1, var4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newBoundaryObject(var0, var1, var2, var16, (Entity)var22, (Entity)null, Tiles.field513[var4], 0, var19, var21); - if (var8.clipped) { - if (var4 == 0) { - class32.field282[var0][var1][var2 + 1] = 50; - } else if (var4 == 1) { - class32.field282[var0][var1 + 1][var2 + 1] = 50; - } else if (var4 == 2) { - class32.field282[var0][var1 + 1][var2] = 50; - } else if (var4 == 3) { - class32.field282[var0][var1][var2] = 50; - } - } - - if (var8.interactType != 0 && var7 != null) { - var7.method3559(var1, var2, var5, var4, var8.boolean1); - } - - } else { - int var28; - if (var5 == 2) { - var28 = var4 + 1 & 3; - Object var29; - Object var30; - if (var8.animationId == -1 && var8.transforms == null) { - var29 = var8.method4591(2, var4 + 4, var15, var17, var16, var18); - var30 = var8.method4591(2, var28, var15, var17, var16, var18); - } else { - var29 = new DynamicObject(var3, 2, var4 + 4, var0, var1, var2, var8.animationId, true, (Entity)null); - var30 = new DynamicObject(var3, 2, var28, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newBoundaryObject(var0, var1, var2, var16, (Entity)var29, (Entity)var30, Tiles.field512[var4], Tiles.field512[var28], var19, var21); - if (var8.modelClipped) { - if (var4 == 0) { - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2] |= 585; - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2 + 1] |= 1170; - } else if (var4 == 1) { - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2 + 1] |= 1170; - var10000 = FaceNormal.field1887[var0][var1 + 1]; - var10000[var2] |= 585; - } else if (var4 == 2) { - var10000 = FaceNormal.field1887[var0][var1 + 1]; - var10000[var2] |= 585; - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2] |= 1170; - } else if (var4 == 3) { - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2] |= 1170; - var10000 = FaceNormal.field1887[var0][var1]; - var10000[var2] |= 585; - } - } - - if (var8.interactType != 0 && var7 != null) { - var7.method3559(var1, var2, var5, var4, var8.boolean1); - } - - if (var8.int2 != 16) { - var6.method3082(var0, var1, var2, var8.int2); - } - - } else if (var5 == 3) { - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(3, var4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, 3, var4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newBoundaryObject(var0, var1, var2, var16, (Entity)var22, (Entity)null, Tiles.field513[var4], 0, var19, var21); - if (var8.clipped) { - if (var4 == 0) { - class32.field282[var0][var1][var2 + 1] = 50; - } else if (var4 == 1) { - class32.field282[var0][var1 + 1][var2 + 1] = 50; - } else if (var4 == 2) { - class32.field282[var0][var1 + 1][var2] = 50; - } else if (var4 == 3) { - class32.field282[var0][var1][var2] = 50; - } - } - - if (var8.interactType != 0 && var7 != null) { - var7.method3559(var1, var2, var5, var4, var8.boolean1); - } - - } else if (var5 == 9) { - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(var5, var4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, var5, var4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.method3076(var0, var1, var2, var16, 1, 1, (Entity)var22, 0, var19, var21); - if (var8.interactType != 0 && var7 != null) { - var7.method3560(var1, var2, var9, var10, var8.boolean1); - } - - if (var8.int2 != 16) { - var6.method3082(var0, var1, var2, var8.int2); - } - - } else if (var5 == 4) { - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(4, var4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, 4, var4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newWallDecoration(var0, var1, var2, var16, (Entity)var22, (Entity)null, Tiles.field512[var4], 0, 0, 0, var19, var21); - } else { - long var31; - Object var33; - if (var5 == 5) { - var28 = 16; - var31 = var6.getBoundaryObjectTag(var0, var1, var2); - if (var31 != 0L) { - var28 = ViewportMouse.getObjectDefinition(class43.method770(var31)).int2; - } - - if (var8.animationId == -1 && var8.transforms == null) { - var33 = var8.method4591(4, var4, var15, var17, var16, var18); - } else { - var33 = new DynamicObject(var3, 4, var4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newWallDecoration(var0, var1, var2, var16, (Entity)var33, (Entity)null, Tiles.field512[var4], 0, var28 * Tiles.field514[var4], var28 * Tiles.field520[var4], var19, var21); - } else if (var5 == 6) { - var28 = 8; - var31 = var6.getBoundaryObjectTag(var0, var1, var2); - if (0L != var31) { - var28 = ViewportMouse.getObjectDefinition(class43.method770(var31)).int2 / 2; - } - - if (var8.animationId == -1 && var8.transforms == null) { - var33 = var8.method4591(4, var4 + 4, var15, var17, var16, var18); - } else { - var33 = new DynamicObject(var3, 4, var4 + 4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newWallDecoration(var0, var1, var2, var16, (Entity)var33, (Entity)null, 256, var4, var28 * Tiles.field509[var4], var28 * Tiles.field517[var4], var19, var21); - } else if (var5 == 7) { - var23 = var4 + 2 & 3; - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(4, var23 + 4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, 4, var23 + 4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newWallDecoration(var0, var1, var2, var16, (Entity)var22, (Entity)null, 256, var23, 0, 0, var19, var21); - } else if (var5 == 8) { - var28 = 8; - var31 = var6.getBoundaryObjectTag(var0, var1, var2); - if (var31 != 0L) { - var28 = ViewportMouse.getObjectDefinition(class43.method770(var31)).int2 / 2; - } - - int var27 = var4 + 2 & 3; - Object var26; - if (var8.animationId == -1 && var8.transforms == null) { - var33 = var8.method4591(4, var4 + 4, var15, var17, var16, var18); - var26 = var8.method4591(4, var27 + 4, var15, var17, var16, var18); - } else { - var33 = new DynamicObject(var3, 4, var4 + 4, var0, var1, var2, var8.animationId, true, (Entity)null); - var26 = new DynamicObject(var3, 4, var27 + 4, var0, var1, var2, var8.animationId, true, (Entity)null); - } - - var6.newWallDecoration(var0, var1, var2, var16, (Entity)var33, (Entity)var26, 256, var4, var28 * Tiles.field509[var4], var28 * Tiles.field517[var4], var19, var21); - } - } - } + Object var22; + if (objectType == 22) { + if (!Client.isLowDetail || var8.int1 != 0 || var8.interactType == 1 || var8.boolean2) { + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(22, rotation, var15, var17, var16, var18); } else { - if (var8.animationId == -1 && var8.transforms == null) { - var22 = var8.method4591(10, var4, var15, var17, var16, var18); - } else { - var22 = new DynamicObject(var3, 10, var4, var0, var1, var2, var8.animationId, true, (Entity)null); + var22 = new DynamicObject(objectID, 22, rotation, plane, x, y, var8.animationId, true, (Entity)null); + } + + var6.newFloorDecoration(plane, x, y, var16, (Entity)var22, var19, var21); + if (var8.interactType == 1 && var7 != null) { + var7.method3562(x, y); + } + + } + } else if (objectType == 10 || objectType == 11) { + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(10, rotation, var15, var17, var16, var18); + } else { + var22 = new DynamicObject(objectID, 10, rotation, plane, x, y, var8.animationId, true, (Entity) null); + } + + if (var22 != null && var6.method3076(plane, x, y, var16, var9, var10, (Entity) var22, objectType == 11 ? 256 : 0, var19, var21) && var8.clipped) { + int var23 = 15; + if (var22 instanceof Model) { + var23 = ((Model) var22).method2864() / 4; + if (var23 > 30) { + var23 = 30; } + } - if (var22 != null && var6.method3076(var0, var1, var2, var16, var9, var10, (Entity)var22, var5 == 11 ? 256 : 0, var19, var21) && var8.clipped) { - var23 = 15; - if (var22 instanceof Model) { - var23 = ((Model)var22).method2864() / 4; - if (var23 > 30) { - var23 = 30; - } - } - - for (int var24 = 0; var24 <= var9; ++var24) { - for (int var25 = 0; var25 <= var10; ++var25) { - if (var23 > class32.field282[var0][var24 + var1][var25 + var2]) { - class32.field282[var0][var24 + var1][var25 + var2] = (byte)var23; - } - } + for (int var24 = 0; var24 <= var9; ++var24) { + for (int var25 = 0; var25 <= var10; ++var25) { + if (var23 > class32.field282[plane][var24 + x][var25 + y]) { + class32.field282[plane][var24 + x][var25 + y] = (byte) var23; } } - - if (var8.interactType != 0 && var7 != null) { - var7.method3560(var1, var2, var9, var10, var8.boolean1); - } - } } + + if (var8.interactType != 0 && var7 != null) { + var7.method3560(x, y, var9, var10, var8.boolean1); + } + + } else if (objectType >= 12) { + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(objectType, rotation, var15, var17, var16, var18); + } else { + var22 = new DynamicObject(objectID, objectType, rotation, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.method3076(plane, x, y, var16, 1, 1, (Entity) var22, 0, var19, var21); + if (objectType >= 12 && objectType <= 17 && objectType != 13 && plane > 0) { + int[] var10000 = FaceNormal.field1887[plane][x]; + var10000[y] |= 2340; + } + + if (var8.interactType != 0 && var7 != null) { + var7.method3560(x, y, var9, var10, var8.boolean1); + } + + } else if (objectType == 0) { + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(0, rotation, var15, var17, var16, var18); + } else { + var22 = new DynamicObject(objectID, 0, rotation, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newBoundaryObject(plane, x, y, var16, (Entity) var22, (Entity) null, Tiles.field512[rotation], 0, var19, var21); + if (rotation == 0) { + if (var8.clipped) { + class32.field282[plane][x][y] = 50; + class32.field282[plane][x][y + 1] = 50; + } + + if (var8.modelClipped) { + int[] var10000 = FaceNormal.field1887[plane][x]; + var10000[y] |= 585; + } + } else if (rotation == 1) { + if (var8.clipped) { + class32.field282[plane][x][y + 1] = 50; + class32.field282[plane][x + 1][y + 1] = 50; + } + + if (var8.modelClipped) { + int[] var10000 = FaceNormal.field1887[plane][x]; + var10000[1 + y] |= 1170; + } + } else if (rotation == 2) { + if (var8.clipped) { + class32.field282[plane][x + 1][y] = 50; + class32.field282[plane][x + 1][y + 1] = 50; + } + + if (var8.modelClipped) { + int[] var10000 = FaceNormal.field1887[plane][x + 1]; + var10000[y] |= 585; + } + } else if (rotation == 3) { + if (var8.clipped) { + class32.field282[plane][x][y] = 50; + class32.field282[plane][x + 1][y] = 50; + } + + if (var8.modelClipped) { + int[] var10000 = FaceNormal.field1887[plane][x]; + var10000[y] |= 1170; + } + } + + if (var8.interactType != 0 && var7 != null) { + var7.method3559(x, y, objectType, rotation, var8.boolean1); + } + + if (var8.int2 != 16) { + var6.method3082(plane, x, y, var8.int2); + } + + } else if (objectType == 1) { + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(1, rotation, var15, var17, var16, var18); + } else { + var22 = new DynamicObject(objectID, 1, rotation, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newBoundaryObject(plane, x, y, var16, (Entity) var22, (Entity) null, Tiles.field513[rotation], 0, var19, var21); + if (var8.clipped) { + if (rotation == 0) { + class32.field282[plane][x][y + 1] = 50; + } else if (rotation == 1) { + class32.field282[plane][x + 1][y + 1] = 50; + } else if (rotation == 2) { + class32.field282[plane][x + 1][y] = 50; + } else if (rotation == 3) { + class32.field282[plane][x][y] = 50; + } + } + + if (var8.interactType != 0 && var7 != null) { + var7.method3559(x, y, objectType, rotation, var8.boolean1); + } + + } else if (objectType == 2) { + int var28 = rotation + 1 & 3; + Object var29; + Object var30; + if (var8.animationId == -1 && var8.transforms == null) { + var29 = var8.method4591(2, rotation + 4, var15, var17, var16, var18); + var30 = var8.method4591(2, var28, var15, var17, var16, var18); + } else { + var29 = new DynamicObject(objectID, 2, rotation + 4, plane, x, y, var8.animationId, true, (Entity) null); + var30 = new DynamicObject(objectID, 2, var28, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newBoundaryObject(plane, x, y, var16, (Entity) var29, (Entity) var30, Tiles.field512[rotation], Tiles.field512[var28], var19, var21); + if (var8.modelClipped) { + if (rotation == 0) { + int[] var10000 = FaceNormal.field1887[plane][x]; + var10000[y] |= 585; + var10000 = FaceNormal.field1887[plane][x]; + var10000[y + 1] |= 1170; + } else if (rotation == 1) { + int[] var10000 = FaceNormal.field1887[plane][x]; + var10000[y + 1] |= 1170; + var10000 = FaceNormal.field1887[plane][x + 1]; + var10000[y] |= 585; + } else if (rotation == 2) { + int[] var10000 = FaceNormal.field1887[plane][x + 1]; + var10000[y] |= 585; + var10000 = FaceNormal.field1887[plane][x]; + var10000[y] |= 1170; + } else if (rotation == 3) { + int[] var10000 = FaceNormal.field1887[plane][x]; + var10000[y] |= 1170; + var10000 = FaceNormal.field1887[plane][x]; + var10000[y] |= 585; + } + } + + if (var8.interactType != 0 && var7 != null) { + var7.method3559(x, y, objectType, rotation, var8.boolean1); + } + + if (var8.int2 != 16) { + var6.method3082(plane, x, y, var8.int2); + } + + } else if (objectType == 3) { + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(3, rotation, var15, var17, var16, var18); + } else { + var22 = new DynamicObject(objectID, 3, rotation, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newBoundaryObject(plane, x, y, var16, (Entity) var22, (Entity) null, Tiles.field513[rotation], 0, var19, var21); + if (var8.clipped) { + if (rotation == 0) { + class32.field282[plane][x][y + 1] = 50; + } else if (rotation == 1) { + class32.field282[plane][x + 1][y + 1] = 50; + } else if (rotation == 2) { + class32.field282[plane][x + 1][y] = 50; + } else if (rotation == 3) { + class32.field282[plane][x][y] = 50; + } + } + + if (var8.interactType != 0 && var7 != null) { + var7.method3559(x, y, objectType, rotation, var8.boolean1); + } + + } else if (objectType == 9) { + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(objectType, rotation, var15, var17, var16, var18); + } else { + var22 = new DynamicObject(objectID, objectType, rotation, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.method3076(plane, x, y, var16, 1, 1, (Entity) var22, 0, var19, var21); + if (var8.interactType != 0 && var7 != null) { + var7.method3560(x, y, var9, var10, var8.boolean1); + } + + if (var8.int2 != 16) { + var6.method3082(plane, x, y, var8.int2); + } + + } else if (objectType == 4) { + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(4, rotation, var15, var17, var16, var18); + } else { + var22 = new DynamicObject(objectID, 4, rotation, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newWallDecoration(plane, x, y, var16, (Entity) var22, (Entity) null, Tiles.field512[rotation], 0, 0, 0, var19, var21); + } else if (objectType == 5) { + int var28 = 16; + long var31 = var6.getBoundaryObjectTag(plane, x, y); + Object var33; + if (var31 != 0L) { + var28 = ViewportMouse.getObjectDefinition(class43.getObjectIdFromTag(var31)).int2; + } + + if (var8.animationId == -1 && var8.transforms == null) { + var33 = var8.method4591(4, rotation, var15, var17, var16, var18); + } else { + var33 = new DynamicObject(objectID, 4, rotation, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newWallDecoration(plane, x, y, var16, (Entity) var33, (Entity) null, Tiles.field512[rotation], 0, var28 * Tiles.field514[rotation], var28 * Tiles.field520[rotation], var19, var21); + } else if (objectType == 6) { + int var28 = 8; + long var31 = var6.getBoundaryObjectTag(plane, x, y); + Object var33; + if (0L != var31) { + var28 = ViewportMouse.getObjectDefinition(class43.getObjectIdFromTag(var31)).int2 / 2; + } + + if (var8.animationId == -1 && var8.transforms == null) { + var33 = var8.method4591(4, rotation + 4, var15, var17, var16, var18); + } else { + var33 = new DynamicObject(objectID, 4, rotation + 4, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newWallDecoration(plane, x, y, var16, (Entity) var33, (Entity) null, 256, rotation, var28 * Tiles.field509[rotation], var28 * Tiles.field517[rotation], var19, var21); + } else if (objectType == 7) { + int var23 = rotation + 2 & 3; + if (var8.animationId == -1 && var8.transforms == null) { + var22 = var8.method4591(4, var23 + 4, var15, var17, var16, var18); + } else { + var22 = new DynamicObject(objectID, 4, var23 + 4, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newWallDecoration(plane, x, y, var16, (Entity) var22, (Entity) null, 256, var23, 0, 0, var19, var21); + } else if (objectType == 8) { + int var28 = 8; + long var31 = var6.getBoundaryObjectTag(plane, x, y); + if (var31 != 0L) { + var28 = ViewportMouse.getObjectDefinition(class43.getObjectIdFromTag(var31)).int2 / 2; + } + + int var27 = rotation + 2 & 3; + Object var26; + Object var33; + if (var8.animationId == -1 && var8.transforms == null) { + var33 = var8.method4591(4, rotation + 4, var15, var17, var16, var18); + var26 = var8.method4591(4, var27 + 4, var15, var17, var16, var18); + } else { + var33 = new DynamicObject(objectID, 4, rotation + 4, plane, x, y, var8.animationId, true, (Entity) null); + var26 = new DynamicObject(objectID, 4, var27 + 4, plane, x, y, var8.animationId, true, (Entity) null); + } + + var6.newWallDecoration(plane, x, y, var16, (Entity) var33, (Entity) var26, 256, rotation, var28 * Tiles.field509[rotation], var28 * Tiles.field517[rotation], var19, var21); } } diff --git a/runescape-client/src/main/java/GrandExchangeOfferUnitPriceComparator.java b/runescape-client/src/main/java/GrandExchangeOfferUnitPriceComparator.java index f9a17693ca..b5b1c8ed42 100644 --- a/runescape-client/src/main/java/GrandExchangeOfferUnitPriceComparator.java +++ b/runescape-client/src/main/java/GrandExchangeOfferUnitPriceComparator.java @@ -44,153 +44,154 @@ final class GrandExchangeOfferUnitPriceComparator implements Comparator { } int var4 = GrandExchangeOfferWorldComparator.method61(var0).type; - if (var4 != 0) { - int var2 = Varps.Varps_main[var0]; - if (var4 == 1) { - if (var2 == 1) { - Rasterizer3D.Rasterizer3D_setBrightness(0.9D); - ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.9D); - } - - if (var2 == 2) { - Rasterizer3D.Rasterizer3D_setBrightness(0.8D); - ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.8D); - } - - if (var2 == 3) { - Rasterizer3D.Rasterizer3D_setBrightness(0.7D); - ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.7D); - } - - if (var2 == 4) { - Rasterizer3D.Rasterizer3D_setBrightness(0.6D); - ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.6D); - } - - FontName.method5317(); - } - - if (var4 == 3) { - short var3 = 0; - if (var2 == 0) { - var3 = 255; - } - - if (var2 == 1) { - var3 = 192; - } - - if (var2 == 2) { - var3 = 128; - } - - if (var2 == 3) { - var3 = 64; - } - - if (var2 == 4) { - var3 = 0; - } - - if (var3 != Client.field911) { - if (Client.field911 == 0 && Client.field889 != -1) { - class169.method3503(WorldMapRegion.archive6, Client.field889, 0, var3, false); - Client.field699 = false; - } else if (var3 == 0) { - NetSocket.method3553(); - Client.field699 = false; - } else if (class197.field2402 != 0) { - ScriptFrame.field529 = var3; - } else { - Interpreter.midiPcmStream.method3706(var3); - } - - Client.field911 = var3; - } - } - - if (var4 == 4) { - if (var2 == 0) { - Client.soundEffectVolume = 127; - } - - if (var2 == 1) { - Client.soundEffectVolume = 96; - } - - if (var2 == 2) { - Client.soundEffectVolume = 64; - } - - if (var2 == 3) { - Client.soundEffectVolume = 32; - } - - if (var2 == 4) { - Client.soundEffectVolume = 0; - } - } - - if (var4 == 5) { - Client.field789 = var2; - } - - if (var4 == 6) { - Client.chatEffects = var2; - } - - if (var4 == 9) { - Client.field809 = var2; - } - - if (var4 == 10) { - if (var2 == 0) { - Client.field892 = 127; - } - - if (var2 == 1) { - Client.field892 = 96; - } - - if (var2 == 2) { - Client.field892 = 64; - } - - if (var2 == 3) { - Client.field892 = 32; - } - - if (var2 == 4) { - Client.field892 = 0; - } - } - - if (var4 == 17) { - Client.followerIndex = var2 & 65535; - } - - if (var4 == 18) { - Client.playerAttackOption = (AttackOption)SoundSystem.findEnumerated(AbstractArchive.method4141(), var2); - if (Client.playerAttackOption == null) { - Client.playerAttackOption = AttackOption.AttackOption_dependsOnCombatLevels; - } - } - - if (var4 == 19) { - if (var2 == -1) { - Client.combatTargetPlayerIndex = -1; - } else { - Client.combatTargetPlayerIndex = var2 & 2047; - } - } - - if (var4 == 22) { - Client.npcAttackOption = (AttackOption)SoundSystem.findEnumerated(AbstractArchive.method4141(), var2); - if (Client.npcAttackOption == null) { - Client.npcAttackOption = AttackOption.AttackOption_dependsOnCombatLevels; - } - } - + if (var4 == 0) { + return; } + int var2 = Varps.Varps_main[var0]; + if (var4 == 1) { + if (var2 == 1) { + Rasterizer3D.Rasterizer3D_setBrightness(0.9D); + ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.9D); + } + + if (var2 == 2) { + Rasterizer3D.Rasterizer3D_setBrightness(0.8D); + ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.8D); + } + + if (var2 == 3) { + Rasterizer3D.Rasterizer3D_setBrightness(0.7D); + ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.7D); + } + + if (var2 == 4) { + Rasterizer3D.Rasterizer3D_setBrightness(0.6D); + ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.6D); + } + + FontName.method5317(); + } + + if (var4 == 3) { + short var3 = 0; + if (var2 == 0) { + var3 = 255; + } + + if (var2 == 1) { + var3 = 192; + } + + if (var2 == 2) { + var3 = 128; + } + + if (var2 == 3) { + var3 = 64; + } + + if (var2 == 4) { + var3 = 0; + } + + if (var3 != Client.field911) { + if (Client.field911 == 0 && Client.field889 != -1) { + class169.method3503(WorldMapRegion.archive6, Client.field889, 0, var3, false); + Client.field699 = false; + } else if (var3 == 0) { + NetSocket.method3553(); + Client.field699 = false; + } else if (class197.field2402 != 0) { + ScriptFrame.field529 = var3; + } else { + Interpreter.midiPcmStream.method3706(var3); + } + + Client.field911 = var3; + } + } + + if (var4 == 4) { + if (var2 == 0) { + Client.soundEffectVolume = 127; + } + + if (var2 == 1) { + Client.soundEffectVolume = 96; + } + + if (var2 == 2) { + Client.soundEffectVolume = 64; + } + + if (var2 == 3) { + Client.soundEffectVolume = 32; + } + + if (var2 == 4) { + Client.soundEffectVolume = 0; + } + } + + if (var4 == 5) { + Client.field789 = var2; + } + + if (var4 == 6) { + Client.chatEffects = var2; + } + + if (var4 == 9) { + Client.field809 = var2; + } + + if (var4 == 10) { + if (var2 == 0) { + Client.field892 = 127; + } + + if (var2 == 1) { + Client.field892 = 96; + } + + if (var2 == 2) { + Client.field892 = 64; + } + + if (var2 == 3) { + Client.field892 = 32; + } + + if (var2 == 4) { + Client.field892 = 0; + } + } + + if (var4 == 17) { + Client.followerIndex = var2 & 65535; + } + + if (var4 == 18) { + Client.playerAttackOption = (AttackOption)SoundSystem.findEnumerated(AbstractArchive.method4141(), var2); + if (Client.playerAttackOption == null) { + Client.playerAttackOption = AttackOption.AttackOption_dependsOnCombatLevels; + } + } + + if (var4 == 19) { + if (var2 == -1) { + Client.combatTargetPlayerIndex = -1; + } else { + Client.combatTargetPlayerIndex = var2 & 2047; + } + } + + if (var4 == 22) { + Client.npcAttackOption = (AttackOption)SoundSystem.findEnumerated(AbstractArchive.method4141(), var2); + if (Client.npcAttackOption == null) { + Client.npcAttackOption = AttackOption.AttackOption_dependsOnCombatLevels; + } + } + } } diff --git a/runescape-client/src/main/java/GrandExchangeOfferWorldComparator.java b/runescape-client/src/main/java/GrandExchangeOfferWorldComparator.java index 4104e01882..1f32111eef 100644 --- a/runescape-client/src/main/java/GrandExchangeOfferWorldComparator.java +++ b/runescape-client/src/main/java/GrandExchangeOfferWorldComparator.java @@ -43,8 +43,8 @@ final class GrandExchangeOfferWorldComparator implements Comparator { signature = "(Lhp;B)V", garbageValue = "0" ) - @Export("setVarcIntArchive") - public static void setVarcIntArchive(AbstractArchive var0) { + @Export("VarcInt_setArchives") + public static void VarcInt_setArchives(AbstractArchive var0) { VarcInt.VarcInt_archive = var0; } diff --git a/runescape-client/src/main/java/HealthBar.java b/runescape-client/src/main/java/HealthBar.java index a57a51fa41..9b576a03ce 100644 --- a/runescape-client/src/main/java/HealthBar.java +++ b/runescape-client/src/main/java/HealthBar.java @@ -77,19 +77,19 @@ public class HealthBar extends Node { @Export("get") HealthBarUpdate get(int var1) { HealthBarUpdate var2 = (HealthBarUpdate)this.updates.last(); - if (var2 != null && var2.cycle <= var1) { - for (HealthBarUpdate var3 = (HealthBarUpdate)this.updates.previous(); var3 != null && var3.cycle <= var1; var3 = (HealthBarUpdate)this.updates.previous()) { - var2.remove(); - var2 = var3; - } + if (var2 == null || var2.cycle > var1) { + return null; + } + for (HealthBarUpdate var3 = (HealthBarUpdate)this.updates.previous(); var3 != null && var3.cycle <= var1; var3 = (HealthBarUpdate)this.updates.previous()) { + var2.remove(); + var2 = var3; + } - if (this.definition.int5 + var2.cycle + var2.cycleOffset > var1) { - return var2; - } + if (this.definition.int5 + var2.cycle + var2.cycleOffset <= var1) { var2.remove(); return null; } - return null; + return var2; } @ObfuscatedName("e") diff --git a/runescape-client/src/main/java/HealthBarUpdate.java b/runescape-client/src/main/java/HealthBarUpdate.java index 8e8476d104..538cf8aea8 100644 --- a/runescape-client/src/main/java/HealthBarUpdate.java +++ b/runescape-client/src/main/java/HealthBarUpdate.java @@ -105,96 +105,95 @@ public class HealthBarUpdate extends Node { ) public static void method1671(PacketBuffer var0) { ReflectionCheck var1 = (ReflectionCheck)class96.reflectionChecks.last(); - if (var1 != null) { - int var2 = var0.offset; - var0.writeInt(var1.id); - - for (int var3 = 0; var3 < var1.size; ++var3) { - if (var1.creationErrors[var3] != 0) { - var0.writeByte(var1.creationErrors[var3]); - } else { - try { - int var4 = var1.operations[var3]; - Field var5; - int var6; - if (var4 == 0) { - var5 = var1.fields[var3]; - var6 = Reflection.getInt(var5, (Object)null); - var0.writeByte(0); - var0.writeInt(var6); - } else if (var4 == 1) { - var5 = var1.fields[var3]; - Reflection.setInt(var5, (Object)null, var1.intReplaceValues[var3]); - var0.writeByte(0); - } else if (var4 == 2) { - var5 = var1.fields[var3]; - var6 = var5.getModifiers(); - var0.writeByte(0); - var0.writeInt(var6); - } - - Method var25; - if (var4 != 3) { - if (var4 == 4) { - var25 = var1.methods[var3]; - var6 = var25.getModifiers(); - var0.writeByte(0); - var0.writeInt(var6); - } - } else { - var25 = var1.methods[var3]; - byte[][] var10 = var1.arguments[var3]; - Object[] var7 = new Object[var10.length]; - - for (int var8 = 0; var8 < var10.length; ++var8) { - ObjectInputStream var9 = new ObjectInputStream(new ByteArrayInputStream(var10[var8])); - var7[var8] = var9.readObject(); - } - - Object var11 = Reflection.invoke(var25, (Object)null, var7); - if (var11 == null) { - var0.writeByte(0); - } else if (var11 instanceof Number) { - var0.writeByte(1); - var0.writeLong(((Number)var11).longValue()); - } else if (var11 instanceof String) { - var0.writeByte(2); - var0.writeStringCp1252NullTerminated((String)var11); - } else { - var0.writeByte(4); - } - } - } catch (ClassNotFoundException var13) { - var0.writeByte(-10); - } catch (InvalidClassException var14) { - var0.writeByte(-11); - } catch (StreamCorruptedException var15) { - var0.writeByte(-12); - } catch (OptionalDataException var16) { - var0.writeByte(-13); - } catch (IllegalAccessException var17) { - var0.writeByte(-14); - } catch (IllegalArgumentException var18) { - var0.writeByte(-15); - } catch (InvocationTargetException var19) { - var0.writeByte(-16); - } catch (SecurityException var20) { - var0.writeByte(-17); - } catch (IOException var21) { - var0.writeByte(-18); - } catch (NullPointerException var22) { - var0.writeByte(-19); - } catch (Exception var23) { - var0.writeByte(-20); - } catch (Throwable var24) { - var0.writeByte(-21); - } - } - } - - var0.writeCrc(var2); - var1.remove(); + if (var1 == null) { + return; } + int var2 = var0.offset; + var0.writeInt(var1.id); + + for (int var3 = 0; var3 < var1.size; ++var3) { + if (var1.creationErrors[var3] != 0) { + var0.writeByte(var1.creationErrors[var3]); + continue; + } + try { + int var4 = var1.operations[var3]; + Field var5; + int var6; + if (var4 == 0) { + var5 = var1.fields[var3]; + var6 = Reflection.getInt(var5, (Object)null); + var0.writeByte(0); + var0.writeInt(var6); + } else if (var4 == 1) { + var5 = var1.fields[var3]; + Reflection.setInt(var5, (Object)null, var1.intReplaceValues[var3]); + var0.writeByte(0); + } else if (var4 == 2) { + var5 = var1.fields[var3]; + var6 = var5.getModifiers(); + var0.writeByte(0); + var0.writeInt(var6); + } + + Method var25; + if (var4 == 3) { + var25 = var1.methods[var3]; + byte[][] var10 = var1.arguments[var3]; + Object[] var7 = new Object[var10.length]; + + for (int var8 = 0; var8 < var10.length; ++var8) { + ObjectInputStream var9 = new ObjectInputStream(new ByteArrayInputStream(var10[var8])); + var7[var8] = var9.readObject(); + } + + Object var11 = Reflection.invoke(var25, (Object)null, var7); + if (var11 == null) { + var0.writeByte(0); + } else if (var11 instanceof Number) { + var0.writeByte(1); + var0.writeLong(((Number)var11).longValue()); + } else if (var11 instanceof String) { + var0.writeByte(2); + var0.writeStringCp1252NullTerminated((String)var11); + } else { + var0.writeByte(4); + } + } else if (var4 == 4) { + var25 = var1.methods[var3]; + var6 = var25.getModifiers(); + var0.writeByte(0); + var0.writeInt(var6); + } + } catch (ClassNotFoundException var13) { + var0.writeByte(-10); + } catch (InvalidClassException var14) { + var0.writeByte(-11); + } catch (StreamCorruptedException var15) { + var0.writeByte(-12); + } catch (OptionalDataException var16) { + var0.writeByte(-13); + } catch (IllegalAccessException var17) { + var0.writeByte(-14); + } catch (IllegalArgumentException var18) { + var0.writeByte(-15); + } catch (InvocationTargetException var19) { + var0.writeByte(-16); + } catch (SecurityException var20) { + var0.writeByte(-17); + } catch (IOException var21) { + var0.writeByte(-18); + } catch (NullPointerException var22) { + var0.writeByte(-19); + } catch (Exception var23) { + var0.writeByte(-20); + } catch (Throwable var24) { + var0.writeByte(-21); + } + } + + var0.writeCrc(var2); + var1.remove(); } @ObfuscatedName("ax") diff --git a/runescape-client/src/main/java/HitSplatDefinition.java b/runescape-client/src/main/java/HitSplatDefinition.java index 1121a95e23..7194145dc2 100644 --- a/runescape-client/src/main/java/HitSplatDefinition.java +++ b/runescape-client/src/main/java/HitSplatDefinition.java @@ -132,7 +132,7 @@ public class HitSplatDefinition extends DualNode { HitSplatDefinition() { this.fontId = -1; - this.field3333 = 16777215; + this.field3333 = 0xffffff; this.field3344 = 70; this.field3334 = -1; this.field3336 = -1; diff --git a/runescape-client/src/main/java/Interpreter.java b/runescape-client/src/main/java/Interpreter.java index 6793335efb..bf2bc53958 100644 --- a/runescape-client/src/main/java/Interpreter.java +++ b/runescape-client/src/main/java/Interpreter.java @@ -129,7 +129,7 @@ public class Interpreter { if (var7 > 2500) { var4.method6146(var10 + var5.width / 2 - var4.width / 2, var5.height / 2 - var11 - var4.height / 2, var0, var1, var5.width, var5.height, var5.xStarts, var5.xWidths); } else { - var4.drawAt2(var0 + var10 + var5.width / 2 - var4.width / 2, var5.height / 2 + var1 - var11 - var4.height / 2); + var4.drawTransBgAt(var0 + var10 + var5.width / 2 - var4.width / 2, var5.height / 2 + var1 - var11 - var4.height / 2); } } diff --git a/runescape-client/src/main/java/ItemContainer.java b/runescape-client/src/main/java/ItemContainer.java index c2f9a67ba1..e29719f619 100644 --- a/runescape-client/src/main/java/ItemContainer.java +++ b/runescape-client/src/main/java/ItemContainer.java @@ -38,7 +38,8 @@ public class ItemContainer extends Node { signature = "(IB)Lic;", garbageValue = "-70" ) - public static FloorUnderlayDefinition method1117(int var0) { + @Export("FloorUnderlayDefinition_get") + public static FloorUnderlayDefinition FloorUnderlayDefinition_get(int var0) { FloorUnderlayDefinition var1 = (FloorUnderlayDefinition)FloorUnderlayDefinition.FloorUnderlayDefinition_cached.get((long)var0); if (var1 != null) { return var1; diff --git a/runescape-client/src/main/java/KeyHandler.java b/runescape-client/src/main/java/KeyHandler.java index 8f3055723a..27e9dda651 100644 --- a/runescape-client/src/main/java/KeyHandler.java +++ b/runescape-client/src/main/java/KeyHandler.java @@ -178,7 +178,8 @@ public final class KeyHandler implements KeyListener, FocusListener { signature = "(Lhp;I)V", garbageValue = "-939658474" ) - public static void method794(AbstractArchive var0) { + @Export("ParamDefinition_setArchives") + public static void ParamDefinition_setArchives(AbstractArchive var0) { ParamDefinition.ParamDefinition_archive = var0; } @@ -195,10 +196,10 @@ public final class KeyHandler implements KeyListener, FocusListener { FaceNormal.field1887 = null; class32.field282 = null; Tiles.field515 = null; - ServerBuild.field3103 = null; - Tiles.field508 = null; - Tiles.field507 = null; - DynamicObject.field1301 = null; + ServerBuild.Tiles_hue = null; + Tiles.Tiles_saturation = null; + Tiles.Tiles_lightness = null; + DynamicObject.Tiles_hueMultiplier = null; Fonts.field3689 = null; } diff --git a/runescape-client/src/main/java/KitDefinition.java b/runescape-client/src/main/java/KitDefinition.java index c9b7e9320e..506e333993 100644 --- a/runescape-client/src/main/java/KitDefinition.java +++ b/runescape-client/src/main/java/KitDefinition.java @@ -257,46 +257,47 @@ public class KitDefinition extends DualNode { Client.soundEffects[var0] = var9; } - if (Client.queuedSoundEffectDelays[var0] < 0) { - int var2; - if (Client.soundLocations[var0] != 0) { - int var3 = (Client.soundLocations[var0] & 255) * 128; - int var4 = Client.soundLocations[var0] >> 16 & 255; - int var5 = var4 * 128 + 64 - Client.localPlayer.x; - if (var5 < 0) { - var5 = -var5; - } - - int var6 = Client.soundLocations[var0] >> 8 & 255; - int var7 = var6 * 128 + 64 - Client.localPlayer.y; - if (var7 < 0) { - var7 = -var7; - } - - int var8 = var5 + var7 - 128; - if (var8 > var3) { - Client.queuedSoundEffectDelays[var0] = -100; - continue; - } - - if (var8 < 0) { - var8 = 0; - } - - var2 = (var3 - var8) * Client.field892 / var3; - } else { - var2 = Client.soundEffectVolume; - } - - if (var2 > 0) { - RawSound var10 = var9.toRawSound().resample(AttackOption.decimator); - RawPcmStream var11 = RawPcmStream.createRawPcmStream(var10, 100, var2); - var11.setNumLoops(Client.queuedSoundEffectLoops[var0] - 1); - SecureRandomCallable.pcmStreamMixer.addSubStream(var11); - } - - Client.queuedSoundEffectDelays[var0] = -100; + if (Client.queuedSoundEffectDelays[var0] >= 0) { + continue; } + int var2; + if (Client.soundLocations[var0] != 0) { + int var3 = (Client.soundLocations[var0] & 255) * 128; + int var4 = Client.soundLocations[var0] >> 16 & 255; + int var5 = var4 * 128 + 64 - Client.localPlayer.x; + if (var5 < 0) { + var5 = -var5; + } + + int var6 = Client.soundLocations[var0] >> 8 & 255; + int var7 = var6 * 128 + 64 - Client.localPlayer.y; + if (var7 < 0) { + var7 = -var7; + } + + int var8 = var5 + var7 - 128; + if (var8 > var3) { + Client.queuedSoundEffectDelays[var0] = -100; + continue; + } + + if (var8 < 0) { + var8 = 0; + } + + var2 = (var3 - var8) * Client.field892 / var3; + } else { + var2 = Client.soundEffectVolume; + } + + if (var2 > 0) { + RawSound var10 = var9.toRawSound().resample(AttackOption.decimator); + RawPcmStream var11 = RawPcmStream.createRawPcmStream(var10, 100, var2); + var11.setNumLoops(Client.queuedSoundEffectLoops[var0] - 1); + SecureRandomCallable.pcmStreamMixer.addSubStream(var11); + } + + Client.queuedSoundEffectDelays[var0] = -100; } else { --Client.soundEffectCount; @@ -312,21 +313,22 @@ public class KitDefinition extends DualNode { } } - if (Client.field699) { - boolean var12; - if (class197.field2402 != 0) { - var12 = true; - } else { - var12 = Interpreter.midiPcmStream.isReady(); + if (!Client.field699) { + return; + } + boolean var12; + if (class197.field2402 != 0) { + var12 = true; + } else { + var12 = Interpreter.midiPcmStream.isReady(); + } + + if (!var12) { + if (Client.field911 != 0 && Client.field889 != -1) { + class169.method3503(WorldMapRegion.archive6, Client.field889, 0, Client.field911, false); } - if (!var12) { - if (Client.field911 != 0 && Client.field889 != -1) { - class169.method3503(WorldMapRegion.archive6, Client.field889, 0, Client.field911, false); - } - - Client.field699 = false; - } + Client.field699 = false; } } diff --git a/runescape-client/src/main/java/LoginScreenAnimation.java b/runescape-client/src/main/java/LoginScreenAnimation.java index 07ebc31dd3..f93dadc05a 100644 --- a/runescape-client/src/main/java/LoginScreenAnimation.java +++ b/runescape-client/src/main/java/LoginScreenAnimation.java @@ -80,7 +80,7 @@ public class LoginScreenAnimation { this.field1055 = 0; this.field1056 = 0; this.sprites = var1; - this.method1721(); + this.initColors(); } @ObfuscatedName("q") @@ -88,7 +88,8 @@ public class LoginScreenAnimation { signature = "(I)V", garbageValue = "-1195148401" ) - void method1721() { + @Export("initColors") + void initColors() { this.field1045 = new int[256]; int var1; @@ -97,15 +98,15 @@ public class LoginScreenAnimation { } for (var1 = 0; var1 < 64; ++var1) { - this.field1045[var1 + 64] = var1 * 1024 + 16711680; + this.field1045[var1 + 64] = var1 * 1024 + 0xff0000; } for (var1 = 0; var1 < 64; ++var1) { - this.field1045[var1 + 128] = var1 * 4 + 16776960; + this.field1045[var1 + 128] = var1 * 4 + 0xffff00; } for (var1 = 0; var1 < 64; ++var1) { - this.field1045[var1 + 192] = 16777215; + this.field1045[var1 + 192] = 0xffffff; } this.field1046 = new int[256]; @@ -115,7 +116,7 @@ public class LoginScreenAnimation { } for (var1 = 0; var1 < 64; ++var1) { - this.field1046[var1 + 64] = var1 * 4 + 65280; + this.field1046[var1 + 64] = var1 * 4 + 0xff00; } for (var1 = 0; var1 < 64; ++var1) { @@ -123,7 +124,7 @@ public class LoginScreenAnimation { } for (var1 = 0; var1 < 64; ++var1) { - this.field1046[var1 + 192] = 16777215; + this.field1046[var1 + 192] = 0xffffff; } this.field1047 = new int[256]; @@ -137,11 +138,11 @@ public class LoginScreenAnimation { } for (var1 = 0; var1 < 64; ++var1) { - this.field1047[var1 + 128] = var1 * 1024 + 16711935; + this.field1047[var1 + 128] = var1 * 1024 + 0xff00ff; } for (var1 = 0; var1 < 64; ++var1) { - this.field1047[var1 + 192] = 16777215; + this.field1047[var1 + 192] = 0xffffff; } this.field1044 = new int[256]; @@ -179,7 +180,7 @@ public class LoginScreenAnimation { @Export("draw") void draw(int var1, int var2) { if (this.field1039 == null) { - this.method1721(); + this.initColors(); } if (this.field1056 == 0) { @@ -340,7 +341,7 @@ public class LoginScreenAnimation { ) final int method1725(int var1, int var2, int var3) { int var4 = 256 - var3; - return (var4 * (var1 & 16711935) + var3 * (var2 & 16711935) & -16711936) + (var3 * (var2 & 65280) + var4 * (var1 & 65280) & 16711680) >> 8; + return (var4 * (var1 & 0xff00ff) + var3 * (var2 & 0xff00ff) & 0xff00ff00) + (var3 * (var2 & 0xff00) + var4 * (var1 & 0xff00) & 0xff0000) >> 8; } @ObfuscatedName("l") @@ -416,7 +417,7 @@ public class LoginScreenAnimation { int var13 = 256 - var10; var10 = this.field1044[var10]; int var14 = MusicPatchPcmStream.rasterProvider.pixels[var8]; - MusicPatchPcmStream.rasterProvider.pixels[var8++] = -16777216 | (var13 * (var14 & 65280) + var12 * (var10 & 65280) & 16711680) + ((var14 & 16711935) * var13 + (var10 & 16711935) * var12 & -16711936) >> 8; + MusicPatchPcmStream.rasterProvider.pixels[var8++] = 0xff000000 | (var13 * (var14 & 0xff00) + var12 * (var10 & 0xff00) & 0xff0000) + ((var14 & 0xff00ff) * var13 + (var10 & 0xff00ff) * var12 & 0xff00ff00) >> 8; } else { ++var8; } @@ -534,7 +535,7 @@ public class LoginScreenAnimation { var13 = Client.localPlayer.plane; var14 = MusicPatchNode2.baseX * 64 + (MouseHandler.oculusOrbFocalPointX >> 7); var15 = class1.baseY * 64 + (WorldMapArea.oculusOrbFocalPointY >> 7); - WorldMapLabel.method418(var14, var15, var13, true); + WorldMapLabel.changePlane(var14, var15, var13, true); } } diff --git a/runescape-client/src/main/java/Messages.java b/runescape-client/src/main/java/Messages.java index 73e907cc05..592bdbc38e 100644 --- a/runescape-client/src/main/java/Messages.java +++ b/runescape-client/src/main/java/Messages.java @@ -421,9 +421,9 @@ public class Messages { } if (var16.isIf3) { - Client.selectedSpellName = var16.dataText + ClientPreferences.colorStartTag(16777215); + Client.selectedSpellName = var16.dataText + ClientPreferences.colorStartTag(0xffffff); } else { - Client.selectedSpellName = ClientPreferences.colorStartTag(65280) + var16.spellName + ClientPreferences.colorStartTag(16777215); + Client.selectedSpellName = ClientPreferences.colorStartTag(0xff00) + var16.spellName + ClientPreferences.colorStartTag(0xffffff); } } @@ -458,10 +458,10 @@ public class Messages { } } } else if (var2 == 30) { - if (Client.field850 == null) { - ScriptFrame.method1086(var1, var0); - Client.field850 = Client.getWidgetChild(var1, var0); - Strings.method4120(Client.field850); + if (Client.meslayerContinueWidget == null) { + ScriptFrame.resumePauseWidget(var1, var0); + Client.meslayerContinueWidget = Client.getWidgetChild(var1, var0); + Strings.invalidateWidget(Client.meslayerContinueWidget); } } else if (var2 == 31) { var8 = Archive.method4265(ClientPacket.field2266, Client.packetWriter.isaacCipher); @@ -539,8 +539,8 @@ public class Messages { WorldMapIcon_1.selectedItemSlot = var0; MouseRecorder.selectedItemWidget = var1; class4.selectedItemId = var3; - Strings.method4120(var16); - Client.selectedItemName = ClientPreferences.colorStartTag(16748608) + WorldMapArea.getItemDefinition(var3).name + ClientPreferences.colorStartTag(16777215); + Strings.invalidateWidget(var16); + Client.selectedItemName = ClientPreferences.colorStartTag(16748608) + WorldMapArea.getItemDefinition(var3).name + ClientPreferences.colorStartTag(0xffffff); if (Client.selectedItemName == null) { Client.selectedItemName = "null"; } @@ -821,7 +821,7 @@ public class Messages { if (Client.isItemSelected != 0) { Client.isItemSelected = 0; - Strings.method4120(class80.getWidget(MouseRecorder.selectedItemWidget)); + Strings.invalidateWidget(class80.getWidget(MouseRecorder.selectedItemWidget)); } if (Client.isSpellSelected) { @@ -829,7 +829,7 @@ public class Messages { } if (ItemContainer.field549 != null && Client.field759 == 0) { - Strings.method4120(ItemContainer.field549); + Strings.invalidateWidget(ItemContainer.field549); } } @@ -841,109 +841,111 @@ public class Messages { ) static void method2163(int var0, int var1, int var2, int var3, String var4) { Widget var5 = Client.getWidgetChild(var1, var2); - if (var5 != null) { - if (var5.onOp != null) { - ScriptEvent var6 = new ScriptEvent(); - var6.widget = var5; - var6.opIndex = var0; - var6.targetName = var4; - var6.args = var5.onOp; - LoginPacket.runScriptEvent(var6); + if (var5 == null) { + return; + } + if (var5.onOp != null) { + ScriptEvent var6 = new ScriptEvent(); + var6.widget = var5; + var6.opIndex = var0; + var6.targetName = var4; + var6.args = var5.onOp; + LoginPacket.runScriptEvent(var6); + } + + boolean var11 = true; + if (var5.contentType > 0) { + var11 = GrandExchangeOfferAgeComparator.method149(var5); + } + + if (!var11) { + return; + } + int var8 = class268.getWidgetClickMask(var5); + int var9 = var0 - 1; + boolean var7 = (var8 >> var9 + 1 & 1) != 0; + if (var7) { + PacketBufferNode var10; + if (var0 == 1) { + var10 = Archive.method4265(ClientPacket.field2271, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); } - boolean var11 = true; - if (var5.contentType > 0) { - var11 = GrandExchangeOfferAgeComparator.method149(var5); + if (var0 == 2) { + var10 = Archive.method4265(ClientPacket.field2255, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); } - if (var11) { - int var8 = class268.getWidgetClickMask(var5); - int var9 = var0 - 1; - boolean var7 = (var8 >> var9 + 1 & 1) != 0; - if (var7) { - PacketBufferNode var10; - if (var0 == 1) { - var10 = Archive.method4265(ClientPacket.field2271, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 2) { - var10 = Archive.method4265(ClientPacket.field2255, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 3) { - var10 = Archive.method4265(ClientPacket.field2206, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 4) { - var10 = Archive.method4265(ClientPacket.field2222, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 5) { - var10 = Archive.method4265(ClientPacket.field2243, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 6) { - var10 = Archive.method4265(ClientPacket.field2264, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 7) { - var10 = Archive.method4265(ClientPacket.field2288, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 8) { - var10 = Archive.method4265(ClientPacket.field2251, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 9) { - var10 = Archive.method4265(ClientPacket.field2287, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - if (var0 == 10) { - var10 = Archive.method4265(ClientPacket.field2289, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); - Client.packetWriter.method2219(var10); - } - - } + if (var0 == 3) { + var10 = Archive.method4265(ClientPacket.field2206, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); } + + if (var0 == 4) { + var10 = Archive.method4265(ClientPacket.field2222, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); + } + + if (var0 == 5) { + var10 = Archive.method4265(ClientPacket.field2243, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); + } + + if (var0 == 6) { + var10 = Archive.method4265(ClientPacket.field2264, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); + } + + if (var0 == 7) { + var10 = Archive.method4265(ClientPacket.field2288, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); + } + + if (var0 == 8) { + var10 = Archive.method4265(ClientPacket.field2251, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); + } + + if (var0 == 9) { + var10 = Archive.method4265(ClientPacket.field2287, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); + } + + if (var0 == 10) { + var10 = Archive.method4265(ClientPacket.field2289, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(var1); + var10.packetBuffer.writeShort(var2); + var10.packetBuffer.writeShort(var3); + Client.packetWriter.method2219(var10); + } + } } } diff --git a/runescape-client/src/main/java/MilliClock.java b/runescape-client/src/main/java/MilliClock.java index 0950c0e505..64e33f8e39 100644 --- a/runescape-client/src/main/java/MilliClock.java +++ b/runescape-client/src/main/java/MilliClock.java @@ -67,7 +67,7 @@ public class MilliClock extends Clock { garbageValue = "-333181863" ) @Export("wait") - public int wait(int var1, int var2) { + public int wait(int tickLength, int fiveOrOne) { int var3 = this.field2014; int var4 = this.field2013; this.field2014 = 300; @@ -77,7 +77,7 @@ public class MilliClock extends Clock { this.field2014 = var3; this.field2013 = var4; } else if (this.field2012 > this.field2011[this.field2016]) { - this.field2014 = (int)((long)(var1 * 2560) / (this.field2012 - this.field2011[this.field2016])); + this.field2014 = (int)((long)(tickLength * 2560) / (this.field2012 - this.field2011[this.field2016])); } if (this.field2014 < 25) { @@ -86,11 +86,11 @@ public class MilliClock extends Clock { if (this.field2014 > 256) { this.field2014 = 256; - this.field2013 = (int)((long)var1 - (this.field2012 - this.field2011[this.field2016]) / 10L); + this.field2013 = (int)((long) tickLength - (this.field2012 - this.field2011[this.field2016]) / 10L); } - if (this.field2013 > var1) { - this.field2013 = var1; + if (this.field2013 > tickLength) { + this.field2013 = tickLength; } this.field2011[this.field2016] = this.field2012; @@ -104,11 +104,11 @@ public class MilliClock extends Clock { } } - if (this.field2013 < var2) { - this.field2013 = var2; + if (this.field2013 < fiveOrOne) { + this.field2013 = fiveOrOne; } - EnumDefinition.method4550((long)this.field2013); + EnumDefinition.sleepMillis((long)this.field2013); for (var5 = 0; this.field2015 < 256; this.field2015 += this.field2014) { ++var5; diff --git a/runescape-client/src/main/java/Model.java b/runescape-client/src/main/java/Model.java index 7ca9d24542..2af540dcab 100644 --- a/runescape-client/src/main/java/Model.java +++ b/runescape-client/src/main/java/Model.java @@ -545,120 +545,123 @@ public class Model extends Entity { @ObfuscatedName("k") @Export("calculateBoundingBox") void calculateBoundingBox(int var1) { - if (this.xMidOffset == -1) { - int var2 = 0; - int var3 = 0; - int var4 = 0; - int var5 = 0; - int var6 = 0; - int var7 = 0; - int var8 = Model_cosine[var1]; - int var9 = Model_sine[var1]; - - for (int var10 = 0; var10 < this.verticesCount; ++var10) { - int var11 = Rasterizer3D.method3040(this.verticesX[var10], this.verticesZ[var10], var8, var9); - int var12 = this.verticesY[var10]; - int var13 = Rasterizer3D.method3061(this.verticesX[var10], this.verticesZ[var10], var8, var9); - if (var11 < var2) { - var2 = var11; - } - - if (var11 > var5) { - var5 = var11; - } - - if (var12 < var3) { - var3 = var12; - } - - if (var12 > var6) { - var6 = var12; - } - - if (var13 < var4) { - var4 = var13; - } - - if (var13 > var7) { - var7 = var13; - } - } - - this.xMid = (var5 + var2) / 2; - this.yMid = (var6 + var3) / 2; - this.zMid = (var7 + var4) / 2; - this.xMidOffset = (var5 - var2 + 1) / 2; - this.yMidOffset = (var6 - var3 + 1) / 2; - this.zMidOffset = (var7 - var4 + 1) / 2; - if (this.xMidOffset < 32) { - this.xMidOffset = 32; - } - - if (this.zMidOffset < 32) { - this.zMidOffset = 32; - } - - if (this.isSingleTile) { - this.xMidOffset += 8; - this.zMidOffset += 8; - } - + if (this.xMidOffset != -1) { + return; } + int var2 = 0; + int var3 = 0; + int var4 = 0; + int var5 = 0; + int var6 = 0; + int var7 = 0; + int var8 = Model_cosine[var1]; + int var9 = Model_sine[var1]; + + for (int var10 = 0; var10 < this.verticesCount; ++var10) { + int var11 = Rasterizer3D.method3040(this.verticesX[var10], this.verticesZ[var10], var8, var9); + int var12 = this.verticesY[var10]; + int var13 = Rasterizer3D.method3061(this.verticesX[var10], this.verticesZ[var10], var8, var9); + if (var11 < var2) { + var2 = var11; + } + + if (var11 > var5) { + var5 = var11; + } + + if (var12 < var3) { + var3 = var12; + } + + if (var12 > var6) { + var6 = var12; + } + + if (var13 < var4) { + var4 = var13; + } + + if (var13 > var7) { + var7 = var13; + } + } + + this.xMid = (var5 + var2) / 2; + this.yMid = (var6 + var3) / 2; + this.zMid = (var7 + var4) / 2; + this.xMidOffset = (var5 - var2 + 1) / 2; + this.yMidOffset = (var6 - var3 + 1) / 2; + this.zMidOffset = (var7 - var4 + 1) / 2; + if (this.xMidOffset < 32) { + this.xMidOffset = 32; + } + + if (this.zMidOffset < 32) { + this.zMidOffset = 32; + } + + if (this.isSingleTile) { + this.xMidOffset += 8; + this.zMidOffset += 8; + } + } @ObfuscatedName("l") @Export("calculateBoundsCylinder") public void calculateBoundsCylinder() { - if (this.boundsType != 1) { - this.boundsType = 1; - super.height = 0; - this.bottomY = 0; - this.xzRadius = 0; + if (this.boundsType == 1) { + return; + } + this.boundsType = 1; + super.height = 0; + this.bottomY = 0; + this.xzRadius = 0; - for (int var1 = 0; var1 < this.verticesCount; ++var1) { - int var2 = this.verticesX[var1]; - int var3 = this.verticesY[var1]; - int var4 = this.verticesZ[var1]; - if (-var3 > super.height) { - super.height = -var3; - } - - if (var3 > this.bottomY) { - this.bottomY = var3; - } - - int var5 = var2 * var2 + var4 * var4; - if (var5 > this.xzRadius) { - this.xzRadius = var5; - } + for (int var1 = 0; var1 < this.verticesCount; ++var1) { + int var2 = this.verticesX[var1]; + int var3 = this.verticesY[var1]; + int var4 = this.verticesZ[var1]; + if (-var3 > super.height) { + super.height = -var3; } - this.xzRadius = (int)(Math.sqrt((double)this.xzRadius) + 0.99D); - this.radius = (int)(Math.sqrt((double)(this.xzRadius * this.xzRadius + super.height * super.height)) + 0.99D); - this.diameter = this.radius + (int)(Math.sqrt((double)(this.xzRadius * this.xzRadius + this.bottomY * this.bottomY)) + 0.99D); + if (var3 > this.bottomY) { + this.bottomY = var3; + } + + int var5 = var2 * var2 + var4 * var4; + if (var5 > this.xzRadius) { + this.xzRadius = var5; + } } + + this.xzRadius = (int)(Math.sqrt((double)this.xzRadius) + 0.99D); + this.radius = (int)(Math.sqrt((double)(this.xzRadius * this.xzRadius + super.height * super.height)) + 0.99D); + this.diameter = this.radius + (int)(Math.sqrt((double)(this.xzRadius * this.xzRadius + this.bottomY * this.bottomY)) + 0.99D); } @ObfuscatedName("b") void method2910() { - if (this.boundsType != 2) { - this.boundsType = 2; - this.xzRadius = 0; - - for (int var1 = 0; var1 < this.verticesCount; ++var1) { - int var2 = this.verticesX[var1]; - int var3 = this.verticesY[var1]; - int var4 = this.verticesZ[var1]; - int var5 = var2 * var2 + var4 * var4 + var3 * var3; - if (var5 > this.xzRadius) { - this.xzRadius = var5; - } - } - - this.xzRadius = (int)(Math.sqrt((double)this.xzRadius) + 0.99D); - this.radius = this.xzRadius; - this.diameter = this.xzRadius + this.xzRadius; + if (this.boundsType == 2) { + return; } + this.boundsType = 2; + this.xzRadius = 0; + + for (int var1 = 0; var1 < this.verticesCount; ++var1) { + int var2 = this.verticesX[var1]; + int var3 = this.verticesY[var1]; + int var4 = this.verticesZ[var1]; + int var5 = var2 * var2 + var4 * var4 + var3 * var3; + if (var5 > this.xzRadius) { + this.xzRadius = var5; + } + } + + this.xzRadius = (int)(Math.sqrt((double)this.xzRadius) + 0.99D); + this.radius = this.xzRadius; + this.diameter = this.xzRadius + this.xzRadius; } @ObfuscatedName("i") @@ -680,22 +683,21 @@ public class Model extends Entity { ) @Export("animate") public void animate(Frames var1, int var2) { - if (this.vertexLabels != null) { - if (var2 != -1) { - Animation var3 = var1.frames[var2]; - Skeleton var4 = var3.skeleton; - Model_transformTempX = 0; - Model_transformTempY = 0; - Model_transformTempZ = 0; - - for (int var5 = 0; var5 < var3.transformCount; ++var5) { - int var6 = var3.transformSkeletonLabels[var5]; - this.transform(var4.transformTypes[var6], var4.labels[var6], var3.transformXs[var5], var3.transformYs[var5], var3.transformZs[var5]); - } - - this.resetBounds(); - } + if (this.vertexLabels == null || var2 == -1) { + return; } + Animation var3 = var1.frames[var2]; + Skeleton var4 = var3.skeleton; + Model_transformTempX = 0; + Model_transformTempY = 0; + Model_transformTempZ = 0; + + for (int var5 = 0; var5 < var3.transformCount; ++var5) { + int var6 = var3.transformSkeletonLabels[var5]; + this.transform(var4.transformTypes[var6], var4.labels[var6], var3.transformXs[var5], var3.transformYs[var5], var3.transformZs[var5]); + } + + this.resetBounds(); } @ObfuscatedName("r") @@ -704,50 +706,51 @@ public class Model extends Entity { ) @Export("animate2") public void animate2(Frames var1, int var2, Frames var3, int var4, int[] var5) { - if (var2 != -1) { - if (var5 != null && var4 != -1) { - Animation var6 = var1.frames[var2]; - Animation var7 = var3.frames[var4]; - Skeleton var8 = var6.skeleton; - Model_transformTempX = 0; - Model_transformTempY = 0; - Model_transformTempZ = 0; - byte var9 = 0; - int var13 = var9 + 1; - int var10 = var5[var9]; + if (var2 == -1) { + return; + } + if (var5 == null || var4 == -1) { + this.animate(var1, var2); + return; + } + Animation var6 = var1.frames[var2]; + Animation var7 = var3.frames[var4]; + Skeleton var8 = var6.skeleton; + Model_transformTempX = 0; + Model_transformTempY = 0; + Model_transformTempZ = 0; + byte var9 = 0; + int var13 = var9 + 1; + int var10 = var5[var9]; - int var11; - int var12; - for (var11 = 0; var11 < var6.transformCount; ++var11) { - for (var12 = var6.transformSkeletonLabels[var11]; var12 > var10; var10 = var5[var13++]) { - } + int var11; + int var12; + for (var11 = 0; var11 < var6.transformCount; ++var11) { + for (var12 = var6.transformSkeletonLabels[var11]; var12 > var10; var10 = var5[var13++]) { + } - if (var12 != var10 || var8.transformTypes[var12] == 0) { - this.transform(var8.transformTypes[var12], var8.labels[var12], var6.transformXs[var11], var6.transformYs[var11], var6.transformZs[var11]); - } - } - - Model_transformTempX = 0; - Model_transformTempY = 0; - Model_transformTempZ = 0; - var9 = 0; - var13 = var9 + 1; - var10 = var5[var9]; - - for (var11 = 0; var11 < var7.transformCount; ++var11) { - for (var12 = var7.transformSkeletonLabels[var11]; var12 > var10; var10 = var5[var13++]) { - } - - if (var12 == var10 || var8.transformTypes[var12] == 0) { - this.transform(var8.transformTypes[var12], var8.labels[var12], var7.transformXs[var11], var7.transformYs[var11], var7.transformZs[var11]); - } - } - - this.resetBounds(); - } else { - this.animate(var1, var2); + if (var12 != var10 || var8.transformTypes[var12] == 0) { + this.transform(var8.transformTypes[var12], var8.labels[var12], var6.transformXs[var11], var6.transformYs[var11], var6.transformZs[var11]); } } + + Model_transformTempX = 0; + Model_transformTempY = 0; + Model_transformTempZ = 0; + var9 = 0; + var13 = var9 + 1; + var10 = var5[var9]; + + for (var11 = 0; var11 < var7.transformCount; ++var11) { + for (var12 = var7.transformSkeletonLabels[var11]; var12 > var10; var10 = var5[var13++]) { + } + + if (var12 == var10 || var8.transformTypes[var12] == 0) { + this.transform(var8.transformTypes[var12], var8.labels[var12], var7.transformXs[var11], var7.transformYs[var11], var7.transformZs[var11]); + } + } + + this.resetBounds(); } @ObfuscatedName("v") diff --git a/runescape-client/src/main/java/ModelData0.java b/runescape-client/src/main/java/ModelData0.java index be8714d277..4c0c457147 100644 --- a/runescape-client/src/main/java/ModelData0.java +++ b/runescape-client/src/main/java/ModelData0.java @@ -17,8 +17,8 @@ public class ModelData0 { @ObfuscatedName("b") public static short[] field1870; @ObfuscatedName("i") - @Export("inMembersWorld") - public static boolean inMembersWorld; + @Export("ItemDefinition_inMembersWorld") + public static boolean ItemDefinition_inMembersWorld; ModelData0() { } @@ -81,7 +81,7 @@ public class ModelData0 { var4.rawY = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; var4.xAlignment = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 2]; var4.yAlignment = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 3]; - Strings.method4120(var4); + Strings.invalidateWidget(var4); WorldMapSprite.client.alignWidget(var4); if (var3 != -1 && var4.type == 0) { WorldMapSprite.revalidateWidgetScroll(Widget.Widget_interfaceComponents[var3 >> 16], var4, false); @@ -95,7 +95,7 @@ public class ModelData0 { var4.rawHeight = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; var4.widthAlignment = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 2]; var4.heightAlignment = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 3]; - Strings.method4120(var4); + Strings.invalidateWidget(var4); WorldMapSprite.client.alignWidget(var4); if (var3 != -1 && var4.type == 0) { WorldMapSprite.revalidateWidgetScroll(Widget.Widget_interfaceComponents[var3 >> 16], var4, false); @@ -107,7 +107,7 @@ public class ModelData0 { boolean var5 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1; if (var5 != var4.isHidden) { var4.isHidden = var5; - Strings.method4120(var4); + Strings.invalidateWidget(var4); } return 1; diff --git a/runescape-client/src/main/java/MouseHandler.java b/runescape-client/src/main/java/MouseHandler.java index 82b704083b..f39e28e631 100644 --- a/runescape-client/src/main/java/MouseHandler.java +++ b/runescape-client/src/main/java/MouseHandler.java @@ -34,26 +34,26 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi @ObfuscatedGetter( intValue = 1710921911 ) - @Export("MouseHandler_currentButton0") - public static volatile int MouseHandler_currentButton0; + @Export("MouseHandler_currentButtonVolatile") + public static volatile int MouseHandler_currentButtonVolatile; @ObfuscatedName("i") @ObfuscatedGetter( intValue = 1256133149 ) - @Export("MouseHandler_x0") - public static volatile int MouseHandler_x0; + @Export("MouseHandler_xVolatile") + public static volatile int MouseHandler_xVolatile; @ObfuscatedName("c") @ObfuscatedGetter( intValue = 1661434067 ) - @Export("MouseHandler_y0") - public static volatile int MouseHandler_y0; + @Export("MouseHandler_yVolatile") + public static volatile int MouseHandler_yVolatile; @ObfuscatedName("f") @ObfuscatedGetter( longValue = -8614064843857647631L ) - @Export("MouseHandler_millis0") - public static volatile long MouseHandler_millis0; + @Export("MouseHandler_lastMovedVolatile") + public static volatile long MouseHandler_lastMovedVolatile; @ObfuscatedName("m") @ObfuscatedGetter( intValue = 1270652981 @@ -76,26 +76,26 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi @ObfuscatedGetter( intValue = -1163235529 ) - @Export("MouseHandler_lastButton0") - public static volatile int MouseHandler_lastButton0; + @Export("MouseHandler_lastButtonVolatile") + public static volatile int MouseHandler_lastButtonVolatile; @ObfuscatedName("v") @ObfuscatedGetter( intValue = -1839013683 ) - @Export("MouseHandler_lastPressedX0") - public static volatile int MouseHandler_lastPressedX0; + @Export("MouseHandler_lastPressedXVolatile") + public static volatile int MouseHandler_lastPressedXVolatile; @ObfuscatedName("y") @ObfuscatedGetter( intValue = -62123151 ) - @Export("MouseHandler_lastPressedY0") - public static volatile int MouseHandler_lastPressedY0; + @Export("MouseHandler_lastPressedYVolatile") + public static volatile int MouseHandler_lastPressedYVolatile; @ObfuscatedName("g") @ObfuscatedGetter( longValue = -4691083224527858071L ) - @Export("MouseHandler_lastPressedTimeMillis0") - public static volatile long MouseHandler_lastPressedTimeMillis0; + @Export("MouseHandler_lastPressedTimeMillisVolatile") + public static volatile long MouseHandler_lastPressedTimeMillisVolatile; @ObfuscatedName("a") @ObfuscatedGetter( intValue = 1647189949 @@ -130,18 +130,18 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi static { MouseHandler_instance = new MouseHandler(); MouseHandler_idleCycles = 0; - MouseHandler_currentButton0 = 0; - MouseHandler_x0 = -1; - MouseHandler_y0 = -1; - MouseHandler_millis0 = -1L; + MouseHandler_currentButtonVolatile = 0; + MouseHandler_xVolatile = -1; + MouseHandler_yVolatile = -1; + MouseHandler_lastMovedVolatile = -1L; MouseHandler_currentButton = 0; MouseHandler_x = 0; MouseHandler_y = 0; MouseHandler_millis = 0L; - MouseHandler_lastButton0 = 0; - MouseHandler_lastPressedX0 = 0; - MouseHandler_lastPressedY0 = 0; - MouseHandler_lastPressedTimeMillis0 = 0L; + MouseHandler_lastButtonVolatile = 0; + MouseHandler_lastPressedXVolatile = 0; + MouseHandler_lastPressedYVolatile = 0; + MouseHandler_lastPressedTimeMillisVolatile = 0L; MouseHandler_lastButton = 0; MouseHandler_lastPressedX = 0; MouseHandler_lastPressedY = 0; @@ -168,9 +168,9 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi public final synchronized void mouseMoved(MouseEvent var1) { if (MouseHandler_instance != null) { MouseHandler_idleCycles = 0; - MouseHandler_x0 = var1.getX(); - MouseHandler_y0 = var1.getY(); - MouseHandler_millis0 = var1.getWhen(); + MouseHandler_xVolatile = var1.getX(); + MouseHandler_yVolatile = var1.getY(); + MouseHandler_lastMovedVolatile = var1.getWhen(); } } @@ -178,12 +178,12 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi public final synchronized void mousePressed(MouseEvent var1) { if (MouseHandler_instance != null) { MouseHandler_idleCycles = 0; - MouseHandler_lastPressedX0 = var1.getX(); - MouseHandler_lastPressedY0 = var1.getY(); - MouseHandler_lastPressedTimeMillis0 = DirectByteArrayCopier.currentTimeMs(); - MouseHandler_lastButton0 = this.getButton(var1); - if (MouseHandler_lastButton0 != 0) { - MouseHandler_currentButton0 = MouseHandler_lastButton0; + MouseHandler_lastPressedXVolatile = var1.getX(); + MouseHandler_lastPressedYVolatile = var1.getY(); + MouseHandler_lastPressedTimeMillisVolatile = DirectByteArrayCopier.currentTimeMs(); + MouseHandler_lastButtonVolatile = this.getButton(var1); + if (MouseHandler_lastButtonVolatile != 0) { + MouseHandler_currentButtonVolatile = MouseHandler_lastButtonVolatile; } } @@ -196,7 +196,7 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi public final synchronized void mouseReleased(MouseEvent var1) { if (MouseHandler_instance != null) { MouseHandler_idleCycles = 0; - MouseHandler_currentButton0 = 0; + MouseHandler_currentButtonVolatile = 0; } if (var1.isPopupTrigger()) { @@ -218,7 +218,7 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi public final synchronized void focusLost(FocusEvent var1) { if (MouseHandler_instance != null) { - MouseHandler_currentButton0 = 0; + MouseHandler_currentButtonVolatile = 0; } } @@ -226,9 +226,9 @@ public class MouseHandler implements MouseListener, MouseMotionListener, FocusLi public final synchronized void mouseExited(MouseEvent var1) { if (MouseHandler_instance != null) { MouseHandler_idleCycles = 0; - MouseHandler_x0 = -1; - MouseHandler_y0 = -1; - MouseHandler_millis0 = var1.getWhen(); + MouseHandler_xVolatile = -1; + MouseHandler_yVolatile = -1; + MouseHandler_lastMovedVolatile = var1.getWhen(); } } diff --git a/runescape-client/src/main/java/MouseRecorder.java b/runescape-client/src/main/java/MouseRecorder.java index 722a18d162..9666b0c86f 100644 --- a/runescape-client/src/main/java/MouseRecorder.java +++ b/runescape-client/src/main/java/MouseRecorder.java @@ -45,7 +45,7 @@ public class MouseRecorder implements Runnable { } public void run() { - for (; this.isRunning; EnumDefinition.method4550(50L)) { + for (; this.isRunning; EnumDefinition.sleepMillis(50L)) { synchronized(this.lock) { if (this.index < 500) { this.xs[this.index] = MouseHandler.MouseHandler_x; diff --git a/runescape-client/src/main/java/MusicPatchPcmStream.java b/runescape-client/src/main/java/MusicPatchPcmStream.java index b393b0363e..2df785f0f7 100644 --- a/runescape-client/src/main/java/MusicPatchPcmStream.java +++ b/runescape-client/src/main/java/MusicPatchPcmStream.java @@ -214,11 +214,11 @@ public class MusicPatchPcmStream extends PcmStream { if (var0.isMembersOnly() != Client.isMembersWorld) { Client.isMembersWorld = var0.isMembersOnly(); boolean var1 = var0.isMembersOnly(); - if (var1 != ModelData0.inMembersWorld) { + if (var1 != ModelData0.ItemDefinition_inMembersWorld) { ItemDefinition.ItemDefinition_cached.clear(); ItemDefinition.ItemDefinition_cachedModels.clear(); ItemDefinition.ItemDefinition_cachedSprites.clear(); - ModelData0.inMembersWorld = var1; + ModelData0.ItemDefinition_inMembersWorld = var1; } } diff --git a/runescape-client/src/main/java/NanoClock.java b/runescape-client/src/main/java/NanoClock.java index 2a00cb8a11..b669fadb82 100644 --- a/runescape-client/src/main/java/NanoClock.java +++ b/runescape-client/src/main/java/NanoClock.java @@ -34,19 +34,20 @@ public class NanoClock extends Clock { garbageValue = "-333181863" ) @Export("wait") - public int wait(int var1, int var2) { - long var3 = 1000000L * (long)var2; + public int wait(int tickLength, int fiveOrOne) { + long var3 = 1000000L * (long)fiveOrOne; long var5 = this.lastTimeNano - System.nanoTime(); if (var5 < var3) { var5 = var3; } - EnumDefinition.method4550(var5 / 1000000L); + EnumDefinition.sleepMillis(var5 / 1000000L); long var7 = System.nanoTime(); - int var9; - for (var9 = 0; var9 < 10 && (var9 < 1 || this.lastTimeNano < var7); this.lastTimeNano += (long)var1 * 1000000L) { + int var9 = 0; + while (var9 < 10 && (var9 < 1 || this.lastTimeNano < var7)) { ++var9; + this.lastTimeNano += (long)tickLength * 1000000L; } if (this.lastTimeNano < var7) { diff --git a/runescape-client/src/main/java/NetCache.java b/runescape-client/src/main/java/NetCache.java index 924cea0dd9..e139b10687 100644 --- a/runescape-client/src/main/java/NetCache.java +++ b/runescape-client/src/main/java/NetCache.java @@ -144,7 +144,7 @@ public class NetCache { int var3; int var4; for (var3 = 0; var3 < Client.menuOptionsCount; ++var3) { - var4 = WorldMapIcon_1.fontBold12.stringWidth(WorldMapLabel.method417(var3)); + var4 = WorldMapIcon_1.fontBold12.stringWidth(WorldMapLabel.getMenuText(var3)); if (var4 > var2) { var2 = var4; } diff --git a/runescape-client/src/main/java/NetSocket.java b/runescape-client/src/main/java/NetSocket.java index 8d5986c1a9..3208dc99b8 100644 --- a/runescape-client/src/main/java/NetSocket.java +++ b/runescape-client/src/main/java/NetSocket.java @@ -102,7 +102,7 @@ public final class NetSocket extends AbstractSocket implements Runnable { if (this.task != null) { while (this.task.status == 0) { - EnumDefinition.method4550(1L); + EnumDefinition.sleepMillis(1L); } if (this.task.status == 1) { diff --git a/runescape-client/src/main/java/Node.java b/runescape-client/src/main/java/Node.java index d47c4b1ce2..23ec0c6466 100644 --- a/runescape-client/src/main/java/Node.java +++ b/runescape-client/src/main/java/Node.java @@ -25,12 +25,13 @@ public class Node { @ObfuscatedName("fz") @Export("remove") public void remove() { - if (this.next != null) { - this.next.previous = this.previous; - this.previous.next = this.next; - this.previous = null; - this.next = null; + if (this.next == null) { + return; } + this.next.previous = this.previous; + this.previous.next = this.next; + this.previous = null; + this.next = null; } @ObfuscatedName("fn") diff --git a/runescape-client/src/main/java/ObjectDefinition.java b/runescape-client/src/main/java/ObjectDefinition.java index f67a371a01..057af02454 100644 --- a/runescape-client/src/main/java/ObjectDefinition.java +++ b/runescape-client/src/main/java/ObjectDefinition.java @@ -248,7 +248,8 @@ public class ObjectDefinition extends DualNode { @Export("int6") public int int6; @ObfuscatedName("ay") - public int[] field3367; + @Export("soundEffectIds") + public int[] soundEffectIds; @ObfuscatedName("af") @ObfuscatedSignature( signature = "Lla;" @@ -472,10 +473,10 @@ public class ObjectDefinition extends DualNode { this.int6 = var1.readUnsignedShort(); this.int4 = var1.readUnsignedByte(); var3 = var1.readUnsignedByte(); - this.field3367 = new int[var3]; + this.soundEffectIds = new int[var3]; for (var4 = 0; var4 < var3; ++var4) { - this.field3367[var4] = var1.readUnsignedShort(); + this.soundEffectIds[var4] = var1.readUnsignedShort(); } } else if (var2 == 81) { this.clipType = var1.readUnsignedByte() * 65536; @@ -889,14 +890,15 @@ public class ObjectDefinition extends DualNode { signature = "(I)Z", garbageValue = "-2033078684" ) - public boolean method4598() { + @Export("hasSound") + public boolean hasSound() { if (this.transforms == null) { - return this.ambientSoundId != -1 || this.field3367 != null; + return this.ambientSoundId != -1 || this.soundEffectIds != null; } for (int var1 = 0; var1 < this.transforms.length; ++var1) { if (this.transforms[var1] != -1) { ObjectDefinition var2 = ViewportMouse.getObjectDefinition(this.transforms[var1]); - if (var2.ambientSoundId != -1 || var2.field3367 != null) { + if (var2.ambientSoundId != -1 || var2.soundEffectIds != null) { return true; } } diff --git a/runescape-client/src/main/java/ObjectSound.java b/runescape-client/src/main/java/ObjectSound.java index f93c33fcce..2c0d579751 100644 --- a/runescape-client/src/main/java/ObjectSound.java +++ b/runescape-client/src/main/java/ObjectSound.java @@ -23,17 +23,20 @@ public final class ObjectSound extends Node { @ObfuscatedGetter( intValue = 621824935 ) - int field1078; + @Export("plane") + int plane; @ObfuscatedName("e") @ObfuscatedGetter( intValue = 1620734975 ) - int field1083; + @Export("x") + int x; @ObfuscatedName("p") @ObfuscatedGetter( intValue = -1755977344 ) - int field1090; + @Export("y") + int y; @ObfuscatedName("k") @ObfuscatedGetter( intValue = 75852160 @@ -113,7 +116,7 @@ public final class ObjectSound extends Node { this.field1091 = var2.int4 * 128; this.field1086 = var2.int5; this.field1081 = var2.int6; - this.soundEffectIds = var2.field3367; + this.soundEffectIds = var2.soundEffectIds; } else { this.soundEffectId = -1; this.field1091 = 0; diff --git a/runescape-client/src/main/java/PacketBuffer.java b/runescape-client/src/main/java/PacketBuffer.java index 2b5f10bf61..915337b52b 100644 --- a/runescape-client/src/main/java/PacketBuffer.java +++ b/runescape-client/src/main/java/PacketBuffer.java @@ -29,7 +29,7 @@ public class PacketBuffer extends Buffer { int bitIndex; static { - field3724 = new int[]{0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215, 33554431, 67108863, 134217727, 268435455, 536870911, 1073741823, Integer.MAX_VALUE, -1}; + field3724 = new int[]{0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 0xffffff, 33554431, 67108863, 134217727, 0xfffffff, 536870911, 1073741823, Integer.MAX_VALUE, -1}; } public PacketBuffer(int var1) { diff --git a/runescape-client/src/main/java/PacketBufferNode.java b/runescape-client/src/main/java/PacketBufferNode.java index 1b0fb2d4b7..6e8984a64b 100644 --- a/runescape-client/src/main/java/PacketBufferNode.java +++ b/runescape-client/src/main/java/PacketBufferNode.java @@ -247,10 +247,10 @@ public class PacketBufferNode extends Node { FaceNormal.field1887 = new int[4][105][105]; class32.field282 = new byte[4][105][105]; Tiles.field515 = new int[105][105]; - ServerBuild.field3103 = new int[104]; - Tiles.field508 = new int[104]; - Tiles.field507 = new int[104]; - DynamicObject.field1301 = new int[104]; + ServerBuild.Tiles_hue = new int[104]; + Tiles.Tiles_saturation = new int[104]; + Tiles.Tiles_lightness = new int[104]; + DynamicObject.Tiles_hueMultiplier = new int[104]; Fonts.field3689 = new int[104]; var1 = class13.regionLandArchives.length; @@ -411,113 +411,117 @@ public class PacketBufferNode extends Node { label447: for (var4 = 0; var4 < 13; ++var4) { var51 = Client.instanceChunkTemplates[var49][var3][var4]; - if (var51 != -1) { - var6 = var51 >> 24 & 3; - var7 = var51 >> 1 & 3; - var52 = var51 >> 14 & 1023; - var9 = var51 >> 3 & 2047; - var10 = (var52 / 8 << 8) + var9 / 8; + if (var51 == -1) { + continue; + } + var6 = var51 >> 24 & 3; + var7 = var51 >> 1 & 3; + var52 = var51 >> 14 & 1023; + var9 = var51 >> 3 & 2047; + var10 = (var52 / 8 << 8) + var9 / 8; - for (var11 = 0; var11 < DirectByteArrayCopier.regions.length; ++var11) { - if (DirectByteArrayCopier.regions[var11] == var10 && class80.regionMapArchives[var11] != null) { - byte[] var54 = class80.regionMapArchives[var11]; - int var13 = var3 * 8; - int var14 = var4 * 8; - int var15 = (var52 & 7) * 8; - int var16 = (var9 & 7) * 8; - Scene var17 = GrandExchangeOfferWorldComparator.scene; - CollisionMap[] var18 = Client.collisionMaps; - Buffer var19 = new Buffer(var54); - int var20 = -1; + for (var11 = 0; var11 < DirectByteArrayCopier.regions.length; ++var11) { + if (DirectByteArrayCopier.regions[var11] != var10 || class80.regionMapArchives[var11] == null) { + continue; + } + byte[] var54 = class80.regionMapArchives[var11]; + int var13 = var3 * 8; + int var14 = var4 * 8; + int var15 = (var52 & 7) * 8; + int var16 = (var9 & 7) * 8; + Scene var17 = GrandExchangeOfferWorldComparator.scene; + CollisionMap[] var18 = Client.collisionMaps; + Buffer var19 = new Buffer(var54); + int var20 = -1; - while (true) { - int var21 = var19.method5509(); - if (var21 == 0) { - continue label447; - } + while (true) { + int var21 = var19.method5509(); + if (var21 == 0) { + continue label447; + } - var20 += var21; - int var22 = 0; + var20 += var21; + int var22 = 0; - while (true) { - int var23 = var19.readUShortSmart(); - if (var23 == 0) { - break; - } - - var22 += var23 - 1; - int var24 = var22 & 63; - int var25 = var22 >> 6 & 63; - int var26 = var22 >> 12; - int var27 = var19.readUnsignedByte(); - int var28 = var27 >> 2; - int var29 = var27 & 3; - if (var6 == var26 && var25 >= var15 && var25 < var15 + 8 && var24 >= var16 && var24 < var16 + 8) { - ObjectDefinition var30 = ViewportMouse.getObjectDefinition(var20); - int var33 = var25 & 7; - int var34 = var24 & 7; - int var36 = var30.sizeX; - int var37 = var30.sizeY; - int var38; - if ((var29 & 1) == 1) { - var38 = var36; - var36 = var37; - var37 = var38; - } - - int var35 = var7 & 3; - int var32; - if (var35 == 0) { - var32 = var33; - } else if (var35 == 1) { - var32 = var34; - } else if (var35 == 2) { - var32 = 7 - var33 - (var36 - 1); - } else { - var32 = 7 - var34 - (var37 - 1); - } - - var38 = var32 + var13; - int var41 = var25 & 7; - int var42 = var24 & 7; - int var44 = var30.sizeX; - int var45 = var30.sizeY; - int var46; - if ((var29 & 1) == 1) { - var46 = var44; - var44 = var45; - var45 = var46; - } - - int var43 = var7 & 3; - int var40; - if (var43 == 0) { - var40 = var42; - } else if (var43 == 1) { - var40 = 7 - var41 - (var44 - 1); - } else if (var43 == 2) { - var40 = 7 - var42 - (var45 - 1); - } else { - var40 = var41; - } - - var46 = var40 + var14; - if (var38 > 0 && var46 > 0 && var38 < 103 && var46 < 103) { - int var47 = var49; - if ((Tiles.Tiles_renderFlags[1][var38][var46] & 2) == 2) { - var47 = var49 - 1; - } - - CollisionMap var48 = null; - if (var47 >= 0) { - var48 = var18[var47]; - } - - GrandExchangeOfferOwnWorldComparator.method1236(var49, var38, var46, var20, var29 + var7 & 3, var28, var17, var48); - } - } - } + while (true) { + int var23 = var19.readUShortSmart(); + if (var23 == 0) { + break; } + + var22 += var23 - 1; + int var24 = var22 & 63; + int var25 = var22 >> 6 & 63; + int var26 = var22 >> 12; + int var27 = var19.readUnsignedByte(); + int var28 = var27 >> 2; + int var29 = var27 & 3; + if (var6 != var26 || var25 < var15 || var25 >= var15 + 8 || var24 < var16 || var24 >= var16 + 8) { + continue; + } + ObjectDefinition var30 = ViewportMouse.getObjectDefinition(var20); + int var33 = var25 & 7; + int var34 = var24 & 7; + int var36 = var30.sizeX; + int var37 = var30.sizeY; + int var38; + if ((var29 & 1) == 1) { + var38 = var36; + var36 = var37; + var37 = var38; + } + + int var35 = var7 & 3; + int var32; + if (var35 == 0) { + var32 = var33; + } else if (var35 == 1) { + var32 = var34; + } else if (var35 == 2) { + var32 = 7 - var33 - (var36 - 1); + } else { + var32 = 7 - var34 - (var37 - 1); + } + + var38 = var32 + var13; + int var41 = var25 & 7; + int var42 = var24 & 7; + int var44 = var30.sizeX; + int var45 = var30.sizeY; + int var46; + if ((var29 & 1) == 1) { + var46 = var44; + var44 = var45; + var45 = var46; + } + + int var43 = var7 & 3; + int var40; + if (var43 == 0) { + var40 = var42; + } else if (var43 == 1) { + var40 = 7 - var41 - (var44 - 1); + } else if (var43 == 2) { + var40 = 7 - var42 - (var45 - 1); + } else { + var40 = var41; + } + + var46 = var40 + var14; + if (var38 <= 0 || var46 <= 0 || var38 >= 103 || var46 >= 103) { + continue; + } + int var47 = var49; + if ((Tiles.Tiles_renderFlags[1][var38][var46] & 2) == 2) { + var47 = var49 - 1; + } + + CollisionMap var48 = null; + if (var47 >= 0) { + var48 = var18[var47]; + } + + GrandExchangeOfferOwnWorldComparator.method1236(var49, var38, var46, var20, var29 + var7 & 3, var28, var17, var48); } } } diff --git a/runescape-client/src/main/java/PacketWriter.java b/runescape-client/src/main/java/PacketWriter.java index 85898d2f89..cc913b263f 100644 --- a/runescape-client/src/main/java/PacketWriter.java +++ b/runescape-client/src/main/java/PacketWriter.java @@ -112,23 +112,24 @@ public class PacketWriter { garbageValue = "294803591" ) final void method2234() throws IOException { - if (this.socket != null && this.bufferSize > 0) { - this.buffer.offset = 0; + if (this.socket == null || this.bufferSize <= 0) { + return; + } + this.buffer.offset = 0; - while (true) { - PacketBufferNode var1 = (PacketBufferNode)this.packetBufferNodes.last(); - if (var1 == null || var1.index > this.buffer.array.length - this.buffer.offset) { - this.socket.write(this.buffer.array, 0, this.buffer.offset); - this.field1319 = 0; - break; - } - - this.buffer.writeBytes(var1.packetBuffer.array, 0, var1.index); - this.bufferSize -= var1.index; - var1.remove(); - var1.packetBuffer.method5477(); - var1.method3620(); + while (true) { + PacketBufferNode var1 = (PacketBufferNode)this.packetBufferNodes.last(); + if (var1 == null || var1.index > this.buffer.array.length - this.buffer.offset) { + this.socket.write(this.buffer.array, 0, this.buffer.offset); + this.field1319 = 0; + break; } + + this.buffer.writeBytes(var1.packetBuffer.array, 0, var1.index); + this.bufferSize -= var1.index; + var1.remove(); + var1.packetBuffer.method5477(); + var1.method3620(); } } diff --git a/runescape-client/src/main/java/PcmPlayer.java b/runescape-client/src/main/java/PcmPlayer.java index 2de3d6f035..3dda2ce70a 100644 --- a/runescape-client/src/main/java/PcmPlayer.java +++ b/runescape-client/src/main/java/PcmPlayer.java @@ -174,90 +174,91 @@ public class PcmPlayer { ) @Export("run") public final synchronized void run() { - if (this.samples != null) { - long var1 = DirectByteArrayCopier.currentTimeMs(); + if (this.samples == null) { + return; + } + long var1 = DirectByteArrayCopier.currentTimeMs(); - try { - if (0L != this.field1416) { - if (var1 < this.field1416) { + try { + if (0L != this.field1416) { + if (var1 < this.field1416) { + return; + } + + this.open(this.capacity); + this.field1416 = 0L; + this.field1421 = true; + } + + int var3 = this.position(); + if (this.field1419 - var3 > this.field1417) { + this.field1417 = this.field1419 - var3; + } + + int var4 = this.field1413 + this.field1414; + if (var4 + 256 > 16384) { + var4 = 16128; + } + + if (var4 + 256 > this.capacity) { + this.capacity += 1024; + if (this.capacity > 16384) { + this.capacity = 16384; + } + + this.close(); + this.open(this.capacity); + var3 = 0; + this.field1421 = true; + if (var4 + 256 > this.capacity) { + var4 = this.capacity - 256; + this.field1413 = var4 - this.field1414; + } + } + + while (var3 < var4) { + this.fill(this.samples, 256); + this.write(); + var3 += 256; + } + + if (var1 > this.field1420) { + if (!this.field1421) { + if (this.field1417 == 0 && this.field1418 == 0) { + this.close(); + this.field1416 = 2000L + var1; return; } - this.open(this.capacity); - this.field1416 = 0L; - this.field1421 = true; + this.field1413 = Math.min(this.field1418, this.field1417); + this.field1418 = this.field1417; + } else { + this.field1421 = false; } - int var3 = this.position(); - if (this.field1419 - var3 > this.field1417) { - this.field1417 = this.field1419 - var3; - } - - int var4 = this.field1413 + this.field1414; - if (var4 + 256 > 16384) { - var4 = 16128; - } - - if (var4 + 256 > this.capacity) { - this.capacity += 1024; - if (this.capacity > 16384) { - this.capacity = 16384; - } - - this.close(); - this.open(this.capacity); - var3 = 0; - this.field1421 = true; - if (var4 + 256 > this.capacity) { - var4 = this.capacity - 256; - this.field1413 = var4 - this.field1414; - } - } - - while (var3 < var4) { - this.fill(this.samples, 256); - this.write(); - var3 += 256; - } - - if (var1 > this.field1420) { - if (!this.field1421) { - if (this.field1417 == 0 && this.field1418 == 0) { - this.close(); - this.field1416 = 2000L + var1; - return; - } - - this.field1413 = Math.min(this.field1418, this.field1417); - this.field1418 = this.field1417; - } else { - this.field1421 = false; - } - - this.field1417 = 0; - this.field1420 = 2000L + var1; - } - - this.field1419 = var3; - } catch (Exception var7) { - this.close(); - this.field1416 = var1 + 2000L; - } - - try { - if (var1 > 500000L + this.timeMs) { - var1 = this.timeMs; - } - - while (var1 > 5000L + this.timeMs) { - this.skip(256); - this.timeMs += (long)(256000 / CollisionMap.PcmPlayer_sampleRate); - } - } catch (Exception var6) { - this.timeMs = var1; + this.field1417 = 0; + this.field1420 = 2000L + var1; } + this.field1419 = var3; + } catch (Exception var7) { + this.close(); + this.field1416 = var1 + 2000L; } + + try { + if (var1 > 500000L + this.timeMs) { + var1 = this.timeMs; + } + + while (var1 > 5000L + this.timeMs) { + this.skip(256); + this.timeMs += (long)(256000 / CollisionMap.PcmPlayer_sampleRate); + } + } catch (Exception var6) { + this.timeMs = var1; + } + } @ObfuscatedName("aw") @@ -473,7 +474,8 @@ public class PcmPlayer { signature = "(B)[Lll;", garbageValue = "69" ) - public static FillMode[] method2405() { + @Export("FillMode_values") + public static FillMode[] FillMode_values() { return new FillMode[]{FillMode.GRADIENT, FillMode.SOLID, FillMode.GRADIENTALPHA}; } diff --git a/runescape-client/src/main/java/PendingSpawn.java b/runescape-client/src/main/java/PendingSpawn.java index a0e29d84bb..cfe04a2b07 100644 --- a/runescape-client/src/main/java/PendingSpawn.java +++ b/runescape-client/src/main/java/PendingSpawn.java @@ -117,10 +117,10 @@ public final class PendingSpawn extends Node { Client.interfaceParents.put(var3, (long)var0); GrandExchangeOfferAgeComparator.method146(var1); Widget var4 = class80.getWidget(var0); - Strings.method4120(var4); - if (Client.field850 != null) { - Strings.method4120(Client.field850); - Client.field850 = null; + Strings.invalidateWidget(var4); + if (Client.meslayerContinueWidget != null) { + Strings.invalidateWidget(Client.meslayerContinueWidget); + Client.meslayerContinueWidget = null; } for (int var5 = 0; var5 < Client.menuOptionsCount; ++var5) { diff --git a/runescape-client/src/main/java/PlayerAppearance.java b/runescape-client/src/main/java/PlayerAppearance.java index 39a68c4736..247dcb22c7 100644 --- a/runescape-client/src/main/java/PlayerAppearance.java +++ b/runescape-client/src/main/java/PlayerAppearance.java @@ -53,25 +53,25 @@ public class PlayerAppearance { garbageValue = "646936980" ) @Export("update") - public void update(int[] var1, int[] var2, boolean var3, int var4) { - if (var1 == null) { - var1 = new int[12]; + public void update(int[] equipment, int[] bodyColors, boolean isFemale, int npcTransformId) { + if (equipment == null) { + equipment = new int[12]; for (int var5 = 0; var5 < 7; ++var5) { for (int var6 = 0; var6 < KitDefinition.KitDefinition_fileCount; ++var6) { KitDefinition var7 = ArchiveDiskAction.getKitDefinition(var6); - if (var7 != null && !var7.nonSelectable && var7.bodypartID == var5 + (var3 ? 7 : 0)) { - var1[equipmentIndices[var5]] = var6 + 256; + if (var7 != null && !var7.nonSelectable && var7.bodypartID == var5 + (isFemale ? 7 : 0)) { + equipment[equipmentIndices[var5]] = var6 + 256; break; } } } } - this.equipment = var1; - this.bodyColors = var2; - this.isFemale = var3; - this.npcTransformId = var4; + this.equipment = equipment; + this.bodyColors = bodyColors; + this.isFemale = isFemale; + this.npcTransformId = npcTransformId; this.setHash(); } @@ -81,32 +81,34 @@ public class PlayerAppearance { garbageValue = "7431" ) public void method3992(int var1, boolean var2) { - if (var1 != 1 || !this.isFemale) { - int var3 = this.equipment[equipmentIndices[var1]]; - if (var3 != 0) { - var3 -= 256; - - KitDefinition var4; - do { - if (!var2) { - --var3; - if (var3 < 0) { - var3 = KitDefinition.KitDefinition_fileCount - 1; - } - } else { - ++var3; - if (var3 >= KitDefinition.KitDefinition_fileCount) { - var3 = 0; - } - } - - var4 = ArchiveDiskAction.getKitDefinition(var3); - } while(var4 == null || var4.nonSelectable || var4.bodypartID != (this.isFemale ? 7 : 0) + var1); - - this.equipment[equipmentIndices[var1]] = var3 + 256; - this.setHash(); - } + if (var1 == 1 && this.isFemale) { + return; } + int var3 = this.equipment[equipmentIndices[var1]]; + if (var3 == 0) { + return; + } + var3 -= 256; + + KitDefinition var4; + do { + if (!var2) { + --var3; + if (var3 < 0) { + var3 = KitDefinition.KitDefinition_fileCount - 1; + } + } else { + ++var3; + if (var3 >= KitDefinition.KitDefinition_fileCount) { + var3 = 0; + } + } + + var4 = ArchiveDiskAction.getKitDefinition(var3); + } while(var4 == null || var4.nonSelectable || var4.bodypartID != (this.isFemale ? 7 : 0) + var1); + + this.equipment[equipmentIndices[var1]] = var3 + 256; + this.setHash(); } @ObfuscatedName("e") @@ -117,33 +119,27 @@ public class PlayerAppearance { public void method3993(int var1, boolean var2) { int var3 = this.bodyColors[var1]; boolean var4; - if (!var2) { - do { + do { + if (var2) { --var3; - if (var3 < 0) { + if (var3 < 0) + { var3 = class247.field3291[var1].length - 1; } - - if (var1 == 4 && var3 >= 8) { - var4 = false; - } else { - var4 = true; - } - } while(!var4); - } else { - do { + } else { ++var3; if (var3 >= class247.field3291[var1].length) { var3 = 0; } + } + + if (var1 == 4 && var3 >= 8) { + var4 = false; + } else { + var4 = true; + } + } while(!var4); - if (var1 == 4 && var3 >= 8) { - var4 = false; - } else { - var4 = true; - } - } while(!var4); - } this.bodyColors[var1] = var3; this.setHash(); @@ -154,7 +150,8 @@ public class PlayerAppearance { signature = "(ZI)V", garbageValue = "-1889308905" ) - public void method4006(boolean var1) { + @Export("changeSex") + public void changeSex(boolean var1) { if (this.isFemale != var1) { this.update((int[])null, this.bodyColors, var1, -1); } @@ -165,7 +162,8 @@ public class PlayerAppearance { signature = "(Lkf;I)V", garbageValue = "318518244" ) - public void method3995(Buffer var1) { + @Export("write") + public void write(Buffer var1) { var1.writeByte(this.isFemale ? 1 : 0); int var2; diff --git a/runescape-client/src/main/java/RasterProvider.java b/runescape-client/src/main/java/RasterProvider.java index 109711e7c6..1860bc829b 100644 --- a/runescape-client/src/main/java/RasterProvider.java +++ b/runescape-client/src/main/java/RasterProvider.java @@ -29,7 +29,7 @@ public final class RasterProvider extends AbstractRasterProvider { super.height = var2; super.pixels = new int[var2 * var1 + 1]; DataBufferInt var4 = new DataBufferInt(super.pixels, super.pixels.length); - DirectColorModel var5 = new DirectColorModel(32, 16711680, 65280, 255); + DirectColorModel var5 = new DirectColorModel(32, 0xff0000, 0xff00, 255); WritableRaster var6 = Raster.createWritableRaster(var5.createCompatibleSampleModel(super.width, super.height), var4, (Point)null); this.image = new BufferedImage(var5, var6, false, new Hashtable()); this.setComponent(var3); diff --git a/runescape-client/src/main/java/Rasterizer2D.java b/runescape-client/src/main/java/Rasterizer2D.java index 14532b01a9..89f285e36b 100644 --- a/runescape-client/src/main/java/Rasterizer2D.java +++ b/runescape-client/src/main/java/Rasterizer2D.java @@ -370,7 +370,7 @@ public class Rasterizer2D extends DualNode { var3 = Rasterizer2D_yClipEnd - var1; } - var4 = (var5 * (var4 & 16711935) >> 8 & 16711935) + (var5 * (var4 & 65280) >> 8 & 65280); + var4 = (var5 * (var4 & 0xff00ff) >> 8 & 0xff00ff) + (var5 * (var4 & 0xff00) >> 8 & 0xff00); int var6 = 256 - var5; int var7 = Rasterizer2D_width - var2; int var8 = var0 + Rasterizer2D_width * var1; @@ -378,7 +378,7 @@ public class Rasterizer2D extends DualNode { for (int var9 = 0; var9 < var3; ++var9) { for (int var10 = -var2; var10 < 0; ++var10) { int var11 = Rasterizer2D_pixels[var8]; - var11 = ((var11 & 16711935) * var6 >> 8 & 16711935) + (var6 * (var11 & 65280) >> 8 & 65280); + var11 = ((var11 & 0xff00ff) * var6 >> 8 & 0xff00ff) + (var6 * (var11 & 0xff00) >> 8 & 0xff00); Rasterizer2D_pixels[var8++] = var11 + var4; } @@ -452,7 +452,7 @@ public class Rasterizer2D extends DualNode { for (int var10 = -var3; var10 < 0; ++var10) { int var11 = 65536 - var6 >> 8; int var12 = var6 >> 8; - int var13 = (var12 * (var5 & 16711935) + var11 * (var4 & 16711935) & -16711936) + (var12 * (var5 & 65280) + var11 * (var4 & 65280) & 16711680) >>> 8; + int var13 = (var12 * (var5 & 0xff00ff) + var11 * (var4 & 0xff00ff) & 0xff00ff00) + (var12 * (var5 & 0xff00) + var11 * (var4 & 0xff00) & 0xff0000) >>> 8; for (int var14 = -var2; var14 < 0; ++var14) { Rasterizer2D_pixels[var9++] = var13; @@ -496,21 +496,21 @@ public class Rasterizer2D extends DualNode { for (int var12 = -var3; var12 < 0; ++var12) { int var13 = 65536 - var8 >> 8; int var14 = var8 >> 8; - int var15 = (var13 * var6 + var14 * var7 & 65280) >>> 8; + int var15 = (var13 * var6 + var14 * var7 & 0xff00) >>> 8; if (var15 == 0) { var11 += Rasterizer2D_width; var8 += var9; } else { - int var16 = (var14 * (var5 & 16711935) + var13 * (var4 & 16711935) & -16711936) + (var14 * (var5 & 65280) + var13 * (var4 & 65280) & 16711680) >>> 8; + int var16 = (var14 * (var5 & 0xff00ff) + var13 * (var4 & 0xff00ff) & 0xff00ff00) + (var14 * (var5 & 0xff00) + var13 * (var4 & 0xff00) & 0xff0000) >>> 8; int var17 = 255 - var15; - int var18 = ((var16 & 16711935) * var15 >> 8 & 16711935) + (var15 * (var16 & 65280) >> 8 & 65280); + int var18 = ((var16 & 0xff00ff) * var15 >> 8 & 0xff00ff) + (var15 * (var16 & 0xff00) >> 8 & 0xff00); for (int var19 = -var2; var19 < 0; ++var19) { int var20 = Rasterizer2D_pixels[var11]; if (var20 == 0) { Rasterizer2D_pixels[var11++] = var18; } else { - var20 = ((var20 & 16711935) * var17 >> 8 & 16711935) + (var17 * (var20 & 65280) >> 8 & 65280); + var20 = ((var20 & 0xff00ff) * var17 >> 8 & 0xff00ff) + (var17 * (var20 & 0xff00) >> 8 & 0xff00); Rasterizer2D_pixels[var11++] = var18 + var20; } } @@ -592,7 +592,7 @@ public class Rasterizer2D extends DualNode { int var20 = var19 >>> 24; int var21 = 255 - var20; int var22 = Rasterizer2D_pixels[var14]; - int var23 = ((var19 & 16711935) * var20 + (var22 & 16711935) * var21 & -16711936) + (var20 * (var19 & 65280) + var21 * (var22 & 65280) & 16711680) >> 8; + int var23 = ((var19 & 0xff00ff) * var20 + (var22 & 0xff00ff) * var21 & 0xff00ff00) + (var20 * (var19 & 0xff00) + var21 * (var22 & 0xff00) & 0xff0000) >> 8; Rasterizer2D_pixels[var14++] = var23; } diff --git a/runescape-client/src/main/java/Rasterizer3D.java b/runescape-client/src/main/java/Rasterizer3D.java index fe34559f86..709f82988f 100644 --- a/runescape-client/src/main/java/Rasterizer3D.java +++ b/runescape-client/src/main/java/Rasterizer3D.java @@ -819,15 +819,15 @@ public class Rasterizer3D extends Rasterizer2D { do { var2 = Rasterizer3D_colorPalette[var6 >> 8]; var6 += var7; - var2 = (var9 * (var2 & 65280) >> 8 & 65280) + (var9 * (var2 & 16711935) >> 8 & 16711935); + var2 = (var9 * (var2 & 0xff00) >> 8 & 0xff00) + (var9 * (var2 & 0xff00ff) >> 8 & 0xff00ff); var10 = var0[var1]; - var0[var1++] = ((var10 & 16711935) * var8 >> 8 & 16711935) + var2 + (var8 * (var10 & 65280) >> 8 & 65280); + var0[var1++] = ((var10 & 0xff00ff) * var8 >> 8 & 0xff00ff) + var2 + (var8 * (var10 & 0xff00) >> 8 & 0xff00); var10 = var0[var1]; - var0[var1++] = ((var10 & 16711935) * var8 >> 8 & 16711935) + var2 + (var8 * (var10 & 65280) >> 8 & 65280); + var0[var1++] = ((var10 & 0xff00ff) * var8 >> 8 & 0xff00ff) + var2 + (var8 * (var10 & 0xff00) >> 8 & 0xff00); var10 = var0[var1]; - var0[var1++] = ((var10 & 16711935) * var8 >> 8 & 16711935) + var2 + (var8 * (var10 & 65280) >> 8 & 65280); + var0[var1++] = ((var10 & 0xff00ff) * var8 >> 8 & 0xff00ff) + var2 + (var8 * (var10 & 0xff00) >> 8 & 0xff00); var10 = var0[var1]; - var0[var1++] = ((var10 & 16711935) * var8 >> 8 & 16711935) + var2 + (var8 * (var10 & 65280) >> 8 & 65280); + var0[var1++] = ((var10 & 0xff00ff) * var8 >> 8 & 0xff00ff) + var2 + (var8 * (var10 & 0xff00) >> 8 & 0xff00); --var3; } while(var3 > 0); } @@ -835,11 +835,11 @@ public class Rasterizer3D extends Rasterizer2D { var3 = var5 - var4 & 3; if (var3 > 0) { var2 = Rasterizer3D_colorPalette[var6 >> 8]; - var2 = (var9 * (var2 & 65280) >> 8 & 65280) + (var9 * (var2 & 16711935) >> 8 & 16711935); + var2 = (var9 * (var2 & 0xff00) >> 8 & 0xff00) + (var9 * (var2 & 0xff00ff) >> 8 & 0xff00ff); do { var10 = var0[var1]; - var0[var1++] = ((var10 & 16711935) * var8 >> 8 & 16711935) + var2 + (var8 * (var10 & 65280) >> 8 & 65280); + var0[var1++] = ((var10 & 0xff00ff) * var8 >> 8 & 0xff00ff) + var2 + (var8 * (var10 & 0xff00) >> 8 & 0xff00); --var3; } while(var3 > 0); } @@ -860,9 +860,9 @@ public class Rasterizer3D extends Rasterizer2D { do { var2 = Rasterizer3D_colorPalette[var6 >> 8]; var6 += var7; - var2 = (var9 * (var2 & 65280) >> 8 & 65280) + (var9 * (var2 & 16711935) >> 8 & 16711935); + var2 = (var9 * (var2 & 0xff00) >> 8 & 0xff00) + (var9 * (var2 & 0xff00ff) >> 8 & 0xff00ff); var10 = var0[var1]; - var0[var1++] = ((var10 & 16711935) * var8 >> 8 & 16711935) + var2 + (var8 * (var10 & 65280) >> 8 & 65280); + var0[var1++] = ((var10 & 0xff00ff) * var8 >> 8 & 0xff00ff) + var2 + (var8 * (var10 & 0xff00) >> 8 & 0xff00); --var3; } while(var3 > 0); } @@ -1359,7 +1359,7 @@ public class Rasterizer3D extends Rasterizer2D { } int var6 = Rasterizer3D_alpha; int var7 = 256 - Rasterizer3D_alpha; - var2 = (var7 * (var2 & 65280) >> 8 & 65280) + (var7 * (var2 & 16711935) >> 8 & 16711935); + var2 = (var7 * (var2 & 0xff00) >> 8 & 0xff00) + (var7 * (var2 & 0xff00ff) >> 8 & 0xff00ff); while (true) { --var3; @@ -1374,18 +1374,18 @@ public class Rasterizer3D extends Rasterizer2D { } var8 = var0[var1]; - var0[var1++] = ((var8 & 16711935) * var6 >> 8 & 16711935) + var2 + (var6 * (var8 & 65280) >> 8 & 65280); + var0[var1++] = ((var8 & 0xff00ff) * var6 >> 8 & 0xff00ff) + var2 + (var6 * (var8 & 0xff00) >> 8 & 0xff00); } } var8 = var0[var1]; - var0[var1++] = ((var8 & 16711935) * var6 >> 8 & 16711935) + var2 + (var6 * (var8 & 65280) >> 8 & 65280); + var0[var1++] = ((var8 & 0xff00ff) * var6 >> 8 & 0xff00ff) + var2 + (var6 * (var8 & 0xff00) >> 8 & 0xff00); var8 = var0[var1]; - var0[var1++] = ((var8 & 16711935) * var6 >> 8 & 16711935) + var2 + (var6 * (var8 & 65280) >> 8 & 65280); + var0[var1++] = ((var8 & 0xff00ff) * var6 >> 8 & 0xff00ff) + var2 + (var6 * (var8 & 0xff00) >> 8 & 0xff00); var8 = var0[var1]; - var0[var1++] = ((var8 & 16711935) * var6 >> 8 & 16711935) + var2 + (var6 * (var8 & 65280) >> 8 & 65280); + var0[var1++] = ((var8 & 0xff00ff) * var6 >> 8 & 0xff00ff) + var2 + (var6 * (var8 & 0xff00) >> 8 & 0xff00); var8 = var0[var1]; - var0[var1++] = ((var8 & 16711935) * var6 >> 8 & 16711935) + var2 + (var6 * (var8 & 65280) >> 8 & 65280); + var0[var1++] = ((var8 & 0xff00ff) * var6 >> 8 & 0xff00ff) + var2 + (var6 * (var8 & 0xff00) >> 8 & 0xff00); } } while (true) { @@ -2094,28 +2094,28 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var10000 = var16 + var2; var18 = var20; var19 = var21; @@ -2148,7 +2148,7 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; --var17; } while(var17 > 0); @@ -2157,49 +2157,49 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; @@ -2235,7 +2235,7 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; @@ -2289,28 +2289,28 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var10000 = var16 + var2; var18 = var20; var19 = var21; @@ -2343,7 +2343,7 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; --var17; } while(var17 > 0); @@ -2352,49 +2352,49 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; @@ -2430,7 +2430,7 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; @@ -3116,28 +3116,28 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var7 += var8; var15 = var7 >> 8; @@ -3149,7 +3149,7 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { var3 = var1[(var2 >>> 26) + (var2 & 4032)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; --var17; } while(var17 > 0); @@ -3158,49 +3158,49 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; @@ -3215,7 +3215,7 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { if ((var3 = var1[(var2 >>> 26) + (var2 & 4032)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; @@ -3259,28 +3259,28 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; var7 += var8; var15 = var7 >> 8; @@ -3292,7 +3292,7 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { var3 = var1[(var2 & 16256) + (var2 >>> 25)]; - var0[var4++] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4++] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; var2 += var16; --var17; } while(var17 > 0); @@ -3301,49 +3301,49 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; var2 += var16; if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; @@ -3358,7 +3358,7 @@ public class Rasterizer3D extends Rasterizer2D { if (var17 > 0) { do { if ((var3 = var1[(var2 & 16256) + (var2 >>> 25)]) != 0) { - var0[var4] = (var15 * (var3 & 65280) & 16711680) + ((var3 & 16711935) * var15 & -16711936) >> 8; + var0[var4] = (var15 * (var3 & 0xff00) & 0xff0000) + ((var3 & 0xff00ff) * var15 & 0xff00ff00) >> 8; } ++var4; diff --git a/runescape-client/src/main/java/RouteStrategy.java b/runescape-client/src/main/java/RouteStrategy.java index 13ee29c6bb..c2aa916453 100644 --- a/runescape-client/src/main/java/RouteStrategy.java +++ b/runescape-client/src/main/java/RouteStrategy.java @@ -55,7 +55,7 @@ public abstract class RouteStrategy { ) static final void method3593() { Client.packetWriter.close(); - class197.FloorUnderlayDefinition_clearCached(); + class197.FloorOverlayDefinition_clearCached(); FloorUnderlayDefinition.FloorUnderlayDefinition_cached.clear(); KitDefinition.KitDefinition_cached.clear(); TileItemPile.ObjectDefinition_clearCached(); diff --git a/runescape-client/src/main/java/Scene.java b/runescape-client/src/main/java/Scene.java index ccb9fb79c4..216d9ceeba 100644 --- a/runescape-client/src/main/java/Scene.java +++ b/runescape-client/src/main/java/Scene.java @@ -1058,37 +1058,37 @@ public class Scene { @ObfuscatedName("ak") @Export("draw") - public void draw(int var1, int var2, int var3, int var4, int var5, int var6) { - if (var1 < 0) { - var1 = 0; - } else if (var1 >= this.xSize * 128) { - var1 = this.xSize * 128 - 1; + public void draw(int camX, int camY, int camZ, int camPitch, int camYaw, int plane) { + if (camX < 0) { + camX = 0; + } else if (camX >= this.xSize * 128) { + camX = this.xSize * 128 - 1; } - if (var3 < 0) { - var3 = 0; - } else if (var3 >= this.ySize * 128) { - var3 = this.ySize * 128 - 1; + if (camZ < 0) { + camZ = 0; + } else if (camZ >= this.ySize * 128) { + camZ = this.ySize * 128 - 1; } - if (var4 < 128) { - var4 = 128; - } else if (var4 > 383) { - var4 = 383; + if (camPitch < 128) { + camPitch = 128; + } else if (camPitch > 383) { + camPitch = 383; } ++Scene_drawnCount; - Scene_cameraPitchSine = Rasterizer3D.Rasterizer3D_sine[var4]; - Scene_cameraPitchCosine = Rasterizer3D.Rasterizer3D_cosine[var4]; - Scene_cameraYawSine = Rasterizer3D.Rasterizer3D_sine[var5]; - Scene_cameraYawCosine = Rasterizer3D.Rasterizer3D_cosine[var5]; - visibleTiles = visibilityMap[(var4 - 128) / 32][var5 / 64]; - Scene_cameraX = var1; - Scene_cameraY = var2; - Scene_cameraZ = var3; - Scene_cameraXTile = var1 / 128; - Scene_cameraYTile = var3 / 128; - Scene_plane = var6; + Scene_cameraPitchSine = Rasterizer3D.Rasterizer3D_sine[camPitch]; + Scene_cameraPitchCosine = Rasterizer3D.Rasterizer3D_cosine[camPitch]; + Scene_cameraYawSine = Rasterizer3D.Rasterizer3D_sine[camYaw]; + Scene_cameraYawCosine = Rasterizer3D.Rasterizer3D_cosine[camYaw]; + visibleTiles = visibilityMap[(camPitch - 128) / 32][camYaw / 64]; + Scene_cameraX = camX; + Scene_cameraY = camY; + Scene_cameraZ = camZ; + Scene_cameraXTile = camX / 128; + Scene_cameraYTile = camZ / 128; + Scene_plane = plane; Scene_cameraXTileMin = Scene_cameraXTile - 25; if (Scene_cameraXTileMin < 0) { Scene_cameraXTileMin = 0; @@ -1122,22 +1122,23 @@ public class Scene { for (var9 = Scene_cameraXTileMin; var9 < Scene_cameraXTileMax; ++var9) { for (var10 = Scene_cameraYTileMin; var10 < Scene_cameraYTileMax; ++var10) { Tile var11 = var8[var9][var10]; - if (var11 != null) { - if (var11.minPlane > var6 || !visibleTiles[var9 - Scene_cameraXTile + 25][var10 - Scene_cameraYTile + 25] && this.tileHeights[var7][var9][var10] - var2 < 2000) { - var11.drawPrimary = false; - var11.drawSecondary = false; - var11.drawGameObjectEdges = 0; + if (var11 == null) { + continue; + } + if (var11.minPlane > plane || !visibleTiles[var9 - Scene_cameraXTile + 25][var10 - Scene_cameraYTile + 25] && this.tileHeights[var7][var9][var10] - camY < 2000) { + var11.drawPrimary = false; + var11.drawSecondary = false; + var11.drawGameObjectEdges = 0; + } else { + var11.drawPrimary = true; + var11.drawSecondary = true; + if (var11.gameObjectsCount > 0) { + var11.drawGameObjects = true; } else { - var11.drawPrimary = true; - var11.drawSecondary = true; - if (var11.gameObjectsCount > 0) { - var11.drawGameObjects = true; - } else { - var11.drawGameObjects = false; - } - - ++tileUpdateCount; + var11.drawGameObjects = false; } + + ++tileUpdateCount; } } } @@ -1154,47 +1155,48 @@ public class Scene { for (var9 = -25; var9 <= 0; ++var9) { var10 = var9 + Scene_cameraXTile; var16 = Scene_cameraXTile - var9; - if (var10 >= Scene_cameraXTileMin || var16 < Scene_cameraXTileMax) { - for (var12 = -25; var12 <= 0; ++var12) { - var13 = var12 + Scene_cameraYTile; - var14 = Scene_cameraYTile - var12; - if (var10 >= Scene_cameraXTileMin) { - if (var13 >= Scene_cameraYTileMin) { - var15 = var8[var10][var13]; - if (var15 != null && var15.drawPrimary) { - this.drawTile(var15, true); - } - } - - if (var14 < Scene_cameraYTileMax) { - var15 = var8[var10][var14]; - if (var15 != null && var15.drawPrimary) { - this.drawTile(var15, true); - } + if (var10 < Scene_cameraXTileMin && var16 >= Scene_cameraXTileMax) { + continue; + } + for (var12 = -25; var12 <= 0; ++var12) { + var13 = var12 + Scene_cameraYTile; + var14 = Scene_cameraYTile - var12; + if (var10 >= Scene_cameraXTileMin) { + if (var13 >= Scene_cameraYTileMin) { + var15 = var8[var10][var13]; + if (var15 != null && var15.drawPrimary) { + this.drawTile(var15, true); } } - if (var16 < Scene_cameraXTileMax) { - if (var13 >= Scene_cameraYTileMin) { - var15 = var8[var16][var13]; - if (var15 != null && var15.drawPrimary) { - this.drawTile(var15, true); - } + if (var14 < Scene_cameraYTileMax) { + var15 = var8[var10][var14]; + if (var15 != null && var15.drawPrimary) { + this.drawTile(var15, true); } + } + } - if (var14 < Scene_cameraYTileMax) { - var15 = var8[var16][var14]; - if (var15 != null && var15.drawPrimary) { - this.drawTile(var15, true); - } + if (var16 < Scene_cameraXTileMax) { + if (var13 >= Scene_cameraYTileMin) { + var15 = var8[var16][var13]; + if (var15 != null && var15.drawPrimary) { + this.drawTile(var15, true); } } - if (tileUpdateCount == 0) { - checkClick = false; - return; + if (var14 < Scene_cameraYTileMax) { + var15 = var8[var16][var14]; + if (var15 != null && var15.drawPrimary) { + this.drawTile(var15, true); + } } } + + if (tileUpdateCount == 0) { + checkClick = false; + return; + } } } } @@ -1205,47 +1207,48 @@ public class Scene { for (var9 = -25; var9 <= 0; ++var9) { var10 = var9 + Scene_cameraXTile; var16 = Scene_cameraXTile - var9; - if (var10 >= Scene_cameraXTileMin || var16 < Scene_cameraXTileMax) { - for (var12 = -25; var12 <= 0; ++var12) { - var13 = var12 + Scene_cameraYTile; - var14 = Scene_cameraYTile - var12; - if (var10 >= Scene_cameraXTileMin) { - if (var13 >= Scene_cameraYTileMin) { - var15 = var8[var10][var13]; - if (var15 != null && var15.drawPrimary) { - this.drawTile(var15, false); - } - } - - if (var14 < Scene_cameraYTileMax) { - var15 = var8[var10][var14]; - if (var15 != null && var15.drawPrimary) { - this.drawTile(var15, false); - } + if (var10 < Scene_cameraXTileMin && var16 >= Scene_cameraXTileMax) { + continue; + } + for (var12 = -25; var12 <= 0; ++var12) { + var13 = var12 + Scene_cameraYTile; + var14 = Scene_cameraYTile - var12; + if (var10 >= Scene_cameraXTileMin) { + if (var13 >= Scene_cameraYTileMin) { + var15 = var8[var10][var13]; + if (var15 != null && var15.drawPrimary) { + this.drawTile(var15, false); } } - if (var16 < Scene_cameraXTileMax) { - if (var13 >= Scene_cameraYTileMin) { - var15 = var8[var16][var13]; - if (var15 != null && var15.drawPrimary) { - this.drawTile(var15, false); - } + if (var14 < Scene_cameraYTileMax) { + var15 = var8[var10][var14]; + if (var15 != null && var15.drawPrimary) { + this.drawTile(var15, false); } + } + } - if (var14 < Scene_cameraYTileMax) { - var15 = var8[var16][var14]; - if (var15 != null && var15.drawPrimary) { - this.drawTile(var15, false); - } + if (var16 < Scene_cameraXTileMax) { + if (var13 >= Scene_cameraYTileMin) { + var15 = var8[var16][var13]; + if (var15 != null && var15.drawPrimary) { + this.drawTile(var15, false); } } - if (tileUpdateCount == 0) { - checkClick = false; - return; + if (var14 < Scene_cameraYTileMax) { + var15 = var8[var16][var14]; + if (var15 != null && var15.drawPrimary) { + this.drawTile(var15, false); + } } } + + if (tileUpdateCount == 0) { + checkClick = false; + return; + } } } } diff --git a/runescape-client/src/main/java/ScriptFrame.java b/runescape-client/src/main/java/ScriptFrame.java index adec0358d5..c947ac835f 100644 --- a/runescape-client/src/main/java/ScriptFrame.java +++ b/runescape-client/src/main/java/ScriptFrame.java @@ -353,10 +353,10 @@ public class ScriptFrame { signature = "(III)V", garbageValue = "-881674814" ) - static void method1086(int var0, int var1) { + static void resumePauseWidget(int parentID, int childID) { PacketBufferNode var2 = Archive.method4265(ClientPacket.field2273, Client.packetWriter.isaacCipher); - var2.packetBuffer.writeIntLE16(var0); - var2.packetBuffer.method5530(var1); + var2.packetBuffer.writeIntLE16(parentID); + var2.packetBuffer.method5530(childID); Client.packetWriter.method2219(var2); } diff --git a/runescape-client/src/main/java/ServerBuild.java b/runescape-client/src/main/java/ServerBuild.java index e7c9432a08..9efa442180 100644 --- a/runescape-client/src/main/java/ServerBuild.java +++ b/runescape-client/src/main/java/ServerBuild.java @@ -32,7 +32,7 @@ public class ServerBuild { @Export("WIP") static final ServerBuild WIP; @ObfuscatedName("f") - static int[] field3103; + static int[] Tiles_hue; @ObfuscatedName("k") @Export("name") public final String name; diff --git a/runescape-client/src/main/java/Skeleton.java b/runescape-client/src/main/java/Skeleton.java index 05e95d6a64..f4de471815 100644 --- a/runescape-client/src/main/java/Skeleton.java +++ b/runescape-client/src/main/java/Skeleton.java @@ -181,7 +181,7 @@ public class Skeleton extends Node { Calendar.field2507 = var12; } - Strings.method4120(var6); + Strings.invalidateWidget(var6); return 1; } Widget var9; @@ -189,13 +189,13 @@ public class Skeleton extends Node { var9 = var2 ? Interpreter.field1111 : Calendar.field2507; Widget var10 = class80.getWidget(var9.id); var10.children[var9.childIndex] = null; - Strings.method4120(var10); + Strings.invalidateWidget(var10); return 1; } if (var0 == ScriptOpcodes.CC_DELETEALL) { var9 = class80.getWidget(Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]); var9.children = null; - Strings.method4120(var9); + Strings.invalidateWidget(var9); return 1; } if (var0 == ScriptOpcodes.CC_FIND) { diff --git a/runescape-client/src/main/java/SoundSystem.java b/runescape-client/src/main/java/SoundSystem.java index a53933d2bf..4d296f26dc 100644 --- a/runescape-client/src/main/java/SoundSystem.java +++ b/runescape-client/src/main/java/SoundSystem.java @@ -65,16 +65,13 @@ public class SoundSystem implements Runnable { ByteArrayPool.ByteArrayPool_medium[++ByteArrayPool.ByteArrayPool_mediumCount - 1] = var0; } else if (var0.length == 30000 && ByteArrayPool.ByteArrayPool_largeCount < 50) { ByteArrayPool.ByteArrayPool_large[++ByteArrayPool.ByteArrayPool_largeCount - 1] = var0; - } else { - if (class189.ByteArrayPool_arrays != null) { - for (int var1 = 0; var1 < ByteArrayPool.ByteArrayPool_alternativeSizes.length; ++var1) { - if (var0.length == ByteArrayPool.ByteArrayPool_alternativeSizes[var1] && class43.ByteArrayPool_altSizeArrayCounts[var1] < class189.ByteArrayPool_arrays[var1].length) { - class189.ByteArrayPool_arrays[var1][class43.ByteArrayPool_altSizeArrayCounts[var1]++] = var0; - return; - } + } else if (class189.ByteArrayPool_arrays != null) { + for (int var1 = 0; var1 < ByteArrayPool.ByteArrayPool_alternativeSizes.length; ++var1) { + if (var0.length == ByteArrayPool.ByteArrayPool_alternativeSizes[var1] && class43.ByteArrayPool_altSizeArrayCounts[var1] < class189.ByteArrayPool_arrays[var1].length) { + class189.ByteArrayPool_arrays[var1][class43.ByteArrayPool_altSizeArrayCounts[var1]++] = var0; + return; } } - } } diff --git a/runescape-client/src/main/java/Sprite.java b/runescape-client/src/main/java/Sprite.java index a32ba8c64c..4e64c8ee68 100644 --- a/runescape-client/src/main/java/Sprite.java +++ b/runescape-client/src/main/java/Sprite.java @@ -16,11 +16,11 @@ public final class Sprite extends Rasterizer2D { @Export("subHeight") public int subHeight; @ObfuscatedName("p") - @Export("yOffset") - public int yOffset; - @ObfuscatedName("k") @Export("xOffset") - int xOffset; + public int xOffset; + @ObfuscatedName("k") + @Export("yOffset") + int yOffset; @ObfuscatedName("l") @Export("width") public int width; @@ -28,16 +28,16 @@ public final class Sprite extends Rasterizer2D { @Export("height") public int height; - public Sprite(int[] var1, int var2, int var3) { - this.pixels = var1; - this.subWidth = this.width = var2; - this.subHeight = this.height = var3; - this.xOffset = 0; + public Sprite(int[] px, int w, int h) { + this.pixels = px; + this.subWidth = this.width = w; + this.subHeight = this.height = h; this.yOffset = 0; + this.xOffset = 0; } - public Sprite(int var1, int var2) { - this(new int[var2 * var1], var1, var2); + public Sprite(int w, int h) { + this(new int[h * w], w, h); } Sprite() { @@ -52,8 +52,8 @@ public final class Sprite extends Rasterizer2D { Sprite var1 = new Sprite(this.subWidth, this.subHeight); var1.width = this.width; var1.height = this.height; - var1.yOffset = this.width - this.subWidth - this.yOffset; - var1.xOffset = this.xOffset; + var1.xOffset = this.width - this.subWidth - this.xOffset; + var1.yOffset = this.yOffset; for (int var2 = 0; var2 < this.subHeight; ++var2) { for (int var3 = 0; var3 < this.subWidth; ++var3) { @@ -74,7 +74,7 @@ public final class Sprite extends Rasterizer2D { for (int var2 = 0; var2 < this.subHeight; ++var2) { for (int var3 = 0; var3 < this.subWidth; ++var3) { - var1.pixels[var3 + (var2 + this.xOffset) * this.width + this.yOffset] = this.pixels[var3 + var2 * this.subWidth]; + var1.pixels[var3 + (var2 + this.yOffset) * this.width + this.xOffset] = this.pixels[var3 + var2 * this.subWidth]; } } @@ -90,66 +90,70 @@ public final class Sprite extends Rasterizer2D { @ObfuscatedName("p") @Export("normalize") public void normalize() { - if (this.subWidth != this.width || this.subHeight != this.height) { - int[] var1 = new int[this.width * this.height]; - - for (int var2 = 0; var2 < this.subHeight; ++var2) { - for (int var3 = 0; var3 < this.subWidth; ++var3) { - var1[var3 + (var2 + this.xOffset) * this.width + this.yOffset] = this.pixels[var3 + var2 * this.subWidth]; - } - } - - this.pixels = var1; - this.subWidth = this.width; - this.subHeight = this.height; - this.yOffset = 0; - this.xOffset = 0; + if (this.subWidth == this.width && this.subHeight == this.height) { + return; } + int[] var1 = new int[this.width * this.height]; + + for (int var2 = 0; var2 < this.subHeight; ++var2) { + for (int var3 = 0; var3 < this.subWidth; ++var3) { + var1[var3 + (var2 + this.yOffset) * this.width + this.xOffset] = this.pixels[var3 + var2 * this.subWidth]; + } + } + + this.pixels = var1; + this.subWidth = this.width; + this.subHeight = this.height; + this.xOffset = 0; + this.yOffset = 0; } @ObfuscatedName("k") - public void method6115(int var1) { - if (this.subWidth != this.width || this.subHeight != this.height) { - int var2 = var1; - if (var1 > this.yOffset) { - var2 = this.yOffset; - } - - int var3 = var1; - if (var1 + this.yOffset + this.subWidth > this.width) { - var3 = this.width - this.yOffset - this.subWidth; - } - - int var4 = var1; - if (var1 > this.xOffset) { - var4 = this.xOffset; - } - - int var5 = var1; - if (var1 + this.xOffset + this.subHeight > this.height) { - var5 = this.height - this.xOffset - this.subHeight; - } - - int var6 = var2 + var3 + this.subWidth; - int var7 = var4 + var5 + this.subHeight; - int[] var8 = new int[var6 * var7]; - - for (int var9 = 0; var9 < this.subHeight; ++var9) { - for (int var10 = 0; var10 < this.subWidth; ++var10) { - var8[var6 * (var9 + var4) + var10 + var2] = this.pixels[var10 + var9 * this.subWidth]; - } - } - - this.pixels = var8; - this.subWidth = var6; - this.subHeight = var7; - this.yOffset -= var2; - this.xOffset -= var4; + @Export("pad") + public void pad(int amount) { + if (this.subWidth == this.width && this.subHeight == this.height) { + return; } + int var2 = amount; + if (amount > this.xOffset) { + var2 = this.xOffset; + } + + int var3 = amount; + if (amount + this.xOffset + this.subWidth > this.width) { + var3 = this.width - this.xOffset - this.subWidth; + } + + int var4 = amount; + if (amount > this.yOffset) { + var4 = this.yOffset; + } + + int var5 = amount; + if (amount + this.yOffset + this.subHeight > this.height) { + var5 = this.height - this.yOffset - this.subHeight; + } + + int var6 = var2 + var3 + this.subWidth; + int var7 = var4 + var5 + this.subHeight; + int[] var8 = new int[var6 * var7]; + + for (int var9 = 0; var9 < this.subHeight; ++var9) { + for (int var10 = 0; var10 < this.subWidth; ++var10) { + var8[var6 * (var9 + var4) + var10 + var2] = this.pixels[var10 + var9 * this.subWidth]; + } + } + + this.pixels = var8; + this.subWidth = var6; + this.subHeight = var7; + this.xOffset -= var2; + this.yOffset -= var4; } @ObfuscatedName("l") - public void method6117() { + @Export("flipHorizontally") + public void flipHorizontally() { int[] var1 = new int[this.subWidth * this.subHeight]; int var2 = 0; @@ -160,11 +164,12 @@ public final class Sprite extends Rasterizer2D { } this.pixels = var1; - this.yOffset = this.width - this.subWidth - this.yOffset; + this.xOffset = this.width - this.subWidth - this.xOffset; } @ObfuscatedName("b") - public void method6128() { + @Export("flipVertically") + public void flipVertically() { int[] var1 = new int[this.subWidth * this.subHeight]; int var2 = 0; @@ -175,12 +180,12 @@ public final class Sprite extends Rasterizer2D { } this.pixels = var1; - this.xOffset = this.height - this.subHeight - this.xOffset; + this.yOffset = this.height - this.subHeight - this.yOffset; } @ObfuscatedName("i") @Export("outline") - public void outline(int var1) { + public void outline(int color) { int[] var2 = new int[this.subWidth * this.subHeight]; int var3 = 0; @@ -189,13 +194,13 @@ public final class Sprite extends Rasterizer2D { int var6 = this.pixels[var3]; if (var6 == 0) { if (var5 > 0 && this.pixels[var3 - 1] != 0) { - var6 = var1; + var6 = color; } else if (var4 > 0 && this.pixels[var3 - this.subWidth] != 0) { - var6 = var1; + var6 = color; } else if (var5 < this.subWidth - 1 && this.pixels[var3 + 1] != 0) { - var6 = var1; + var6 = color; } else if (var4 < this.subHeight - 1 && this.pixels[var3 + this.subWidth] != 0) { - var6 = var1; + var6 = color; } } @@ -223,364 +228,369 @@ public final class Sprite extends Rasterizer2D { @ObfuscatedName("u") @Export("drawAt") - public void drawAt(int var1, int var2) { - var1 += this.yOffset; - var2 += this.xOffset; - int var3 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; + public void drawAt(int x, int y) { + x += this.xOffset; + y += this.yOffset; + int var3 = x + y * Rasterizer2D.Rasterizer2D_width; int var4 = 0; int var5 = this.subHeight; int var6 = this.subWidth; int var7 = Rasterizer2D.Rasterizer2D_width - var6; int var8 = 0; int var9; - if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { - var9 = Rasterizer2D.Rasterizer2D_yClipStart - var2; + if (y < Rasterizer2D.Rasterizer2D_yClipStart) { + var9 = Rasterizer2D.Rasterizer2D_yClipStart - y; var5 -= var9; - var2 = Rasterizer2D.Rasterizer2D_yClipStart; + y = Rasterizer2D.Rasterizer2D_yClipStart; var4 += var9 * var6; var3 += var9 * Rasterizer2D.Rasterizer2D_width; } - if (var5 + var2 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var5 -= var5 + var2 - Rasterizer2D.Rasterizer2D_yClipEnd; + if (var5 + y > Rasterizer2D.Rasterizer2D_yClipEnd) { + var5 -= var5 + y - Rasterizer2D.Rasterizer2D_yClipEnd; } - if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { - var9 = Rasterizer2D.Rasterizer2D_xClipStart - var1; + if (x < Rasterizer2D.Rasterizer2D_xClipStart) { + var9 = Rasterizer2D.Rasterizer2D_xClipStart - x; var6 -= var9; - var1 = Rasterizer2D.Rasterizer2D_xClipStart; + x = Rasterizer2D.Rasterizer2D_xClipStart; var4 += var9; var3 += var9; var8 += var9; var7 += var9; } - if (var6 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var9 = var6 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; + if (var6 + x > Rasterizer2D.Rasterizer2D_xClipEnd) { + var9 = var6 + x - Rasterizer2D.Rasterizer2D_xClipEnd; var6 -= var9; var8 += var9; var7 += var9; } if (var6 > 0 && var5 > 0) { - Sprite_something(Rasterizer2D.Rasterizer2D_pixels, this.pixels, var4, var3, var6, var5, var7, var8); + Sprite_draw(Rasterizer2D.Rasterizer2D_pixels, this.pixels, var4, var3, var6, var5, var7, var8); } } @ObfuscatedName("r") - @Export("drawAt2") - public void drawAt2(int var1, int var2) { - var1 += this.yOffset; - var2 += this.xOffset; - int var3 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; + @Export("drawTransBgAt") + public void drawTransBgAt(int x, int y) { + x += this.xOffset; + y += this.yOffset; + int var3 = x + y * Rasterizer2D.Rasterizer2D_width; int var4 = 0; int var5 = this.subHeight; int var6 = this.subWidth; int var7 = Rasterizer2D.Rasterizer2D_width - var6; int var8 = 0; int var9; - if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { - var9 = Rasterizer2D.Rasterizer2D_yClipStart - var2; + if (y < Rasterizer2D.Rasterizer2D_yClipStart) { + var9 = Rasterizer2D.Rasterizer2D_yClipStart - y; var5 -= var9; - var2 = Rasterizer2D.Rasterizer2D_yClipStart; + y = Rasterizer2D.Rasterizer2D_yClipStart; var4 += var9 * var6; var3 += var9 * Rasterizer2D.Rasterizer2D_width; } - if (var5 + var2 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var5 -= var5 + var2 - Rasterizer2D.Rasterizer2D_yClipEnd; + if (var5 + y > Rasterizer2D.Rasterizer2D_yClipEnd) { + var5 -= var5 + y - Rasterizer2D.Rasterizer2D_yClipEnd; } - if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { - var9 = Rasterizer2D.Rasterizer2D_xClipStart - var1; + if (x < Rasterizer2D.Rasterizer2D_xClipStart) { + var9 = Rasterizer2D.Rasterizer2D_xClipStart - x; var6 -= var9; - var1 = Rasterizer2D.Rasterizer2D_xClipStart; + x = Rasterizer2D.Rasterizer2D_xClipStart; var4 += var9; var3 += var9; var8 += var9; var7 += var9; } - if (var6 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var9 = var6 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; + if (var6 + x > Rasterizer2D.Rasterizer2D_xClipEnd) { + var9 = var6 + x - Rasterizer2D.Rasterizer2D_xClipEnd; var6 -= var9; var8 += var9; var7 += var9; } if (var6 > 0 && var5 > 0) { - Sprite_andAnotherOne(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var4, var3, var6, var5, var7, var8); + Sprite_drawTransBg(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var4, var3, var6, var5, var7, var8); } } @ObfuscatedName("y") - public void method6125(int var1, int var2, int var3, int var4) { - if (var3 > 0 && var4 > 0) { - int var5 = this.subWidth; - int var6 = this.subHeight; - int var7 = 0; - int var8 = 0; - int var9 = this.width; - int var10 = this.height; - int var11 = (var9 << 16) / var3; - int var12 = (var10 << 16) / var4; - int var13; - if (this.yOffset > 0) { - var13 = (var11 + (this.yOffset << 16) - 1) / var11; - var1 += var13; - var7 += var13 * var11 - (this.yOffset << 16); - } - - if (this.xOffset > 0) { - var13 = (var12 + (this.xOffset << 16) - 1) / var12; - var2 += var13; - var8 += var13 * var12 - (this.xOffset << 16); - } - - if (var5 < var9) { - var3 = (var11 + ((var5 << 16) - var7) - 1) / var11; - } - - if (var6 < var10) { - var4 = (var12 + ((var6 << 16) - var8) - 1) / var12; - } - - var13 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; - int var14 = Rasterizer2D.Rasterizer2D_width - var3; - if (var2 + var4 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var4 -= var2 + var4 - Rasterizer2D.Rasterizer2D_yClipEnd; - } - - int var15; - if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { - var15 = Rasterizer2D.Rasterizer2D_yClipStart - var2; - var4 -= var15; - var13 += var15 * Rasterizer2D.Rasterizer2D_width; - var8 += var12 * var15; - } - - if (var3 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var15 = var3 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; - var3 -= var15; - var14 += var15; - } - - if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { - var15 = Rasterizer2D.Rasterizer2D_xClipStart - var1; - var3 -= var15; - var13 += var15; - var7 += var11 * var15; - var14 += var15; - } - - Sprite_somethingElse(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var7, var8, var13, var14, var3, var4, var11, var12, var5); + @Export("drawScaledAt") + public void drawScaledAt(int x, int y, int width, int height) { + if (width <= 0 || height <= 0) { + return; } + int var5 = this.subWidth; + int var6 = this.subHeight; + int var7 = 0; + int var8 = 0; + int var9 = this.width; + int var10 = this.height; + int var11 = (var9 << 16) / width; + int var12 = (var10 << 16) / height; + int var13; + if (this.xOffset > 0) { + var13 = (var11 + (this.xOffset << 16) - 1) / var11; + x += var13; + var7 += var13 * var11 - (this.xOffset << 16); + } + + if (this.yOffset > 0) { + var13 = (var12 + (this.yOffset << 16) - 1) / var12; + y += var13; + var8 += var13 * var12 - (this.yOffset << 16); + } + + if (var5 < var9) { + width = (var11 + ((var5 << 16) - var7) - 1) / var11; + } + + if (var6 < var10) { + height = (var12 + ((var6 << 16) - var8) - 1) / var12; + } + + var13 = x + y * Rasterizer2D.Rasterizer2D_width; + int var14 = Rasterizer2D.Rasterizer2D_width - width; + if (y + height > Rasterizer2D.Rasterizer2D_yClipEnd) { + height -= y + height - Rasterizer2D.Rasterizer2D_yClipEnd; + } + + int var15; + if (y < Rasterizer2D.Rasterizer2D_yClipStart) { + var15 = Rasterizer2D.Rasterizer2D_yClipStart - y; + height -= var15; + var13 += var15 * Rasterizer2D.Rasterizer2D_width; + var8 += var12 * var15; + } + + if (width + x > Rasterizer2D.Rasterizer2D_xClipEnd) { + var15 = width + x - Rasterizer2D.Rasterizer2D_xClipEnd; + width -= var15; + var14 += var15; + } + + if (x < Rasterizer2D.Rasterizer2D_xClipStart) { + var15 = Rasterizer2D.Rasterizer2D_xClipStart - x; + width -= var15; + var13 += var15; + var7 += var11 * var15; + var14 += var15; + } + + Sprite_drawScaled(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var7, var8, var13, var14, width, height, var11, var12, var5); } @ObfuscatedName("a") - @Export("drawAtTransOverlay") - public void drawAtTransOverlay(int var1, int var2, int var3, int var4) { - if (var3 == 256) { - this.drawAt2(var1, var2); - } else { - var1 += this.yOffset; - var2 += this.xOffset; - int var5 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; - int var6 = 0; - int var7 = this.subHeight; - int var8 = this.subWidth; - int var9 = Rasterizer2D.Rasterizer2D_width - var8; - int var10 = 0; - int var11; - if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { - var11 = Rasterizer2D.Rasterizer2D_yClipStart - var2; - var7 -= var11; - var2 = Rasterizer2D.Rasterizer2D_yClipStart; - var6 += var11 * var8; - var5 += var11 * Rasterizer2D.Rasterizer2D_width; - } + @Export("drawTransOverlayAt") + public void drawTransOverlayAt(int x, int y, int overlayOpacity, int overlayColor) { + if (overlayOpacity == 256) { + this.drawTransBgAt(x, y); + return; + } + x += this.xOffset; + y += this.yOffset; + int var5 = x + y * Rasterizer2D.Rasterizer2D_width; + int var6 = 0; + int var7 = this.subHeight; + int var8 = this.subWidth; + int var9 = Rasterizer2D.Rasterizer2D_width - var8; + int var10 = 0; + int var11; + if (y < Rasterizer2D.Rasterizer2D_yClipStart) { + var11 = Rasterizer2D.Rasterizer2D_yClipStart - y; + var7 -= var11; + y = Rasterizer2D.Rasterizer2D_yClipStart; + var6 += var11 * var8; + var5 += var11 * Rasterizer2D.Rasterizer2D_width; + } - if (var7 + var2 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var7 -= var7 + var2 - Rasterizer2D.Rasterizer2D_yClipEnd; - } + if (var7 + y > Rasterizer2D.Rasterizer2D_yClipEnd) { + var7 -= var7 + y - Rasterizer2D.Rasterizer2D_yClipEnd; + } - if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { - var11 = Rasterizer2D.Rasterizer2D_xClipStart - var1; - var8 -= var11; - var1 = Rasterizer2D.Rasterizer2D_xClipStart; - var6 += var11; - var5 += var11; - var10 += var11; - var9 += var11; - } + if (x < Rasterizer2D.Rasterizer2D_xClipStart) { + var11 = Rasterizer2D.Rasterizer2D_xClipStart - x; + var8 -= var11; + x = Rasterizer2D.Rasterizer2D_xClipStart; + var6 += var11; + var5 += var11; + var10 += var11; + var9 += var11; + } - if (var8 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var11 = var8 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; - var8 -= var11; - var10 += var11; - var9 += var11; - } + if (var8 + x > Rasterizer2D.Rasterizer2D_xClipEnd) { + var11 = var8 + x - Rasterizer2D.Rasterizer2D_xClipEnd; + var8 -= var11; + var10 += var11; + var9 += var11; + } - if (var8 > 0 && var7 > 0) { - Sprite_anotherOne(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var6, var5, var8, var7, var9, var10, var3, var4); - } + if (var8 > 0 && var7 > 0) { + Sprite_drawTransOverlay(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var6, var5, var8, var7, var9, var10, overlayOpacity, overlayColor); } } @ObfuscatedName("o") - public void method6129(int var1, int var2, int var3) { - var1 += this.yOffset; - var2 += this.xOffset; - int var4 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; + @Export("drawTransAt") + public void drawTransAt(int x, int y, int opacity) { + x += this.xOffset; + y += this.yOffset; + int var4 = x + y * Rasterizer2D.Rasterizer2D_width; int var5 = 0; int var6 = this.subHeight; int var7 = this.subWidth; int var8 = Rasterizer2D.Rasterizer2D_width - var7; int var9 = 0; int var10; - if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { - var10 = Rasterizer2D.Rasterizer2D_yClipStart - var2; + if (y < Rasterizer2D.Rasterizer2D_yClipStart) { + var10 = Rasterizer2D.Rasterizer2D_yClipStart - y; var6 -= var10; - var2 = Rasterizer2D.Rasterizer2D_yClipStart; + y = Rasterizer2D.Rasterizer2D_yClipStart; var5 += var10 * var7; var4 += var10 * Rasterizer2D.Rasterizer2D_width; } - if (var6 + var2 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var6 -= var6 + var2 - Rasterizer2D.Rasterizer2D_yClipEnd; + if (var6 + y > Rasterizer2D.Rasterizer2D_yClipEnd) { + var6 -= var6 + y - Rasterizer2D.Rasterizer2D_yClipEnd; } - if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { - var10 = Rasterizer2D.Rasterizer2D_xClipStart - var1; + if (x < Rasterizer2D.Rasterizer2D_xClipStart) { + var10 = Rasterizer2D.Rasterizer2D_xClipStart - x; var7 -= var10; - var1 = Rasterizer2D.Rasterizer2D_xClipStart; + x = Rasterizer2D.Rasterizer2D_xClipStart; var5 += var10; var4 += var10; var9 += var10; var8 += var10; } - if (var7 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var10 = var7 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; + if (var7 + x > Rasterizer2D.Rasterizer2D_xClipEnd) { + var10 = var7 + x - Rasterizer2D.Rasterizer2D_xClipEnd; var7 -= var10; var9 += var10; var8 += var10; } if (var7 > 0 && var6 > 0) { - Sprite_alpha1(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var5, var4, var7, var6, var8, var9, var3); + Sprite_drawTransparent(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var5, var4, var7, var6, var8, var9, opacity); } } @ObfuscatedName("s") - public void method6131(int var1, int var2, int var3, int var4, int var5) { - if (var3 > 0 && var4 > 0) { - int var6 = this.subWidth; - int var7 = this.subHeight; - int var8 = 0; - int var9 = 0; - int var10 = this.width; - int var11 = this.height; - int var12 = (var10 << 16) / var3; - int var13 = (var11 << 16) / var4; - int var14; - if (this.yOffset > 0) { - var14 = (var12 + (this.yOffset << 16) - 1) / var12; - var1 += var14; - var8 += var14 * var12 - (this.yOffset << 16); - } - - if (this.xOffset > 0) { - var14 = (var13 + (this.xOffset << 16) - 1) / var13; - var2 += var14; - var9 += var14 * var13 - (this.xOffset << 16); - } - - if (var6 < var10) { - var3 = (var12 + ((var6 << 16) - var8) - 1) / var12; - } - - if (var7 < var11) { - var4 = (var13 + ((var7 << 16) - var9) - 1) / var13; - } - - var14 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; - int var15 = Rasterizer2D.Rasterizer2D_width - var3; - if (var2 + var4 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var4 -= var2 + var4 - Rasterizer2D.Rasterizer2D_yClipEnd; - } - - int var16; - if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { - var16 = Rasterizer2D.Rasterizer2D_yClipStart - var2; - var4 -= var16; - var14 += var16 * Rasterizer2D.Rasterizer2D_width; - var9 += var13 * var16; - } - - if (var3 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var16 = var3 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; - var3 -= var16; - var15 += var16; - } - - if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { - var16 = Rasterizer2D.Rasterizer2D_xClipStart - var1; - var3 -= var16; - var14 += var16; - var8 += var12 * var16; - var15 += var16; - } - - Sprite_alpha2(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var8, var9, var14, var15, var3, var4, var12, var13, var6, var5); + @Export("drawTransScaledAt") + public void drawTransScaledAt(int x, int y, int width, int height, int opacity) { + if (width <= 0 || height <= 0) { + return; } + int var6 = this.subWidth; + int var7 = this.subHeight; + int var8 = 0; + int var9 = 0; + int var10 = this.width; + int var11 = this.height; + int var12 = (var10 << 16) / width; + int var13 = (var11 << 16) / height; + int var14; + if (this.xOffset > 0) { + var14 = (var12 + (this.xOffset << 16) - 1) / var12; + x += var14; + var8 += var14 * var12 - (this.xOffset << 16); + } + + if (this.yOffset > 0) { + var14 = (var13 + (this.yOffset << 16) - 1) / var13; + y += var14; + var9 += var14 * var13 - (this.yOffset << 16); + } + + if (var6 < var10) { + width = (var12 + ((var6 << 16) - var8) - 1) / var12; + } + + if (var7 < var11) { + height = (var13 + ((var7 << 16) - var9) - 1) / var13; + } + + var14 = x + y * Rasterizer2D.Rasterizer2D_width; + int var15 = Rasterizer2D.Rasterizer2D_width - width; + if (y + height > Rasterizer2D.Rasterizer2D_yClipEnd) { + height -= y + height - Rasterizer2D.Rasterizer2D_yClipEnd; + } + + int var16; + if (y < Rasterizer2D.Rasterizer2D_yClipStart) { + var16 = Rasterizer2D.Rasterizer2D_yClipStart - y; + height -= var16; + var14 += var16 * Rasterizer2D.Rasterizer2D_width; + var9 += var13 * var16; + } + + if (width + x > Rasterizer2D.Rasterizer2D_xClipEnd) { + var16 = width + x - Rasterizer2D.Rasterizer2D_xClipEnd; + width -= var16; + var15 += var16; + } + + if (x < Rasterizer2D.Rasterizer2D_xClipStart) { + var16 = Rasterizer2D.Rasterizer2D_xClipStart - x; + width -= var16; + var14 += var16; + var8 += var12 * var16; + var15 += var16; + } + + Sprite_drawTransScaled(Rasterizer2D.Rasterizer2D_pixels, this.pixels, 0, var8, var9, var14, var15, width, height, var12, var13, var6, opacity); } @ObfuscatedName("al") - public void method6135(int var1, int var2, int var3) { - var1 += this.yOffset; - var2 += this.xOffset; - int var4 = var1 + var2 * Rasterizer2D.Rasterizer2D_width; + public void method6135(int x, int y, int opacity) { + x += this.xOffset; + y += this.yOffset; + int var4 = x + y * Rasterizer2D.Rasterizer2D_width; int var5 = 0; int var6 = this.subHeight; int var7 = this.subWidth; int var8 = Rasterizer2D.Rasterizer2D_width - var7; int var9 = 0; int var10; - if (var2 < Rasterizer2D.Rasterizer2D_yClipStart) { - var10 = Rasterizer2D.Rasterizer2D_yClipStart - var2; + if (y < Rasterizer2D.Rasterizer2D_yClipStart) { + var10 = Rasterizer2D.Rasterizer2D_yClipStart - y; var6 -= var10; - var2 = Rasterizer2D.Rasterizer2D_yClipStart; + y = Rasterizer2D.Rasterizer2D_yClipStart; var5 += var10 * var7; var4 += var10 * Rasterizer2D.Rasterizer2D_width; } - if (var6 + var2 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var6 -= var6 + var2 - Rasterizer2D.Rasterizer2D_yClipEnd; + if (var6 + y > Rasterizer2D.Rasterizer2D_yClipEnd) { + var6 -= var6 + y - Rasterizer2D.Rasterizer2D_yClipEnd; } - if (var1 < Rasterizer2D.Rasterizer2D_xClipStart) { - var10 = Rasterizer2D.Rasterizer2D_xClipStart - var1; + if (x < Rasterizer2D.Rasterizer2D_xClipStart) { + var10 = Rasterizer2D.Rasterizer2D_xClipStart - x; var7 -= var10; - var1 = Rasterizer2D.Rasterizer2D_xClipStart; + x = Rasterizer2D.Rasterizer2D_xClipStart; var5 += var10; var4 += var10; var9 += var10; var8 += var10; } - if (var7 + var1 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var10 = var7 + var1 - Rasterizer2D.Rasterizer2D_xClipEnd; + if (var7 + x > Rasterizer2D.Rasterizer2D_xClipEnd) { + var10 = var7 + x - Rasterizer2D.Rasterizer2D_xClipEnd; var7 -= var10; var9 += var10; var8 += var10; } if (var7 > 0 && var6 > 0) { - if (var3 == 256) { + if (opacity == 256) { method6134(0, 0, 0, Rasterizer2D.Rasterizer2D_pixels, this.pixels, var5, 0, var4, 0, var7, var6, var8, var9); } else { - method6119(0, 0, 0, Rasterizer2D.Rasterizer2D_pixels, this.pixels, var5, 0, var4, 0, var7, var6, var8, var9, var3); + method6119(0, 0, 0, Rasterizer2D.Rasterizer2D_pixels, this.pixels, var5, 0, var4, 0, var7, var6, var8, var9, opacity); } } @@ -598,16 +608,16 @@ public final class Sprite extends Rasterizer2D { int var12 = (var10 << 16) / var3; int var13 = (var11 << 16) / var4; int var14; - if (this.yOffset > 0) { - var14 = (var12 + (this.yOffset << 16) - 1) / var12; + if (this.xOffset > 0) { + var14 = (var12 + (this.xOffset << 16) - 1) / var12; var1 += var14; - var8 += var14 * var12 - (this.yOffset << 16); + var8 += var14 * var12 - (this.xOffset << 16); } - if (this.xOffset > 0) { - var14 = (var13 + (this.xOffset << 16) - 1) / var13; + if (this.yOffset > 0) { + var14 = (var13 + (this.yOffset << 16) - 1) / var13; var2 += var14; - var9 += var14 * var13 - (this.xOffset << 16); + var9 += var14 * var13 - (this.yOffset << 16); } if (var6 < var10) { @@ -784,805 +794,811 @@ public final class Sprite extends Rasterizer2D { @ObfuscatedName("ao") void method6143(int var1, int var2, int var3, int var4, int var5, int var6) { - if (var6 != 0) { - var1 -= this.yOffset << 4; - var2 -= this.xOffset << 4; - double var7 = (double)(var5 & 65535) * 9.587379924285257E-5D; - int var9 = (int)Math.floor(Math.sin(var7) * (double)var6 + 0.5D); - int var10 = (int)Math.floor(Math.cos(var7) * (double)var6 + 0.5D); - int var11 = var10 * -var1 + -var2 * var9; - int var12 = -var2 * var10 + var9 * -(-var1); - int var13 = var10 * ((this.subWidth << 4) - var1) + -var2 * var9; - int var14 = var9 * -((this.subWidth << 4) - var1) + -var2 * var10; - int var15 = ((this.subHeight << 4) - var2) * var9 + var10 * -var1; - int var16 = ((this.subHeight << 4) - var2) * var10 + var9 * -(-var1); - int var17 = ((this.subHeight << 4) - var2) * var9 + var10 * ((this.subWidth << 4) - var1); - int var18 = ((this.subHeight << 4) - var2) * var10 + var9 * -((this.subWidth << 4) - var1); - int var19; - int var20; - if (var11 < var13) { - var19 = var11; - var20 = var13; - } else { - var19 = var13; - var20 = var11; - } + if (var6 == 0) { + return; + } + var1 -= this.xOffset << 4; + var2 -= this.yOffset << 4; + double var7 = (double)(var5 & 65535) * 9.587379924285257E-5D; + int var9 = (int)Math.floor(Math.sin(var7) * (double)var6 + 0.5D); + int var10 = (int)Math.floor(Math.cos(var7) * (double)var6 + 0.5D); + int var11 = var10 * -var1 + -var2 * var9; + int var12 = -var2 * var10 + var9 * -(-var1); + int var13 = var10 * ((this.subWidth << 4) - var1) + -var2 * var9; + int var14 = var9 * -((this.subWidth << 4) - var1) + -var2 * var10; + int var15 = ((this.subHeight << 4) - var2) * var9 + var10 * -var1; + int var16 = ((this.subHeight << 4) - var2) * var10 + var9 * -(-var1); + int var17 = ((this.subHeight << 4) - var2) * var9 + var10 * ((this.subWidth << 4) - var1); + int var18 = ((this.subHeight << 4) - var2) * var10 + var9 * -((this.subWidth << 4) - var1); + int var19; + int var20; + if (var11 < var13) { + var19 = var11; + var20 = var13; + } else { + var19 = var13; + var20 = var11; + } - if (var15 < var19) { - var19 = var15; - } + if (var15 < var19) { + var19 = var15; + } - if (var17 < var19) { - var19 = var17; - } + if (var17 < var19) { + var19 = var17; + } - if (var15 > var20) { - var20 = var15; - } + if (var15 > var20) { + var20 = var15; + } - if (var17 > var20) { - var20 = var17; - } + if (var17 > var20) { + var20 = var17; + } - int var21; - int var22; - if (var12 < var14) { - var21 = var12; - var22 = var14; - } else { - var21 = var14; - var22 = var12; - } + int var21; + int var22; + if (var12 < var14) { + var21 = var12; + var22 = var14; + } else { + var21 = var14; + var22 = var12; + } - if (var16 < var21) { - var21 = var16; - } + if (var16 < var21) { + var21 = var16; + } - if (var18 < var21) { - var21 = var18; - } + if (var18 < var21) { + var21 = var18; + } - if (var16 > var22) { - var22 = var16; - } + if (var16 > var22) { + var22 = var16; + } - if (var18 > var22) { - var22 = var18; - } + if (var18 > var22) { + var22 = var18; + } - var19 >>= 12; - var20 = var20 + 4095 >> 12; - var21 >>= 12; - var22 = var22 + 4095 >> 12; - var19 += var3; - var20 += var3; - var21 += var4; - var22 += var4; - var19 >>= 4; - var20 = var20 + 15 >> 4; - var21 >>= 4; - var22 = var22 + 15 >> 4; - if (var19 < Rasterizer2D.Rasterizer2D_xClipStart) { - var19 = Rasterizer2D.Rasterizer2D_xClipStart; - } + var19 >>= 12; + var20 = var20 + 4095 >> 12; + var21 >>= 12; + var22 = var22 + 4095 >> 12; + var19 += var3; + var20 += var3; + var21 += var4; + var22 += var4; + var19 >>= 4; + var20 = var20 + 15 >> 4; + var21 >>= 4; + var22 = var22 + 15 >> 4; + if (var19 < Rasterizer2D.Rasterizer2D_xClipStart) { + var19 = Rasterizer2D.Rasterizer2D_xClipStart; + } - if (var20 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var20 = Rasterizer2D.Rasterizer2D_xClipEnd; - } + if (var20 > Rasterizer2D.Rasterizer2D_xClipEnd) { + var20 = Rasterizer2D.Rasterizer2D_xClipEnd; + } - if (var21 < Rasterizer2D.Rasterizer2D_yClipStart) { - var21 = Rasterizer2D.Rasterizer2D_yClipStart; - } + if (var21 < Rasterizer2D.Rasterizer2D_yClipStart) { + var21 = Rasterizer2D.Rasterizer2D_yClipStart; + } - if (var22 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var22 = Rasterizer2D.Rasterizer2D_yClipEnd; - } + if (var22 > Rasterizer2D.Rasterizer2D_yClipEnd) { + var22 = Rasterizer2D.Rasterizer2D_yClipEnd; + } - var20 = var19 - var20; - if (var20 < 0) { - var22 = var21 - var22; - if (var22 < 0) { - int var23 = var19 + var21 * Rasterizer2D.Rasterizer2D_width; - double var24 = 1.6777216E7D / (double)var6; - int var26 = (int)Math.floor(Math.sin(var7) * var24 + 0.5D); - int var27 = (int)Math.floor(Math.cos(var7) * var24 + 0.5D); - int var28 = (var19 << 4) + 8 - var3; - int var29 = (var21 << 4) + 8 - var4; - int var30 = (var1 << 8) - (var29 * var26 >> 4); - int var31 = (var29 * var27 >> 4) + (var2 << 8); - int var32; - int var33; - int var34; - int var35; - int var36; - int var37; - int var38; - if (var27 == 0) { - if (var26 == 0) { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = var30; - var36 = var31; - var37 = var20; - if (var30 >= 0 && var31 >= 0 && var30 - (this.subWidth << 12) < 0 && var31 - (this.subHeight << 12) < 0) { - for (; var37 < 0; ++var37) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - } - } - - ++var33; + var20 = var19 - var20; + if (var20 >= 0) { + return; + } + var22 = var21 - var22; + if (var22 >= 0) { + return; + } + int var23 = var19 + var21 * Rasterizer2D.Rasterizer2D_width; + double var24 = 1.6777216E7D / (double)var6; + int var26 = (int)Math.floor(Math.sin(var7) * var24 + 0.5D); + int var27 = (int)Math.floor(Math.cos(var7) * var24 + 0.5D); + int var28 = (var19 << 4) + 8 - var3; + int var29 = (var21 << 4) + 8 - var4; + int var30 = (var1 << 8) - (var29 * var26 >> 4); + int var31 = (var29 * var27 >> 4) + (var2 << 8); + int var32; + int var33; + int var34; + int var35; + int var36; + int var37; + int var38; + if (var27 == 0) { + if (var26 == 0) { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = var30; + var36 = var31; + var37 = var20; + if (var30 >= 0 && var31 >= 0 && var30 - (this.subWidth << 12) < 0 && var31 - (this.subHeight << 12) < 0) { + for (; var37 < 0; ++var37) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; } - } else if (var26 < 0) { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = var30; - var36 = (var28 * var26 >> 4) + var31; - var37 = var20; - if (var30 >= 0 && var30 - (this.subWidth << 12) < 0) { - if ((var32 = var36 - (this.subHeight << 12)) >= 0) { - var32 = (var26 - var32) / var26; - var37 = var20 + var32; - var36 += var26 * var32; - var34 = var23 + var32; - } - - if ((var32 = (var36 - var26) / var26) > var37) { - var37 = var32; - } - - while (var37 < 0) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - - var36 += var26; - ++var37; - } - } - - ++var33; - var30 -= var26; - } - } else { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = var30; - var36 = (var28 * var26 >> 4) + var31; - var37 = var20; - if (var30 >= 0 && var30 - (this.subWidth << 12) < 0) { - if (var36 < 0) { - var32 = (var26 - 1 - var36) / var26; - var37 = var20 + var32; - var36 += var26 * var32; - var34 = var23 + var32; - } - - if ((var32 = (var36 + 1 - (this.subHeight << 12) - var26) / var26) > var37) { - var37 = var32; - } - - while (var37 < 0) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - - var36 += var26; - ++var37; - } - } - - ++var33; - var30 -= var26; - } - } - } else if (var27 < 0) { - if (var26 == 0) { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = (var28 * var27 >> 4) + var30; - var36 = var31; - var37 = var20; - if (var31 >= 0 && var31 - (this.subHeight << 12) < 0) { - if ((var32 = var35 - (this.subWidth << 12)) >= 0) { - var32 = (var27 - var32) / var27; - var37 = var20 + var32; - var35 += var27 * var32; - var34 = var23 + var32; - } - - if ((var32 = (var35 - var27) / var27) > var37) { - var37 = var32; - } - - while (var37 < 0) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - - var35 += var27; - ++var37; - } - } - - ++var33; - var31 += var27; - } - } else if (var26 < 0) { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = (var28 * var27 >> 4) + var30; - var36 = (var28 * var26 >> 4) + var31; - var37 = var20; - if ((var32 = var35 - (this.subWidth << 12)) >= 0) { - var32 = (var27 - var32) / var27; - var37 = var20 + var32; - var35 += var27 * var32; - var36 += var26 * var32; - var34 = var23 + var32; - } - - if ((var32 = (var35 - var27) / var27) > var37) { - var37 = var32; - } - - if ((var32 = var36 - (this.subHeight << 12)) >= 0) { - var32 = (var26 - var32) / var26; - var37 += var32; - var35 += var27 * var32; - var36 += var26 * var32; - var34 += var32; - } - - if ((var32 = (var36 - var26) / var26) > var37) { - var37 = var32; - } - - while (var37 < 0) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - - var35 += var27; - var36 += var26; - ++var37; - } - - ++var33; - var30 -= var26; - var31 += var27; - } - } else { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = (var28 * var27 >> 4) + var30; - var36 = (var28 * var26 >> 4) + var31; - var37 = var20; - if ((var32 = var35 - (this.subWidth << 12)) >= 0) { - var32 = (var27 - var32) / var27; - var37 = var20 + var32; - var35 += var27 * var32; - var36 += var26 * var32; - var34 = var23 + var32; - } - - if ((var32 = (var35 - var27) / var27) > var37) { - var37 = var32; - } - - if (var36 < 0) { - var32 = (var26 - 1 - var36) / var26; - var37 += var32; - var35 += var27 * var32; - var36 += var26 * var32; - var34 += var32; - } - - if ((var32 = (var36 + 1 - (this.subHeight << 12) - var26) / var26) > var37) { - var37 = var32; - } - - while (var37 < 0) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - - var35 += var27; - var36 += var26; - ++var37; - } - - ++var33; - var30 -= var26; - var31 += var27; - } - } - } else if (var26 == 0) { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = (var28 * var27 >> 4) + var30; - var36 = var31; - var37 = var20; - if (var31 >= 0 && var31 - (this.subHeight << 12) < 0) { - if (var35 < 0) { - var32 = (var27 - 1 - var35) / var27; - var37 = var20 + var32; - var35 += var27 * var32; - var34 = var23 + var32; - } - - if ((var32 = (var35 + 1 - (this.subWidth << 12) - var27) / var27) > var37) { - var37 = var32; - } - - while (var37 < 0) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - - var35 += var27; - ++var37; - } - } - - ++var33; - var31 += var27; - } - } else if (var26 < 0) { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = (var28 * var27 >> 4) + var30; - var36 = (var28 * var26 >> 4) + var31; - var37 = var20; - if (var35 < 0) { - var32 = (var27 - 1 - var35) / var27; - var37 = var20 + var32; - var35 += var27 * var32; - var36 += var26 * var32; - var34 = var23 + var32; - } - - if ((var32 = (var35 + 1 - (this.subWidth << 12) - var27) / var27) > var37) { - var37 = var32; - } - - if ((var32 = var36 - (this.subHeight << 12)) >= 0) { - var32 = (var26 - var32) / var26; - var37 += var32; - var35 += var27 * var32; - var36 += var26 * var32; - var34 += var32; - } - - if ((var32 = (var36 - var26) / var26) > var37) { - var37 = var32; - } - - while (var37 < 0) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - - var35 += var27; - var36 += var26; - ++var37; - } - - ++var33; - var30 -= var26; - var31 += var27; - } - } else { - for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { - var34 = var23; - var35 = (var28 * var27 >> 4) + var30; - var36 = (var28 * var26 >> 4) + var31; - var37 = var20; - if (var35 < 0) { - var32 = (var27 - 1 - var35) / var27; - var37 = var20 + var32; - var35 += var27 * var32; - var36 += var26 * var32; - var34 = var23 + var32; - } - - if ((var32 = (var35 + 1 - (this.subWidth << 12) - var27) / var27) > var37) { - var37 = var32; - } - - if (var36 < 0) { - var32 = (var26 - 1 - var36) / var26; - var37 += var32; - var35 += var27 * var32; - var36 += var26 * var32; - var34 += var32; - } - - if ((var32 = (var36 + 1 - (this.subHeight << 12) - var26) / var26) > var37) { - var37 = var32; - } - - while (var37 < 0) { - var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; - if (var38 != 0) { - Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; - } else { - ++var34; - } - - var35 += var27; - var36 += var26; - ++var37; - } - - ++var33; - var30 -= var26; - var31 += var27; } } + ++var33; + } + } else if (var26 < 0) { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = var30; + var36 = (var28 * var26 >> 4) + var31; + var37 = var20; + if (var30 >= 0 && var30 - (this.subWidth << 12) < 0) { + if ((var32 = var36 - (this.subHeight << 12)) >= 0) { + var32 = (var26 - var32) / var26; + var37 = var20 + var32; + var36 += var26 * var32; + var34 = var23 + var32; + } + + if ((var32 = (var36 - var26) / var26) > var37) { + var37 = var32; + } + + while (var37 < 0) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; + } + + var36 += var26; + ++var37; + } + } + + ++var33; + var30 -= var26; + } + } else { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = var30; + var36 = (var28 * var26 >> 4) + var31; + var37 = var20; + if (var30 >= 0 && var30 - (this.subWidth << 12) < 0) { + if (var36 < 0) { + var32 = (var26 - 1 - var36) / var26; + var37 = var20 + var32; + var36 += var26 * var32; + var34 = var23 + var32; + } + + if ((var32 = (var36 + 1 - (this.subHeight << 12) - var26) / var26) > var37) { + var37 = var32; + } + + while (var37 < 0) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; + } + + var36 += var26; + ++var37; + } + } + + ++var33; + var30 -= var26; } } + } else if (var27 < 0) { + if (var26 == 0) { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = (var28 * var27 >> 4) + var30; + var36 = var31; + var37 = var20; + if (var31 >= 0 && var31 - (this.subHeight << 12) < 0) { + if ((var32 = var35 - (this.subWidth << 12)) >= 0) { + var32 = (var27 - var32) / var27; + var37 = var20 + var32; + var35 += var27 * var32; + var34 = var23 + var32; + } + + if ((var32 = (var35 - var27) / var27) > var37) { + var37 = var32; + } + + while (var37 < 0) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; + } + + var35 += var27; + ++var37; + } + } + + ++var33; + var31 += var27; + } + } else if (var26 < 0) { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = (var28 * var27 >> 4) + var30; + var36 = (var28 * var26 >> 4) + var31; + var37 = var20; + if ((var32 = var35 - (this.subWidth << 12)) >= 0) { + var32 = (var27 - var32) / var27; + var37 = var20 + var32; + var35 += var27 * var32; + var36 += var26 * var32; + var34 = var23 + var32; + } + + if ((var32 = (var35 - var27) / var27) > var37) { + var37 = var32; + } + + if ((var32 = var36 - (this.subHeight << 12)) >= 0) { + var32 = (var26 - var32) / var26; + var37 += var32; + var35 += var27 * var32; + var36 += var26 * var32; + var34 += var32; + } + + if ((var32 = (var36 - var26) / var26) > var37) { + var37 = var32; + } + + while (var37 < 0) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; + } + + var35 += var27; + var36 += var26; + ++var37; + } + + ++var33; + var30 -= var26; + var31 += var27; + } + } else { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = (var28 * var27 >> 4) + var30; + var36 = (var28 * var26 >> 4) + var31; + var37 = var20; + if ((var32 = var35 - (this.subWidth << 12)) >= 0) { + var32 = (var27 - var32) / var27; + var37 = var20 + var32; + var35 += var27 * var32; + var36 += var26 * var32; + var34 = var23 + var32; + } + + if ((var32 = (var35 - var27) / var27) > var37) { + var37 = var32; + } + + if (var36 < 0) { + var32 = (var26 - 1 - var36) / var26; + var37 += var32; + var35 += var27 * var32; + var36 += var26 * var32; + var34 += var32; + } + + if ((var32 = (var36 + 1 - (this.subHeight << 12) - var26) / var26) > var37) { + var37 = var32; + } + + while (var37 < 0) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; + } + + var35 += var27; + var36 += var26; + ++var37; + } + + ++var33; + var30 -= var26; + var31 += var27; + } + } + } else if (var26 == 0) { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = (var28 * var27 >> 4) + var30; + var36 = var31; + var37 = var20; + if (var31 >= 0 && var31 - (this.subHeight << 12) < 0) { + if (var35 < 0) { + var32 = (var27 - 1 - var35) / var27; + var37 = var20 + var32; + var35 += var27 * var32; + var34 = var23 + var32; + } + + if ((var32 = (var35 + 1 - (this.subWidth << 12) - var27) / var27) > var37) { + var37 = var32; + } + + while (var37 < 0) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; + } + + var35 += var27; + ++var37; + } + } + + ++var33; + var31 += var27; + } + } else if (var26 < 0) { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = (var28 * var27 >> 4) + var30; + var36 = (var28 * var26 >> 4) + var31; + var37 = var20; + if (var35 < 0) { + var32 = (var27 - 1 - var35) / var27; + var37 = var20 + var32; + var35 += var27 * var32; + var36 += var26 * var32; + var34 = var23 + var32; + } + + if ((var32 = (var35 + 1 - (this.subWidth << 12) - var27) / var27) > var37) { + var37 = var32; + } + + if ((var32 = var36 - (this.subHeight << 12)) >= 0) { + var32 = (var26 - var32) / var26; + var37 += var32; + var35 += var27 * var32; + var36 += var26 * var32; + var34 += var32; + } + + if ((var32 = (var36 - var26) / var26) > var37) { + var37 = var32; + } + + while (var37 < 0) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; + } + + var35 += var27; + var36 += var26; + ++var37; + } + + ++var33; + var30 -= var26; + var31 += var27; + } + } else { + for (var33 = var22; var33 < 0; var23 += Rasterizer2D.Rasterizer2D_width) { + var34 = var23; + var35 = (var28 * var27 >> 4) + var30; + var36 = (var28 * var26 >> 4) + var31; + var37 = var20; + if (var35 < 0) { + var32 = (var27 - 1 - var35) / var27; + var37 = var20 + var32; + var35 += var27 * var32; + var36 += var26 * var32; + var34 = var23 + var32; + } + + if ((var32 = (var35 + 1 - (this.subWidth << 12) - var27) / var27) > var37) { + var37 = var32; + } + + if (var36 < 0) { + var32 = (var26 - 1 - var36) / var26; + var37 += var32; + var35 += var27 * var32; + var36 += var26 * var32; + var34 += var32; + } + + if ((var32 = (var36 + 1 - (this.subHeight << 12) - var26) / var26) > var37) { + var37 = var32; + } + + while (var37 < 0) { + var38 = this.pixels[(var35 >> 12) + (var36 >> 12) * this.subWidth]; + if (var38 != 0) { + Rasterizer2D.Rasterizer2D_pixels[var34++] = var38; + } else { + ++var34; + } + + var35 += var27; + var36 += var26; + ++var37; + } + + ++var33; + var30 -= var26; + var31 += var27; + } } + } @ObfuscatedName("aj") - public void method6144(int var1, int var2, int var3, int var4) { - if (var3 <= this.width && var4 <= this.height) { - int var5 = var3 * this.yOffset / this.width + var1; - int var6 = (var3 * (this.yOffset + this.subWidth) + this.width - 1) / this.width + var1; - int var7 = var2 + var4 * this.xOffset / this.height; - int var8 = var2 + (this.height + (this.xOffset + this.subHeight) * var4 - 1) / this.height; - if (var5 < Rasterizer2D.Rasterizer2D_xClipStart) { - var5 = Rasterizer2D.Rasterizer2D_xClipStart; - } - - if (var6 > Rasterizer2D.Rasterizer2D_xClipEnd) { - var6 = Rasterizer2D.Rasterizer2D_xClipEnd; - } - - if (var7 < Rasterizer2D.Rasterizer2D_yClipStart) { - var7 = Rasterizer2D.Rasterizer2D_yClipStart; - } - - if (var8 > Rasterizer2D.Rasterizer2D_yClipEnd) { - var8 = Rasterizer2D.Rasterizer2D_yClipEnd; - } - - if (var5 < var6 && var7 < var8) { - int var9 = var5 + var7 * Rasterizer2D.Rasterizer2D_width; - int var10 = Rasterizer2D.Rasterizer2D_width - (var6 - var5); - if (var9 < Rasterizer2D.Rasterizer2D_pixels.length) { - for (int var11 = var7; var11 < var8; ++var11) { - for (int var12 = var5; var12 < var6; ++var12) { - int var13 = var12 - var1 << 4; - int var14 = var11 - var2 << 4; - int var15 = var13 * this.width / var3 - (this.yOffset << 4); - int var16 = (var13 + 16) * this.width / var3 - (this.yOffset << 4); - int var17 = var14 * this.height / var4 - (this.xOffset << 4); - int var18 = (var14 + 16) * this.height / var4 - (this.xOffset << 4); - int var19 = (var16 - var15) * (var18 - var17) >> 1; - if (var19 != 0) { - if (var15 < 0) { - var15 = 0; - } - - if (var16 >= this.subWidth << 4) { - var16 = this.subWidth << 4; - } - - if (var17 < 0) { - var17 = 0; - } - - if (var18 >= this.subHeight << 4) { - var18 = this.subHeight << 4; - } - - --var16; - --var18; - int var20 = 16 - (var15 & 15); - int var21 = (var16 & 15) + 1; - int var22 = 16 - (var17 & 15); - int var23 = (var18 & 15) + 1; - var15 >>= 4; - var16 >>= 4; - var17 >>= 4; - var18 >>= 4; - int var24 = 0; - int var25 = 0; - int var26 = 0; - int var27 = 0; - - int var28; - for (var28 = var17; var28 <= var18; ++var28) { - int var29 = 16; - if (var28 == var17) { - var29 = var22; - } - - if (var28 == var18) { - var29 = var23; - } - - for (int var30 = var15; var30 <= var16; ++var30) { - int var31 = this.pixels[var30 + var28 * this.subWidth]; - if (var31 != 0) { - int var32; - if (var30 == var15) { - var32 = var29 * var20; - } else if (var30 == var16) { - var32 = var29 * var21; - } else { - var32 = var29 << 4; - } - - var27 += var32; - var24 += var32 * (var31 >> 16 & 255); - var25 += var32 * (var31 >> 8 & 255); - var26 += (var31 & 255) * var32; - } - } - } - - if (var27 >= var19) { - var28 = var26 / var27 + (var24 / var27 << 16) + (var25 / var27 << 8); - if (var28 == 0) { - var28 = 1; - } - - Rasterizer2D.Rasterizer2D_pixels[var9] = var28; - } - - ++var9; - } - } - - var9 += var10; - } - - } - } - } else { + @Export("drawScaledWorldmap") + public void drawScaledWorldmap(int x, int y, int width, int height) { + if (width > this.width || height > this.height) { throw new IllegalArgumentException(); } + int var5 = width * this.xOffset / this.width + x; + int var6 = (width * (this.xOffset + this.subWidth) + this.width - 1) / this.width + x; + int var7 = y + height * this.yOffset / this.height; + int var8 = y + (this.height + (this.yOffset + this.subHeight) * height - 1) / this.height; + if (var5 < Rasterizer2D.Rasterizer2D_xClipStart) { + var5 = Rasterizer2D.Rasterizer2D_xClipStart; + } + + if (var6 > Rasterizer2D.Rasterizer2D_xClipEnd) { + var6 = Rasterizer2D.Rasterizer2D_xClipEnd; + } + + if (var7 < Rasterizer2D.Rasterizer2D_yClipStart) { + var7 = Rasterizer2D.Rasterizer2D_yClipStart; + } + + if (var8 > Rasterizer2D.Rasterizer2D_yClipEnd) { + var8 = Rasterizer2D.Rasterizer2D_yClipEnd; + } + + if (var5 >= var6 || var7 >= var8) { + return; + } + int var9 = var5 + var7 * Rasterizer2D.Rasterizer2D_width; + int var10 = Rasterizer2D.Rasterizer2D_width - (var6 - var5); + if (var9 >= Rasterizer2D.Rasterizer2D_pixels.length) { + return; + } + for (int var11 = var7; var11 < var8; ++var11) { + for (int var12 = var5; var12 < var6; ++var12) { + int var13 = var12 - x << 4; + int var14 = var11 - y << 4; + int var15 = var13 * this.width / width - (this.xOffset << 4); + int var16 = (var13 + 16) * this.width / width - (this.xOffset << 4); + int var17 = var14 * this.height / height - (this.yOffset << 4); + int var18 = (var14 + 16) * this.height / height - (this.yOffset << 4); + int var19 = (var16 - var15) * (var18 - var17) >> 1; + if (var19 == 0) { + continue; + } + if (var15 < 0) { + var15 = 0; + } + + if (var16 >= this.subWidth << 4) { + var16 = this.subWidth << 4; + } + + if (var17 < 0) { + var17 = 0; + } + + if (var18 >= this.subHeight << 4) { + var18 = this.subHeight << 4; + } + + --var16; + --var18; + int var20 = 16 - (var15 & 15); + int var21 = (var16 & 15) + 1; + int var22 = 16 - (var17 & 15); + int var23 = (var18 & 15) + 1; + var15 >>= 4; + var16 >>= 4; + var17 >>= 4; + var18 >>= 4; + int var24 = 0; + int var25 = 0; + int var26 = 0; + int var27 = 0; + + int var28; + for (var28 = var17; var28 <= var18; ++var28) { + int var29 = 16; + if (var28 == var17) { + var29 = var22; + } + + if (var28 == var18) { + var29 = var23; + } + + for (int var30 = var15; var30 <= var16; ++var30) { + int var31 = this.pixels[var30 + var28 * this.subWidth]; + if (var31 == 0) { + continue; + } + int var32; + if (var30 == var15) { + var32 = var29 * var20; + } else if (var30 == var16) { + var32 = var29 * var21; + } else { + var32 = var29 << 4; + } + + var27 += var32; + var24 += var32 * (var31 >> 16 & 255); + var25 += var32 * (var31 >> 8 & 255); + var26 += (var31 & 255) * var32; + } + } + + if (var27 >= var19) { + var28 = var26 / var27 + (var24 / var27 << 16) + (var25 / var27 << 8); + if (var28 == 0) { + var28 = 1; + } + + Rasterizer2D.Rasterizer2D_pixels[var9] = var28; + } + + ++var9; + } + + var9 += var10; + } + } @ObfuscatedName("x") - @Export("Sprite_something") - static void Sprite_something(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7) { - for (int var8 = -var5; var8 < 0; ++var8) { + @Export("Sprite_draw") + static void Sprite_draw(int[] rasterPx, int[] spritePx, int spritePxIdx, int rasterPxIdx, int width, int height, int rasterStartOffset, int spriteStartOffset) { + for (int var8 = -height; var8 < 0; ++var8) { int var9; - for (var9 = var3 + var4 - 3; var3 < var9; var0[var3++] = var1[var2++]) { - var0[var3++] = var1[var2++]; - var0[var3++] = var1[var2++]; - var0[var3++] = var1[var2++]; + for (var9 = rasterPxIdx + width - 3; rasterPxIdx < var9; rasterPx[rasterPxIdx++] = spritePx[spritePxIdx++]) { + rasterPx[rasterPxIdx++] = spritePx[spritePxIdx++]; + rasterPx[rasterPxIdx++] = spritePx[spritePxIdx++]; + rasterPx[rasterPxIdx++] = spritePx[spritePxIdx++]; } - for (var9 += 3; var3 < var9; var0[var3++] = var1[var2++]) { + for (var9 += 3; rasterPxIdx < var9; rasterPx[rasterPxIdx++] = spritePx[spritePxIdx++]) { } - var3 += var6; - var2 += var7; + rasterPxIdx += rasterStartOffset; + spritePxIdx += spriteStartOffset; } } @ObfuscatedName("v") - @Export("Sprite_andAnotherOne") - static void Sprite_andAnotherOne(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) { - int var9 = -(var5 >> 2); - var5 = -(var5 & 3); + @Export("Sprite_drawTransBg") + static void Sprite_drawTransBg(int[] rasterPx, int[] spritePx, int currentPx, int spritePxIdx, int rasterPxIdx, int width, int height, int rasterStartOffset, int spriteStartOffset) { + int var9 = -(width >> 2); + width = -(width & 3); - for (int var10 = -var6; var10 < 0; ++var10) { - int var11; - for (var11 = var9; var11 < 0; ++var11) { - var2 = var1[var3++]; - if (var2 != 0) { - var0[var4++] = var2; + for (int var10 = -height; var10 < 0; ++var10) { + for (int var11 = var9; var11 < 0; ++var11) { + currentPx = spritePx[spritePxIdx++]; + if (currentPx != 0) { + rasterPx[rasterPxIdx++] = currentPx; } else { - ++var4; + ++rasterPxIdx; } - var2 = var1[var3++]; - if (var2 != 0) { - var0[var4++] = var2; + currentPx = spritePx[spritePxIdx++]; + if (currentPx != 0) { + rasterPx[rasterPxIdx++] = currentPx; } else { - ++var4; + ++rasterPxIdx; } - var2 = var1[var3++]; - if (var2 != 0) { - var0[var4++] = var2; + currentPx = spritePx[spritePxIdx++]; + if (currentPx != 0) { + rasterPx[rasterPxIdx++] = currentPx; } else { - ++var4; + ++rasterPxIdx; } - var2 = var1[var3++]; - if (var2 != 0) { - var0[var4++] = var2; + currentPx = spritePx[spritePxIdx++]; + if (currentPx != 0) { + rasterPx[rasterPxIdx++] = currentPx; } else { - ++var4; + ++rasterPxIdx; } } - for (var11 = var5; var11 < 0; ++var11) { - var2 = var1[var3++]; - if (var2 != 0) { - var0[var4++] = var2; + for (int var11 = width; var11 < 0; ++var11) { + currentPx = spritePx[spritePxIdx++]; + if (currentPx != 0) { + rasterPx[rasterPxIdx++] = currentPx; } else { - ++var4; + ++rasterPxIdx; } } - var4 += var7; - var3 += var8; + rasterPxIdx += rasterStartOffset; + spritePxIdx += spriteStartOffset; } } @ObfuscatedName("g") - @Export("Sprite_somethingElse") - static void Sprite_somethingElse(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11) { - int var12 = var3; + @Export("Sprite_drawScaled") + static void Sprite_drawScaled(int[] rasterPx, int[] spritePx, int currentPx, int xIdx, int yIdx, int rasterPxIdx, int rasterPxOffset, int width, int height, int pixelWidth, int pixelHeight, int subWidth) { + int var12 = xIdx; - for (int var13 = -var8; var13 < 0; ++var13) { - int var14 = var11 * (var4 >> 16); + for (int var13 = -height; var13 < 0; ++var13) { + int var14 = subWidth * (yIdx >> 16); - for (int var15 = -var7; var15 < 0; ++var15) { - var2 = var1[(var3 >> 16) + var14]; - if (var2 != 0) { - var0[var5++] = var2; + for (int var15 = -width; var15 < 0; ++var15) { + currentPx = spritePx[(xIdx >> 16) + var14]; + if (currentPx != 0) { + rasterPx[rasterPxIdx++] = currentPx; } else { - ++var5; + ++rasterPxIdx; } - var3 += var9; + xIdx += pixelWidth; } - var4 += var10; - var3 = var12; - var5 += var6; + yIdx += pixelHeight; + xIdx = var12; + rasterPxIdx += rasterPxOffset; } } @ObfuscatedName("j") - @Export("Sprite_anotherOne") - static void Sprite_anotherOne(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) { - int var11 = 256 - var9; - int var12 = (var10 & 16711935) * var11 & -16711936; - int var13 = (var10 & 65280) * var11 & 16711680; - var10 = (var12 | var13) >>> 8; + @Export("Sprite_drawTransOverlay") + static void Sprite_drawTransOverlay(int[] rasterPx, int[] spritePx, int currentPx, int spritePxIdx, int rasterPxIdx, int width, int height, int rasterStartOffset, int spriteStartOffset, int overlayOpacity, int overlayColor) { + int var11 = 256 - overlayOpacity; + int var12 = (overlayColor & 0xff00ff) * var11 & 0xff00ff00; + int var13 = (overlayColor & 0xff00) * var11 & 0xff0000; + overlayColor = (var12 | var13) >>> 8; - for (int var14 = -var6; var14 < 0; ++var14) { - for (int var15 = -var5; var15 < 0; ++var15) { - var2 = var1[var3++]; - if (var2 != 0) { - var12 = var9 * (var2 & 16711935) & -16711936; - var13 = (var2 & 65280) * var9 & 16711680; - var0[var4++] = var10 + ((var12 | var13) >>> 8); + for (int var14 = -height; var14 < 0; ++var14) { + for (int var15 = -width; var15 < 0; ++var15) { + currentPx = spritePx[spritePxIdx++]; + if (currentPx != 0) { + var12 = overlayOpacity * (currentPx & 0xff00ff) & 0xff00ff00; + var13 = (currentPx & 0xff00) * overlayOpacity & 0xff0000; + rasterPx[rasterPxIdx++] = overlayColor + ((var12 | var13) >>> 8); } else { - ++var4; + ++rasterPxIdx; } } - var4 += var7; - var3 += var8; + rasterPxIdx += rasterStartOffset; + spritePxIdx += spriteStartOffset; } } @ObfuscatedName("d") - @Export("Sprite_alpha1") - static void Sprite_alpha1(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9) { - int var10 = 256 - var9; + @Export("Sprite_drawTransparent") + static void Sprite_drawTransparent(int[] rasterPx, int[] spritePx, int currentPx, int spritePxIdx, int rasterPxIdx, int width, int height, int rasterStartOffset, int spriteStartOffset, int opacity) { + int var10 = 256 - opacity; - for (int var11 = -var6; var11 < 0; ++var11) { - for (int var12 = -var5; var12 < 0; ++var12) { - var2 = var1[var3++]; - if (var2 != 0) { - int var13 = var0[var4]; - var0[var4++] = ((var13 & 16711935) * var10 + var9 * (var2 & 16711935) & -16711936) + ((var2 & 65280) * var9 + var10 * (var13 & 65280) & 16711680) >> 8; + for (int var11 = -height; var11 < 0; ++var11) { + for (int var12 = -width; var12 < 0; ++var12) { + currentPx = spritePx[spritePxIdx++]; + if (currentPx != 0) { + int var13 = rasterPx[rasterPxIdx]; + rasterPx[rasterPxIdx++] = ((var13 & 0xff00ff) * var10 + opacity * (currentPx & 0xff00ff) & 0xff00ff00) + ((currentPx & 0xff00) * opacity + var10 * (var13 & 0xff00) & 0xff0000) >> 8; } else { - ++var4; + ++rasterPxIdx; } } - var4 += var7; - var3 += var8; + rasterPxIdx += rasterStartOffset; + spritePxIdx += spriteStartOffset; } } @ObfuscatedName("z") - @Export("Sprite_alpha2") - static void Sprite_alpha2(int[] var0, int[] var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12) { - int var13 = 256 - var12; - int var14 = var3; + @Export("Sprite_drawTransScaled") + static void Sprite_drawTransScaled(int[] rasterPx, int[] spritePx, int currentPx, int xIdx, int yIdx, int rasterPxIdx, int rasterPxOffset, int width, int height, int pxWidth, int pxHeight, int subWidth, int opacity) { + int var13 = 256 - opacity; + int var14 = xIdx; - for (int var15 = -var8; var15 < 0; ++var15) { - int var16 = var11 * (var4 >> 16); + for (int var15 = -height; var15 < 0; ++var15) { + int var16 = subWidth * (yIdx >> 16); - for (int var17 = -var7; var17 < 0; ++var17) { - var2 = var1[(var3 >> 16) + var16]; - if (var2 != 0) { - int var18 = var0[var5]; - var0[var5++] = ((var2 & 65280) * var12 + var13 * (var18 & 65280) & 16711680) + ((var18 & 16711935) * var13 + var12 * (var2 & 16711935) & -16711936) >> 8; + for (int var17 = -width; var17 < 0; ++var17) { + currentPx = spritePx[(xIdx >> 16) + var16]; + if (currentPx != 0) { + int var18 = rasterPx[rasterPxIdx]; + rasterPx[rasterPxIdx++] = ((currentPx & 0xff00) * opacity + var13 * (var18 & 0xff00) & 0xff0000) + ((var18 & 0xff00ff) * var13 + opacity * (currentPx & 0xff00ff) & 0xff00ff00) >> 8; } else { - ++var5; + ++rasterPxIdx; } - var3 += var9; + xIdx += pxWidth; } - var4 += var10; - var3 = var14; - var5 += var6; + yIdx += pxHeight; + xIdx = var14; + rasterPxIdx += rasterPxOffset; } } @ObfuscatedName("av") - static void method6134(int var0, int var1, int var2, int[] var3, int[] var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12) { - for (var8 = -var10; var8 < 0; ++var8) { - for (var6 = -var9; var6 < 0; ++var6) { - var0 = var4[var5++]; - if (var0 != 0) { - var1 = var3[var7]; - var2 = var0 + var1; - var0 = (var0 & 16711935) + (var1 & 16711935); - var1 = (var0 & 16777472) + (var2 - var0 & 65536); - var3[var7++] = var2 - var1 | var1 - (var1 >>> 8); + static void method6134(int curSpritePx, int curRasterPx, int var2, int[] rasterPx, int[] spritePx, int spritePxIdx, int var6, int rasterPxIdx, int var8, int width, int height, int rasterPxOffset, int spritePxOffset) { + for (var8 = -height; var8 < 0; ++var8) { + for (var6 = -width; var6 < 0; ++var6) { + curSpritePx = spritePx[spritePxIdx++]; + if (curSpritePx != 0) { + curRasterPx = rasterPx[rasterPxIdx]; + var2 = curSpritePx + curRasterPx; + curSpritePx = (curSpritePx & 0xff00ff) + (curRasterPx & 0xff00ff); + curRasterPx = (curSpritePx & 0x1000100) + (var2 - curSpritePx & 0x10000); + rasterPx[rasterPxIdx++] = var2 - curRasterPx | curRasterPx - (curRasterPx >>> 8); } else { - ++var7; + ++rasterPxIdx; } } - var7 += var11; - var5 += var12; + rasterPxIdx += rasterPxOffset; + spritePxIdx += spritePxOffset; } } @ObfuscatedName("as") - static void method6119(int var0, int var1, int var2, int[] var3, int[] var4, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, int var13) { + static void method6119(int var0, int var1, int var2, int[] rasterPx, int[] spritePx, int var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, int opacity) { for (var8 = -var10; var8 < 0; ++var8) { for (var6 = -var9; var6 < 0; ++var6) { - var0 = var4[var5++]; + var0 = spritePx[var5++]; if (var0 != 0) { - var1 = var13 * (var0 & 16711935); - var0 = (var1 & -16711936) + (var13 * var0 - var1 & 16711680) >>> 8; - var1 = var3[var7]; + var1 = opacity * (var0 & 0xff00ff); + var0 = (var1 & 0xff00ff00) + (opacity * var0 - var1 & 0xff0000) >>> 8; + var1 = rasterPx[var7]; var2 = var0 + var1; - var0 = (var0 & 16711935) + (var1 & 16711935); + var0 = (var0 & 0xff00ff) + (var1 & 0xff00ff); var1 = (var0 & 16777472) + (var2 - var0 & 65536); - var3[var7++] = var2 - var1 | var1 - (var1 >>> 8); + rasterPx[var7++] = var2 - var1 | var1 - (var1 >>> 8); } else { ++var7; } @@ -1604,7 +1620,7 @@ public final class Sprite extends Rasterizer2D { if (var0 != 0) { var1 = var5[var10]; var2 = var0 + var1; - var0 = (var0 & 16711935) + (var1 & 16711935); + var0 = (var0 & 0xff00ff) + (var1 & 0xff00ff); var1 = (var0 & 16777472) + (var2 - var0 & 65536); var5[var10++] = var2 - var1 | var1 - (var1 >>> 8); } else { @@ -1629,11 +1645,11 @@ public final class Sprite extends Rasterizer2D { for (var6 = -var12; var6 < 0; ++var6) { var0 = var4[(var3 >> 16) + var7]; if (var0 != 0) { - var1 = (var0 & 16711935) * var16; - var0 = (var1 & -16711936) + (var0 * var16 - var1 & 16711680) >>> 8; + var1 = (var0 & 0xff00ff) * var16; + var0 = (var1 & 0xff00ff00) + (var0 * var16 - var1 & 0xff0000) >>> 8; var1 = var5[var10]; var2 = var0 + var1; - var0 = (var0 & 16711935) + (var1 & 16711935); + var0 = (var0 & 0xff00ff) + (var1 & 0xff00ff); var1 = (var0 & 16777472) + (var2 - var0 & 65536); var5[var10++] = var2 - var1 | var1 - (var1 >>> 8); } else { diff --git a/runescape-client/src/main/java/Strings.java b/runescape-client/src/main/java/Strings.java index efc8b67b64..98f7730355 100644 --- a/runescape-client/src/main/java/Strings.java +++ b/runescape-client/src/main/java/Strings.java @@ -1,3 +1,4 @@ +import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @@ -39,7 +40,8 @@ public class Strings { signature = "(Lhj;I)V", garbageValue = "-2041903885" ) - static void method4120(Widget var0) { + @Export("invalidateWidget") + static void invalidateWidget(Widget var0) { if (var0.cycle == Client.field741) { Client.field843[var0.rootIndex] = true; } diff --git a/runescape-client/src/main/java/Texture.java b/runescape-client/src/main/java/Texture.java index bd765f3869..07414a9bfd 100644 --- a/runescape-client/src/main/java/Texture.java +++ b/runescape-client/src/main/java/Texture.java @@ -120,25 +120,25 @@ public class Texture extends Node { byte[] var17 = var7.pixels; int[] var11 = var7.palette; int var12 = this.field1619[var6]; - if ((var12 & -16777216) == 16777216) { + if ((var12 & 0xff000000) == 16777216) { } - if ((var12 & -16777216) == 33554432) { + if ((var12 & 0xff000000) == 33554432) { } int var13; int var14; int var15; int var16; - if ((var12 & -16777216) == 50331648) { - var13 = var12 & 16711935; + if ((var12 & 0xff000000) == 50331648) { + var13 = var12 & 0xff00ff; var14 = var12 >> 8 & 255; for (var15 = 0; var15 < var11.length; ++var15) { var16 = var11[var15]; if (var16 >> 8 == (var16 & 65535)) { var16 &= 255; - var11[var15] = var13 * var16 >> 8 & 16711935 | var14 * var16 & 65280; + var11[var15] = var13 * var16 >> 8 & 0xff00ff | var14 * var16 & 0xff00; } } } diff --git a/runescape-client/src/main/java/TileItem.java b/runescape-client/src/main/java/TileItem.java index c555b201bd..89bdf4e8fe 100644 --- a/runescape-client/src/main/java/TileItem.java +++ b/runescape-client/src/main/java/TileItem.java @@ -49,7 +49,8 @@ public final class TileItem extends Entity { signature = "(Lhp;B)V", garbageValue = "97" ) - public static void method2054(AbstractArchive var0) { + @Export("StructDefinition_setArchives") + public static void StructDefinition_setArchives(AbstractArchive var0) { StructDefinition.StructDefinition_archive = var0; } @@ -82,6 +83,6 @@ public final class TileItem extends Entity { WorldMapEvent.field359 = var0; Client.field848 = var1; WorldMapCacheName.selectedSpellFlags = var2; - Strings.method4120(var4); + Strings.invalidateWidget(var4); } } diff --git a/runescape-client/src/main/java/TilePaint.java b/runescape-client/src/main/java/TilePaint.java index f63f7de02c..6de75c248d 100644 --- a/runescape-client/src/main/java/TilePaint.java +++ b/runescape-client/src/main/java/TilePaint.java @@ -74,8 +74,8 @@ public final class TilePaint { Sprite var6 = var4[var5] = new Sprite(); var6.width = SpriteBuffer.SpriteBuffer_spriteWidth; var6.height = SpriteBuffer.SpriteBuffer_spriteHeight; - var6.yOffset = Varps.SpriteBuffer_xOffsets[var5]; - var6.xOffset = SpriteBuffer.SpriteBuffer_yOffsets[var5]; + var6.xOffset = Varps.SpriteBuffer_xOffsets[var5]; + var6.yOffset = SpriteBuffer.SpriteBuffer_yOffsets[var5]; var6.subWidth = SpriteBuffer.SpriteBuffer_spriteWidths[var5]; var6.subHeight = class216.SpriteBuffer_spriteHeights[var5]; int var7 = var6.subHeight * var6.subWidth; diff --git a/runescape-client/src/main/java/Tiles.java b/runescape-client/src/main/java/Tiles.java index aac5846170..60ef0bb063 100644 --- a/runescape-client/src/main/java/Tiles.java +++ b/runescape-client/src/main/java/Tiles.java @@ -33,9 +33,9 @@ public final class Tiles { @ObfuscatedName("c") static int[][] field515; @ObfuscatedName("m") - static int[] field508; + static int[] Tiles_saturation; @ObfuscatedName("u") - static int[] field507; + static int[] Tiles_lightness; @ObfuscatedName("j") static final int[] field512; @ObfuscatedName("t") diff --git a/runescape-client/src/main/java/Timer.java b/runescape-client/src/main/java/Timer.java index f5e6302121..39b48df818 100644 --- a/runescape-client/src/main/java/Timer.java +++ b/runescape-client/src/main/java/Timer.java @@ -416,57 +416,71 @@ public class Timer { Login.Login_loadingText = "Loading config - " + class215.archive2.loadPercent() + "%"; Login.Login_loadingPercent = 60; } else { + // floorovl def inlined Archive var31 = class215.archive2; FloorOverlayDefinition.FloorOverlayDefinition_archive = var31; - WorldMapSprite.setFloorUnderlayDefinitionArchive(class215.archive2); - GrandExchangeEvents.method66(class215.archive2, NPCDefinition.archive7); + // --- + WorldMapSprite.FloorUnderlayDefinition_setArchives(class215.archive2); + GrandExchangeEvents.KitDefinition_setArchives(class215.archive2, NPCDefinition.archive7); + // object def inlined var25 = class215.archive2; var2 = NPCDefinition.archive7; boolean var34 = Client.isLowDetail; ObjectDefinition.ObjectDefinition_archive = var25; ObjectDefinition.ObjectDefinition_modelsArchive = var2; ObjectDefinition.ObjectDefinition_isLowDetail = var34; - FaceNormal.setNpcDefinitionArchives(class215.archive2, NPCDefinition.archive7); - TileItem.method2054(class215.archive2); + // --- + FaceNormal.NpcDefinition_setArchives(class215.archive2, NPCDefinition.archive7); + TileItem.StructDefinition_setArchives(class215.archive2); + // item def inlined Archive var27 = class215.archive2; Archive var5 = NPCDefinition.archive7; boolean var6 = Client.isMembersWorld; Font var7 = Coord.fontPlain11; Messages.ItemDefinition_archive = var27; ItemDefinition.ItemDefinition_modelArchive = var5; - ModelData0.inMembersWorld = var6; + ModelData0.ItemDefinition_inMembersWorld = var6; ItemDefinition.ItemDefinition_fileCount = Messages.ItemDefinition_archive.getGroupFileCount(10); HealthBar.ItemDefinition_fontPlain11 = var7; + // sequence def inlined Archive var8 = class215.archive2; Archive var9 = class197.archive0; Archive var10 = class167.archive1; SequenceDefinition.SequenceDefinition_archive = var8; SequenceDefinition.SequenceDefinition_animationsArchive = var9; SequenceDefinition.SequenceDefinition_skeletonsArchive = var10; + // spotanim def inlined Archive var11 = class215.archive2; Archive var12 = NPCDefinition.archive7; SpotAnimationDefinition.SpotAnimationDefinition_archive = var11; class43.SpotAnimationDefinition_modelArchive = var12; + // varbit def inlined Archive var13 = class215.archive2; VarbitDefinition.VarbitDefinition_archive = var13; - GrandExchangeEvents.method68(class215.archive2); - UrlRequest.method3317(class43.archive3, NPCDefinition.archive7, Client.archive8, class2.archive13); - WorldMapData_0.method173(class215.archive2); + // --- + GrandExchangeEvents.VarpDefinition_setArchives(class215.archive2); + UrlRequest.Widget_setArchives(class43.archive3, NPCDefinition.archive7, Client.archive8, class2.archive13); + WorldMapData_0.InvDefinition_setArchives(class215.archive2); + // enum def inlined Archive var14 = class215.archive2; EnumDefinition.EnumDefinition_archive = var14; - GrandExchangeOfferWorldComparator.setVarcIntArchive(class215.archive2); - KeyHandler.method794(class215.archive2); + // --- + GrandExchangeOfferWorldComparator.VarcInt_setArchives(class215.archive2); + KeyHandler.ParamDefinition_setArchives(class215.archive2); Clock.varcs = new Varcs(); + // hitsplat def inlined Archive var15 = class215.archive2; Archive var16 = Client.archive8; Archive var17 = class2.archive13; HitSplatDefinition.HitSplatDefinition_archive = var15; HitSplatDefinition.HitSplatDefinition_spritesArchive = var16; HitSplatDefinition.HitSplatDefinition_fontsArchive = var17; + // healthbar def inlined Archive var18 = class215.archive2; Archive var19 = Client.archive8; HealthBarDefinition.HealthBarDefinition_archive = var18; HealthBarDefinition.HealthBarDefinition_spritesArchive = var19; + // worldmap element inlined Archive var20 = class215.archive2; Archive var21 = Client.archive8; WorldMapElement.WorldMapElement_archive = var21; @@ -483,6 +497,7 @@ public class Timer { } } } + // --- Login.Login_loadingText = "Loaded config"; Login.Login_loadingPercent = 60; diff --git a/runescape-client/src/main/java/TriBool.java b/runescape-client/src/main/java/TriBool.java index 91f9c5d05b..b2424f14f2 100644 --- a/runescape-client/src/main/java/TriBool.java +++ b/runescape-client/src/main/java/TriBool.java @@ -41,31 +41,32 @@ public class TriBool { ) @Export("drawLoadingMessage") static final void drawLoadingMessage(String var0, boolean var1) { - if (Client.showLoadingMessages) { - byte var2 = 4; - int var3 = var2 + 6; - int var4 = var2 + 6; - int var5 = class169.fontPlain12.lineWidth(var0, 250); - int var6 = class169.fontPlain12.lineCount(var0, 250) * 13; - Rasterizer2D.Rasterizer2D_fillRectangle(var3 - var2, var4 - var2, var2 + var5 + var2, var6 + var2 + var2, 0); - Rasterizer2D.Rasterizer2D_drawRectangle(var3 - var2, var4 - var2, var5 + var2 + var2, var6 + var2 + var2, 16777215); - class169.fontPlain12.drawLines(var0, var3, var4, var5, var6, 16777215, -1, 1, 1, 0); - ChatChannel.method2215(var3 - var2, var4 - var2, var2 + var5 + var2, var2 + var6 + var2); - if (var1) { - MusicPatchPcmStream.rasterProvider.drawFull(0, 0); - } else { - int var7 = var3; - int var8 = var4; - int var9 = var5; - int var10 = var6; + if (!Client.showLoadingMessages) { + return; + } + byte var2 = 4; + int var3 = var2 + 6; + int var4 = var2 + 6; + int var5 = class169.fontPlain12.lineWidth(var0, 250); + int var6 = class169.fontPlain12.lineCount(var0, 250) * 13; + Rasterizer2D.Rasterizer2D_fillRectangle(var3 - var2, var4 - var2, var2 + var5 + var2, var6 + var2 + var2, 0); + Rasterizer2D.Rasterizer2D_drawRectangle(var3 - var2, var4 - var2, var5 + var2 + var2, var6 + var2 + var2, 0xffffff); + class169.fontPlain12.drawLines(var0, var3, var4, var5, var6, 0xffffff, -1, 1, 1, 0); + ChatChannel.method2215(var3 - var2, var4 - var2, var2 + var5 + var2, var2 + var6 + var2); + if (var1) { + MusicPatchPcmStream.rasterProvider.drawFull(0, 0); + } else { + int var7 = var3; + int var8 = var4; + int var9 = var5; + int var10 = var6; - for (int var11 = 0; var11 < Client.rootWidgetCount; ++var11) { - if (Client.rootWidgetXs[var11] + Client.rootWidgetWidths[var11] > var7 && Client.rootWidgetXs[var11] < var7 + var9 && Client.rootWidgetYs[var11] + Client.rootWidgetHeights[var11] > var8 && Client.rootWidgetYs[var11] < var10 + var8) { - Client.field861[var11] = true; - } + for (int var11 = 0; var11 < Client.rootWidgetCount; ++var11) { + if (Client.rootWidgetXs[var11] + Client.rootWidgetWidths[var11] > var7 && Client.rootWidgetXs[var11] < var7 + var9 && Client.rootWidgetYs[var11] + Client.rootWidgetHeights[var11] > var8 && Client.rootWidgetYs[var11] < var10 + var8) { + Client.field861[var11] = true; } } - } + } } diff --git a/runescape-client/src/main/java/UrlRequest.java b/runescape-client/src/main/java/UrlRequest.java index cbcca414ef..259c4fba4e 100644 --- a/runescape-client/src/main/java/UrlRequest.java +++ b/runescape-client/src/main/java/UrlRequest.java @@ -46,13 +46,14 @@ public class UrlRequest { signature = "(Lhp;Lhp;Lhp;Lhp;I)V", garbageValue = "-354587299" ) - public static void method3317(AbstractArchive var0, AbstractArchive var1, AbstractArchive var2, AbstractArchive var3) { + @Export("Widget_setArchives") + public static void Widget_setArchives(AbstractArchive var0, AbstractArchive var1, AbstractArchive var2, AbstractArchive var3) { Widget.Widget_archive = var0; ViewportMouse.Widget_modelsArchive = var1; class216.Widget_spritesArchive = var2; DirectByteArrayCopier.Widget_fontsArchive = var3; Widget.Widget_interfaceComponents = new Widget[Widget.Widget_archive.getGroupCount()][]; - ViewportMouse.loadedInterfaces = new boolean[Widget.Widget_archive.getGroupCount()]; + ViewportMouse.Widget_loadedInterfaces = new boolean[Widget.Widget_archive.getGroupCount()]; } @ObfuscatedName("e") @@ -129,8 +130,8 @@ public class UrlRequest { var9 = (var2 - var8) / 2; if (var4) { Rasterizer2D.Rasterizer2D_resetClip(); - Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var9, var3, -16777216); - Rasterizer2D.Rasterizer2D_fillRectangle(var0 + var2 - var9, var1, var9, var3, -16777216); + Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var9, var3, 0xff000000); + Rasterizer2D.Rasterizer2D_fillRectangle(var0 + var2 - var9, var1, var9, var3, 0xff000000); } var0 += var9; @@ -145,8 +146,8 @@ public class UrlRequest { var9 = (var3 - var8) / 2; if (var4) { Rasterizer2D.Rasterizer2D_resetClip(); - Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var2, var9, -16777216); - Rasterizer2D.Rasterizer2D_fillRectangle(var0, var3 + var1 - var9, var2, var9, -16777216); + Rasterizer2D.Rasterizer2D_fillRectangle(var0, var1, var2, var9, 0xff000000); + Rasterizer2D.Rasterizer2D_fillRectangle(var0, var3 + var1 - var9, var2, var9, 0xff000000); } var1 += var9; diff --git a/runescape-client/src/main/java/Varcs.java b/runescape-client/src/main/java/Varcs.java index 94824246f8..2f8a66b460 100644 --- a/runescape-client/src/main/java/Varcs.java +++ b/runescape-client/src/main/java/Varcs.java @@ -34,7 +34,8 @@ public class Varcs { @ObfuscatedGetter( longValue = -277979548816975331L ) - long field1272; + @Export("lastWrittenMs") + long lastWrittenMs; Varcs() { this.unwrittenChanges = false; @@ -252,7 +253,7 @@ public class Varcs { } this.unwrittenChanges = false; - this.field1272 = DirectByteArrayCopier.currentTimeMs(); + this.lastWrittenMs = DirectByteArrayCopier.currentTimeMs(); } @ObfuscatedName("u") @@ -354,7 +355,7 @@ public class Varcs { ) @Export("tryWrite") void tryWrite() { - if (this.unwrittenChanges && this.field1272 < DirectByteArrayCopier.currentTimeMs() - 60000L) { + if (this.unwrittenChanges && this.lastWrittenMs < DirectByteArrayCopier.currentTimeMs() - 60000L) { this.write(); } diff --git a/runescape-client/src/main/java/Varps.java b/runescape-client/src/main/java/Varps.java index 577e48c255..400e03b615 100644 --- a/runescape-client/src/main/java/Varps.java +++ b/runescape-client/src/main/java/Varps.java @@ -38,159 +38,159 @@ public class Varps { garbageValue = "1546167720" ) static final int method3969(Widget var0, int var1) { - if (var0.cs1Instructions != null && var1 < var0.cs1Instructions.length) { - try { - int[] var2 = var0.cs1Instructions[var1]; - int var3 = 0; - int var4 = 0; - byte var5 = 0; + if (var0.cs1Instructions == null || var1 >= var0.cs1Instructions.length) { + return -2; + } + try { + int[] var2 = var0.cs1Instructions[var1]; + int var3 = 0; + int var4 = 0; + byte var5 = 0; - while (true) { - int var6 = var2[var4++]; - int var7 = 0; - byte var8 = 0; - if (var6 == 0) { - return var3; - } + while (true) { + int var6 = var2[var4++]; + int var7 = 0; + byte var8 = 0; + if (var6 == 0) { + return var3; + } - if (var6 == 1) { - var7 = Client.currentLevels[var2[var4++]]; - } + if (var6 == 1) { + var7 = Client.currentLevels[var2[var4++]]; + } - if (var6 == 2) { - var7 = Client.levels[var2[var4++]]; - } + if (var6 == 2) { + var7 = Client.levels[var2[var4++]]; + } - if (var6 == 3) { - var7 = Client.experience[var2[var4++]]; - } + if (var6 == 3) { + var7 = Client.experience[var2[var4++]]; + } - int var9; - Widget var10; - int var11; - int var12; - if (var6 == 4) { - var9 = var2[var4++] << 16; - var9 += var2[var4++]; - var10 = class80.getWidget(var9); - var11 = var2[var4++]; - if (var11 != -1 && (!WorldMapArea.getItemDefinition(var11).isMembersOnly || Client.isMembersWorld)) { - for (var12 = 0; var12 < var10.itemIds.length; ++var12) { - if (var11 + 1 == var10.itemIds[var12]) { - var7 += var10.itemQuantities[var12]; - } + int var9; + Widget var10; + int var11; + int var12; + if (var6 == 4) { + var9 = var2[var4++] << 16; + var9 += var2[var4++]; + var10 = class80.getWidget(var9); + var11 = var2[var4++]; + if (var11 != -1 && (!WorldMapArea.getItemDefinition(var11).isMembersOnly || Client.isMembersWorld)) { + for (var12 = 0; var12 < var10.itemIds.length; ++var12) { + if (var11 + 1 == var10.itemIds[var12]) { + var7 += var10.itemQuantities[var12]; } } } - - if (var6 == 5) { - var7 = Varps_main[var2[var4++]]; - } - - if (var6 == 6) { - var7 = Skills.Skills_experienceTable[Client.levels[var2[var4++]] - 1]; - } - - if (var6 == 7) { - var7 = Varps_main[var2[var4++]] * 100 / 46875; - } - - if (var6 == 8) { - var7 = Client.localPlayer.combatLevel; - } - - if (var6 == 9) { - for (var9 = 0; var9 < 25; ++var9) { - if (Skills.Skills_enabled[var9]) { - var7 += Client.levels[var9]; - } - } - } - - if (var6 == 10) { - var9 = var2[var4++] << 16; - var9 += var2[var4++]; - var10 = class80.getWidget(var9); - var11 = var2[var4++]; - if (var11 != -1 && (!WorldMapArea.getItemDefinition(var11).isMembersOnly || Client.isMembersWorld)) { - for (var12 = 0; var12 < var10.itemIds.length; ++var12) { - if (var11 + 1 == var10.itemIds[var12]) { - var7 = 999999999; - break; - } - } - } - } - - if (var6 == 11) { - var7 = Client.runEnergy; - } - - if (var6 == 12) { - var7 = Client.weight; - } - - if (var6 == 13) { - var9 = Varps_main[var2[var4++]]; - int var13 = var2[var4++]; - var7 = (var9 & 1 << var13) != 0 ? 1 : 0; - } - - if (var6 == 14) { - var9 = var2[var4++]; - var7 = GrandExchangeOfferOwnWorldComparator.getVarbit(var9); - } - - if (var6 == 15) { - var8 = 1; - } - - if (var6 == 16) { - var8 = 2; - } - - if (var6 == 17) { - var8 = 3; - } - - if (var6 == 18) { - var7 = MusicPatchNode2.baseX * 64 + (Client.localPlayer.x >> 7); - } - - if (var6 == 19) { - var7 = class1.baseY * 64 + (Client.localPlayer.y >> 7); - } - - if (var6 == 20) { - var7 = var2[var4++]; - } - - if (var8 == 0) { - if (var5 == 0) { - var3 += var7; - } - - if (var5 == 1) { - var3 -= var7; - } - - if (var5 == 2 && var7 != 0) { - var3 /= var7; - } - - if (var5 == 3) { - var3 *= var7; - } - - var5 = 0; - } else { - var5 = var8; - } } - } catch (Exception var14) { - return -1; + + if (var6 == 5) { + var7 = Varps_main[var2[var4++]]; + } + + if (var6 == 6) { + var7 = Skills.Skills_experienceTable[Client.levels[var2[var4++]] - 1]; + } + + if (var6 == 7) { + var7 = Varps_main[var2[var4++]] * 100 / 46875; + } + + if (var6 == 8) { + var7 = Client.localPlayer.combatLevel; + } + + if (var6 == 9) { + for (var9 = 0; var9 < 25; ++var9) { + if (Skills.Skills_enabled[var9]) { + var7 += Client.levels[var9]; + } + } + } + + if (var6 == 10) { + var9 = var2[var4++] << 16; + var9 += var2[var4++]; + var10 = class80.getWidget(var9); + var11 = var2[var4++]; + if (var11 != -1 && (!WorldMapArea.getItemDefinition(var11).isMembersOnly || Client.isMembersWorld)) { + for (var12 = 0; var12 < var10.itemIds.length; ++var12) { + if (var11 + 1 == var10.itemIds[var12]) { + var7 = 999999999; + break; + } + } + } + } + + if (var6 == 11) { + var7 = Client.runEnergy; + } + + if (var6 == 12) { + var7 = Client.weight; + } + + if (var6 == 13) { + var9 = Varps_main[var2[var4++]]; + int var13 = var2[var4++]; + var7 = (var9 & 1 << var13) != 0 ? 1 : 0; + } + + if (var6 == 14) { + var9 = var2[var4++]; + var7 = GrandExchangeOfferOwnWorldComparator.getVarbit(var9); + } + + if (var6 == 15) { + var8 = 1; + } + + if (var6 == 16) { + var8 = 2; + } + + if (var6 == 17) { + var8 = 3; + } + + if (var6 == 18) { + var7 = MusicPatchNode2.baseX * 64 + (Client.localPlayer.x >> 7); + } + + if (var6 == 19) { + var7 = class1.baseY * 64 + (Client.localPlayer.y >> 7); + } + + if (var6 == 20) { + var7 = var2[var4++]; + } + + if (var8 == 0) { + if (var5 == 0) { + var3 += var7; + } + + if (var5 == 1) { + var3 -= var7; + } + + if (var5 == 2 && var7 != 0) { + var3 /= var7; + } + + if (var5 == 3) { + var3 *= var7; + } + + var5 = 0; + } else { + var5 = var8; + } } + } catch (Exception var14) { + return -1; } - return -2; } } diff --git a/runescape-client/src/main/java/ViewportMouse.java b/runescape-client/src/main/java/ViewportMouse.java index 334c37f412..12bbe70407 100644 --- a/runescape-client/src/main/java/ViewportMouse.java +++ b/runescape-client/src/main/java/ViewportMouse.java @@ -36,8 +36,8 @@ public class ViewportMouse { ) static int field1746; @ObfuscatedName("i") - @Export("loadedInterfaces") - public static boolean[] loadedInterfaces; + @Export("Widget_loadedInterfaces") + public static boolean[] Widget_loadedInterfaces; @ObfuscatedName("f") @ObfuscatedSignature( signature = "Lhp;" diff --git a/runescape-client/src/main/java/Widget.java b/runescape-client/src/main/java/Widget.java index 07b1d1def4..1e76e0656f 100644 --- a/runescape-client/src/main/java/Widget.java +++ b/runescape-client/src/main/java/Widget.java @@ -635,9 +635,11 @@ public class Widget extends Node { @Export("children") public Widget[] children; @ObfuscatedName("fi") - public boolean field2642; + @Export("containsMouse") + public boolean containsMouse; @ObfuscatedName("fk") - public boolean field2589; + @Export("isClicked") + public boolean isClicked; @ObfuscatedName("fg") @ObfuscatedGetter( intValue = -1473790409 @@ -773,8 +775,8 @@ public class Widget extends Node { this.itemQuantity = 0; this.modelFrame = 0; this.modelFrameCycle = 0; - this.field2642 = false; - this.field2589 = false; + this.containsMouse = false; + this.isClicked = false; this.field2689 = -1; this.field2592 = 0; this.field2603 = 0; @@ -1275,15 +1277,15 @@ public class Widget extends Node { return null; } if (this.spriteFlipV) { - var5.method6128(); + var5.flipVertically(); } if (this.spriteFlipH) { - var5.method6117(); + var5.flipHorizontally(); } if (this.outline > 0) { - var5.method6115(this.outline); + var5.pad(this.outline); } if (this.outline >= 1) { @@ -1291,7 +1293,7 @@ public class Widget extends Node { } if (this.outline >= 2) { - var5.outline(16777215); + var5.outline(0xffffff); } if (this.spriteShadow != 0) { diff --git a/runescape-client/src/main/java/WorldMap.java b/runescape-client/src/main/java/WorldMap.java index df6336903f..28c08e17b2 100644 --- a/runescape-client/src/main/java/WorldMap.java +++ b/runescape-client/src/main/java/WorldMap.java @@ -237,7 +237,8 @@ public class WorldMap { ) int field4011; @ObfuscatedName("bi") - final int[] field4020; + @Export("menuOpcodes") + final int[] menuOpcodes; @ObfuscatedName("bg") List field3972; @ObfuscatedName("bh") @@ -314,7 +315,7 @@ public class WorldMap { this.field3988 = new HashSet(); this.elementsDisabled = false; this.field4011 = 0; - this.field4020 = new int[]{1008, 1009, 1010, 1011, 1012}; + this.menuOpcodes = new int[]{1008, 1009, 1010, 1011, 1012}; this.field4005 = new HashSet(); this.mouseCoord = null; this.showCoord = false; @@ -373,49 +374,51 @@ public class WorldMap { garbageValue = "-2047217979" ) @Export("onCycle") - public void onCycle(int var1, int var2, boolean var3, int var4, int var5, int var6, int var7) { - if (this.cacheLoader.getIsLoaded()) { - this.smoothZoom(); - this.scrollToTarget(); - if (var3) { - int var8 = (int)Math.ceil((double)((float)var6 / this.zoom)); - int var9 = (int)Math.ceil((double)((float)var7 / this.zoom)); - List var10 = this.worldMapManager.method607(this.centerTileX - var8 / 2 - 1, this.centerTileY - var9 / 2 - 1, var8 / 2 + this.centerTileX + 1, var9 / 2 + this.centerTileY + 1, var4, var5, var6, var7, var1, var2); - HashSet var11 = new HashSet(); + public void onCycle(int mouseX, int mouseY, boolean mouseOver, int xOffset, int yOffset, int width, int height) { + if (!this.cacheLoader.isLoaded()) { + return; + } + this.smoothZoom(); + this.scrollToTarget(); + if (!mouseOver) { + return; + } + int var8 = (int)Math.ceil((double)((float)width / this.zoom)); + int var9 = (int)Math.ceil((double)((float)height / this.zoom)); + List var10 = this.worldMapManager.method607(this.centerTileX - var8 / 2 - 1, this.centerTileY - var9 / 2 - 1, var8 / 2 + this.centerTileX + 1, var9 / 2 + this.centerTileY + 1, xOffset, yOffset, width, height, mouseX, mouseY); + HashSet var11 = new HashSet(); - Iterator var12; - AbstractWorldMapIcon var13; - ScriptEvent var14; - WorldMapEvent var15; - for (var12 = var10.iterator(); var12.hasNext(); LoginPacket.runScriptEvent(var14)) { - var13 = (AbstractWorldMapIcon)var12.next(); - var11.add(var13); - var14 = new ScriptEvent(); - var15 = new WorldMapEvent(var13.getElement(), var13.coord1, var13.coord2); - var14.setArgs(new Object[]{var15, var1, var2}); - if (this.field4005.contains(var13)) { - var14.setType(17); - } else { - var14.setType(15); - } - } - - var12 = this.field4005.iterator(); - - while (var12.hasNext()) { - var13 = (AbstractWorldMapIcon)var12.next(); - if (!var11.contains(var13)) { - var14 = new ScriptEvent(); - var15 = new WorldMapEvent(var13.getElement(), var13.coord1, var13.coord2); - var14.setArgs(new Object[]{var15, var1, var2}); - var14.setType(16); - LoginPacket.runScriptEvent(var14); - } - } - - this.field4005 = var11; + Iterator var12; + AbstractWorldMapIcon var13; + ScriptEvent var14; + WorldMapEvent var15; + for (var12 = var10.iterator(); var12.hasNext(); LoginPacket.runScriptEvent(var14)) { + var13 = (AbstractWorldMapIcon)var12.next(); + var11.add(var13); + var14 = new ScriptEvent(); + var15 = new WorldMapEvent(var13.getElement(), var13.coord1, var13.coord2); + var14.setArgs(new Object[]{var15, mouseX, mouseY}); + if (this.field4005.contains(var13)) { + var14.setType(17); + } else { + var14.setType(15); } } + + var12 = this.field4005.iterator(); + + while (var12.hasNext()) { + var13 = (AbstractWorldMapIcon)var12.next(); + if (!var11.contains(var13)) { + var14 = new ScriptEvent(); + var15 = new WorldMapEvent(var13.getElement(), var13.coord1, var13.coord2); + var14.setArgs(new Object[]{var15, mouseX, mouseY}); + var14.setType(16); + LoginPacket.runScriptEvent(var14); + } + } + + this.field4005 = var11; } @ObfuscatedName("p") @@ -423,11 +426,11 @@ public class WorldMap { signature = "(IIZZB)V", garbageValue = "24" ) - public void method6301(int var1, int var2, boolean var3, boolean var4) { + public void method6301(int var1, int var2, boolean isClicked, boolean wasClicked) { long var5 = DirectByteArrayCopier.currentTimeMs(); - this.method6302(var1, var2, var4, var5); - if (!this.hasTarget() && (var4 || var3)) { - if (var4) { + this.method6302(var1, var2, wasClicked, var5); + if (!this.hasTarget() && (wasClicked || isClicked)) { + if (wasClicked) { this.field4001 = var1; this.field3989 = var2; this.field4006 = this.centerTileX; @@ -443,7 +446,7 @@ public class WorldMap { this.method6306(); } - if (var4) { + if (wasClicked) { this.field3982 = var5; this.field4000 = var1; this.field4012 = var2; @@ -460,7 +463,7 @@ public class WorldMap { if (this.mouseCoord != null && var3) { boolean var8 = Client.staffModLevel >= 2; if (var8 && KeyHandler.KeyHandler_pressedKeys[82] && KeyHandler.KeyHandler_pressedKeys[81]) { - WorldMapLabel.method418(this.mouseCoord.x, this.mouseCoord.y, this.mouseCoord.plane, false); + WorldMapLabel.changePlane(this.mouseCoord.x, this.mouseCoord.y, this.mouseCoord.plane, false); } else { boolean var9 = true; if (this.field4013) { @@ -729,60 +732,60 @@ public class WorldMap { garbageValue = "-365948534" ) @Export("draw") - public void draw(int var1, int var2, int var3, int var4, int var5) { + public void draw(int x, int y, int width, int height, int cycle) { int[] var6 = new int[4]; Rasterizer2D.Rasterizer2D_getClipArray(var6); - Rasterizer2D.Rasterizer2D_setClip(var1, var2, var3 + var1, var2 + var4); - Rasterizer2D.Rasterizer2D_fillRectangle(var1, var2, var3, var4, -16777216); + Rasterizer2D.Rasterizer2D_setClip(x, y, width + x, y + height); + Rasterizer2D.Rasterizer2D_fillRectangle(x, y, width, height, 0xff000000); int var7 = this.cacheLoader.getPercentLoaded(); if (var7 < 100) { - this.drawLoading(var1, var2, var3, var4, var7); - } else { - if (!this.worldMapManager.isLoaded()) { - this.worldMapManager.load(this.WorldMap_archive, this.currentMapArea.getInternalName(), Client.isMembersWorld); - if (!this.worldMapManager.isLoaded()) { - return; - } - } - - if (this.flashingElements != null) { - ++this.flashCycle; - if (this.flashCycle % this.cyclesPerFlash == 0) { - this.flashCycle = 0; - ++this.flashCount; - } - - if (this.flashCount >= this.maxFlashCount && !this.perpetualFlash) { - this.flashingElements = null; - } - } - - int var8 = (int)Math.ceil((double)((float)var3 / this.zoom)); - int var9 = (int)Math.ceil((double)((float)var4 / this.zoom)); - this.worldMapManager.drawTiles(this.centerTileX - var8 / 2, this.centerTileY - var9 / 2, var8 / 2 + this.centerTileX, var9 / 2 + this.centerTileY, var1, var2, var3 + var1, var2 + var4); - boolean var10; - if (!this.elementsDisabled) { - var10 = false; - if (var5 - this.field4011 > 100) { - this.field4011 = var5; - var10 = true; - } - - this.worldMapManager.method605(this.centerTileX - var8 / 2, this.centerTileY - var9 / 2, var8 / 2 + this.centerTileX, var9 / 2 + this.centerTileY, var1, var2, var3 + var1, var2 + var4, this.field3988, this.flashingElements, this.flashCycle, this.cyclesPerFlash, var10); - } - - this.method6319(var1, var2, var3, var4, var8, var9); - var10 = Client.staffModLevel >= 2; - if (var10 && this.showCoord && this.mouseCoord != null) { - this.font.draw("Coord: " + this.mouseCoord, Rasterizer2D.Rasterizer2D_xClipStart + 10, Rasterizer2D.Rasterizer2D_yClipStart + 20, 16776960, -1); - } - - this.worldMapDisplayWidth = var8; - this.worldMapDisplayHeight = var9; - this.worldMapDisplayX = var1; - this.worldMapDisplayY = var2; - Rasterizer2D.Rasterizer2D_setClipArray(var6); + this.drawLoading(x, y, width, height, var7); + return; } + if (!this.worldMapManager.isLoaded()) { + this.worldMapManager.load(this.WorldMap_archive, this.currentMapArea.getInternalName(), Client.isMembersWorld); + if (!this.worldMapManager.isLoaded()) { + return; + } + } + + if (this.flashingElements != null) { + ++this.flashCycle; + if (this.flashCycle % this.cyclesPerFlash == 0) { + this.flashCycle = 0; + ++this.flashCount; + } + + if (this.flashCount >= this.maxFlashCount && !this.perpetualFlash) { + this.flashingElements = null; + } + } + + int var8 = (int)Math.ceil((double)((float)width / this.zoom)); + int var9 = (int)Math.ceil((double)((float)height / this.zoom)); + this.worldMapManager.drawTiles(this.centerTileX - var8 / 2, this.centerTileY - var9 / 2, var8 / 2 + this.centerTileX, var9 / 2 + this.centerTileY, x, y, width + x, y + height); + boolean var10; + if (!this.elementsDisabled) { + var10 = false; + if (cycle - this.field4011 > 100) { + this.field4011 = cycle; + var10 = true; + } + + this.worldMapManager.drawElements(this.centerTileX - var8 / 2, this.centerTileY - var9 / 2, var8 / 2 + this.centerTileX, var9 / 2 + this.centerTileY, x, y, width + x, y + height, this.field3988, this.flashingElements, this.flashCycle, this.cyclesPerFlash, var10); + } + + this.method6319(x, y, width, height, var8, var9); + var10 = Client.staffModLevel >= 2; + if (var10 && this.showCoord && this.mouseCoord != null) { + this.font.draw("Coord: " + this.mouseCoord, Rasterizer2D.Rasterizer2D_xClipStart + 10, Rasterizer2D.Rasterizer2D_yClipStart + 20, 0xffff00, -1); + } + + this.worldMapDisplayWidth = var8; + this.worldMapDisplayHeight = var9; + this.worldMapDisplayX = x; + this.worldMapDisplayY = y; + Rasterizer2D.Rasterizer2D_setClipArray(var6); } @ObfuscatedName("z") @@ -794,18 +797,18 @@ public class WorldMap { if (this.sprite == null) { return true; } - if (this.sprite.subWidth == var1 && this.sprite.subHeight == var2) { - if (this.worldMapManager.pixelsPerTile != this.cachedPixelsPerTile) { - return true; - } - if (this.field4030 != Client.field924) { - return true; - } - if (var3 <= 0 && var4 <= 0) { - return var3 + var1 < var5 || var2 + var4 < var6; - } + if (this.sprite.subWidth != var1 || this.sprite.subHeight != var2) { return true; } + if (this.worldMapManager.pixelsPerTile != this.cachedPixelsPerTile) { + return true; + } + if (this.field4030 != Client.field924) { + return true; + } + if (var3 <= 0 && var4 <= 0) { + return var3 + var1 < var5 || var2 + var4 < var6; + } return true; } @@ -815,39 +818,40 @@ public class WorldMap { garbageValue = "-125" ) void method6319(int var1, int var2, int var3, int var4, int var5, int var6) { - if (PendingSpawn.field944 != null) { - int var7 = 512 / (this.worldMapManager.pixelsPerTile * 2); - int var8 = var3 + 512; - int var9 = var4 + 512; - float var10 = 1.0F; - var8 = (int)((float)var8 / var10); - var9 = (int)((float)var9 / var10); - int var11 = this.getDisplayX() - var5 / 2 - var7; - int var12 = this.getDisplayY() - var6 / 2 - var7; - int var13 = var1 - (var7 + var11 - this.minCachedTileX) * this.worldMapManager.pixelsPerTile; - int var14 = var2 - this.worldMapManager.pixelsPerTile * (var7 - (var12 - this.minCachedTileY)); - if (this.method6318(var8, var9, var13, var14, var3, var4)) { - if (this.sprite != null && this.sprite.subWidth == var8 && this.sprite.subHeight == var9) { - Arrays.fill(this.sprite.pixels, 0); - } else { - this.sprite = new Sprite(var8, var9); - } - - this.minCachedTileX = this.getDisplayX() - var5 / 2 - var7; - this.minCachedTileY = this.getDisplayY() - var6 / 2 - var7; - this.cachedPixelsPerTile = this.worldMapManager.pixelsPerTile; - PendingSpawn.field944.method4321(this.minCachedTileX, this.minCachedTileY, this.sprite, (float)this.cachedPixelsPerTile / var10); - this.field4030 = Client.field924; - var13 = var1 - (var11 + var7 - this.minCachedTileX) * this.worldMapManager.pixelsPerTile; - var14 = var2 - this.worldMapManager.pixelsPerTile * (var7 - (var12 - this.minCachedTileY)); - } - - Rasterizer2D.Rasterizer2D_fillRectangleAlpha(var1, var2, var3, var4, 0, 128); - if (1.0F == var10) { - this.sprite.method6135(var13, var14, 192); + if (PendingSpawn.field944 == null) { + return; + } + int var7 = 512 / (this.worldMapManager.pixelsPerTile * 2); + int var8 = var3 + 512; + int var9 = var4 + 512; + float var10 = 1.0F; + var8 = (int)((float)var8 / var10); + var9 = (int)((float)var9 / var10); + int var11 = this.getDisplayX() - var5 / 2 - var7; + int var12 = this.getDisplayY() - var6 / 2 - var7; + int var13 = var1 - (var7 + var11 - this.minCachedTileX) * this.worldMapManager.pixelsPerTile; + int var14 = var2 - this.worldMapManager.pixelsPerTile * (var7 - (var12 - this.minCachedTileY)); + if (this.method6318(var8, var9, var13, var14, var3, var4)) { + if (this.sprite != null && this.sprite.subWidth == var8 && this.sprite.subHeight == var9) { + Arrays.fill(this.sprite.pixels, 0); } else { - this.sprite.method6217(var13, var14, (int)(var10 * (float)var8), (int)((float)var9 * var10), 192); + this.sprite = new Sprite(var8, var9); } + + this.minCachedTileX = this.getDisplayX() - var5 / 2 - var7; + this.minCachedTileY = this.getDisplayY() - var6 / 2 - var7; + this.cachedPixelsPerTile = this.worldMapManager.pixelsPerTile; + PendingSpawn.field944.method4321(this.minCachedTileX, this.minCachedTileY, this.sprite, (float)this.cachedPixelsPerTile / var10); + this.field4030 = Client.field924; + var13 = var1 - (var11 + var7 - this.minCachedTileX) * this.worldMapManager.pixelsPerTile; + var14 = var2 - this.worldMapManager.pixelsPerTile * (var7 - (var12 - this.minCachedTileY)); + } + + Rasterizer2D.Rasterizer2D_fillRectangleAlpha(var1, var2, var3, var4, 0, 128); + if (1.0F == var10) { + this.sprite.method6135(var13, var14, 192); + } else { + this.sprite.method6217(var13, var14, (int)(var10 * (float)var8), (int)((float)var9 * var10), 192); } } @@ -859,7 +863,7 @@ public class WorldMap { ) @Export("drawOverview") public void drawOverview(int var1, int var2, int var3, int var4) { - if (this.cacheLoader.getIsLoaded()) { + if (this.cacheLoader.isLoaded()) { if (!this.worldMapManager.isLoaded()) { this.worldMapManager.load(this.WorldMap_archive, this.currentMapArea.getInternalName(), Client.isMembersWorld); if (!this.worldMapManager.isLoaded()) { @@ -887,13 +891,13 @@ public class WorldMap { garbageValue = "1955930802" ) @Export("drawLoading") - void drawLoading(int var1, int var2, int var3, int var4, int var5) { + void drawLoading(int x, int y, int width, int height, int percentLoaded) { byte var6 = 20; - int var7 = var3 / 2 + var1; - int var8 = var4 / 2 + var2 - 18 - var6; - Rasterizer2D.Rasterizer2D_fillRectangle(var1, var2, var3, var4, -16777216); + int var7 = width / 2 + x; + int var8 = height / 2 + y - 18 - var6; + Rasterizer2D.Rasterizer2D_fillRectangle(x, y, width, height, 0xff000000); Rasterizer2D.Rasterizer2D_drawRectangle(var7 - 152, var8, 304, 34, -65536); - Rasterizer2D.Rasterizer2D_fillRectangle(var7 - 150, var8 + 2, var5 * 3, 30, -65536); + Rasterizer2D.Rasterizer2D_fillRectangle(var7 - 150, var8 + 2, percentLoaded * 3, 30, -65536); this.font.drawCentered("Loading...", var7, var6 + var8, -1, -1); } @@ -958,7 +962,7 @@ public class WorldMap { ) @Export("isCacheLoaded") public boolean isCacheLoaded() { - return this.cacheLoader.getIsLoaded(); + return this.cacheLoader.isLoaded(); } @ObfuscatedName("az") @@ -1168,8 +1172,8 @@ public class WorldMap { this.flashCycle = 0; for (int var2 = 0; var2 < UserComparator1.WorldMapElement_count; ++var2) { - if (class222.getWorldMapElement(var2) != null && class222.getWorldMapElement(var2).category == var1) { - this.flashingElements.add(class222.getWorldMapElement(var2).objectId); + if (class222.WorldMapElement_get(var2) != null && class222.WorldMapElement_get(var2).category == var1) { + this.flashingElements.add(class222.WorldMapElement_get(var2).objectId); } } @@ -1225,8 +1229,8 @@ public class WorldMap { } for (int var3 = 0; var3 < UserComparator1.WorldMapElement_count; ++var3) { - if (class222.getWorldMapElement(var3) != null && class222.getWorldMapElement(var3).category == var1) { - int var4 = class222.getWorldMapElement(var3).objectId; + if (class222.WorldMapElement_get(var3) != null && class222.WorldMapElement_get(var3).category == var1) { + int var4 = class222.WorldMapElement_get(var3).objectId; if (!var2) { this.enabledElementIds.add(var4); } else { @@ -1284,34 +1288,37 @@ public class WorldMap { signature = "(IIIIIII)V", garbageValue = "90618974" ) - public void method6482(int var1, int var2, int var3, int var4, int var5, int var6) { - if (this.cacheLoader.getIsLoaded()) { - int var7 = (int)Math.ceil((double)((float)var3 / this.zoom)); - int var8 = (int)Math.ceil((double)((float)var4 / this.zoom)); - List var9 = this.worldMapManager.method607(this.centerTileX - var7 / 2 - 1, this.centerTileY - var8 / 2 - 1, var7 / 2 + this.centerTileX + 1, var8 / 2 + this.centerTileY + 1, var1, var2, var3, var4, var5, var6); - if (!var9.isEmpty()) { - Iterator var10 = var9.iterator(); - - boolean var13; - do { - if (!var10.hasNext()) { - return; - } - - AbstractWorldMapIcon var11 = (AbstractWorldMapIcon)var10.next(); - WorldMapElement var12 = class222.getWorldMapElement(var11.getElement()); - var13 = false; - - for (int var14 = this.field4020.length - 1; var14 >= 0; --var14) { - if (var12.strings[var14] != null) { - class188.insertMenuItemNoShift(var12.strings[var14], var12.string1, this.field4020[var14], var11.getElement(), var11.coord1.packed(), var11.coord2.packed()); - var13 = true; - } - } - } while(!var13); - - } + @Export("addElementMenuOptions") + public void addElementMenuOptions(int xOffset, int yOffset, int width, int height, int mouseX, int mouseY) { + if (!this.cacheLoader.isLoaded()) { + return; } + int var7 = (int)Math.ceil((double)((float)width / this.zoom)); + int var8 = (int)Math.ceil((double)((float)height / this.zoom)); + List var9 = this.worldMapManager.method607(this.centerTileX - var7 / 2 - 1, this.centerTileY - var8 / 2 - 1, var7 / 2 + this.centerTileX + 1, var8 / 2 + this.centerTileY + 1, xOffset, yOffset, width, height, mouseX, mouseY); + if (var9.isEmpty()) { + return; + } + Iterator var10 = var9.iterator(); + + boolean var13; + do { + if (!var10.hasNext()) { + return; + } + + AbstractWorldMapIcon var11 = (AbstractWorldMapIcon)var10.next(); + WorldMapElement var12 = class222.WorldMapElement_get(var11.getElement()); + var13 = false; + + for (int var14 = this.menuOpcodes.length - 1; var14 >= 0; --var14) { + if (var12.menuActions[var14] != null) { + class188.insertMenuItemNoShift(var12.menuActions[var14], var12.menuTargetName, this.menuOpcodes[var14], var11.getElement(), var11.coord1.packed(), var11.coord2.packed()); + var13 = true; + } + } + } while(!var13); + } @ObfuscatedName("bx") @@ -1320,7 +1327,7 @@ public class WorldMap { garbageValue = "719601861" ) public Coord method6352(int var1, Coord var2) { - if (!this.cacheLoader.getIsLoaded()) { + if (!this.cacheLoader.isLoaded()) { return null; } if (!this.worldMapManager.isLoaded()) { @@ -1397,7 +1404,7 @@ public class WorldMap { ) @Export("iconStart") public AbstractWorldMapIcon iconStart() { - if (!this.cacheLoader.getIsLoaded()) { + if (!this.cacheLoader.isLoaded()) { return null; } if (!this.worldMapManager.isLoaded()) { diff --git a/runescape-client/src/main/java/WorldMapArchiveLoader.java b/runescape-client/src/main/java/WorldMapArchiveLoader.java index f3e7491d63..542725bfc9 100644 --- a/runescape-client/src/main/java/WorldMapArchiveLoader.java +++ b/runescape-client/src/main/java/WorldMapArchiveLoader.java @@ -23,15 +23,15 @@ public class WorldMapArchiveLoader { @Export("percentLoaded") int percentLoaded; @ObfuscatedName("i") - @Export("isLoaded") - boolean isLoaded; + @Export("loaded") + boolean loaded; @ObfuscatedSignature( signature = "(Lhp;)V" ) WorldMapArchiveLoader(AbstractArchive var1) { this.percentLoaded = 0; - this.isLoaded = false; + this.loaded = false; this.archive = var1; } @@ -46,7 +46,7 @@ public class WorldMapArchiveLoader { if (var1 != this.cacheName) { this.cacheName = var1; this.percentLoaded = 0; - this.isLoaded = false; + this.loaded = false; this.load(); } } @@ -81,7 +81,7 @@ public class WorldMapArchiveLoader { } this.percentLoaded = 100; - this.isLoaded = true; + this.loaded = true; } return this.percentLoaded; @@ -92,9 +92,9 @@ public class WorldMapArchiveLoader { signature = "(I)Z", garbageValue = "1906092832" ) - @Export("getIsLoaded") - boolean getIsLoaded() { - return this.isLoaded; + @Export("isLoaded") + boolean isLoaded() { + return this.loaded; } @ObfuscatedName("p") diff --git a/runescape-client/src/main/java/WorldMapArea.java b/runescape-client/src/main/java/WorldMapArea.java index 48d8b6c53c..a160bde3e1 100644 --- a/runescape-client/src/main/java/WorldMapArea.java +++ b/runescape-client/src/main/java/WorldMapArea.java @@ -427,7 +427,7 @@ public class WorldMapArea { var1.genPlaceholder(getItemDefinition(var1.placeholderTemplate), getItemDefinition(var1.placeholder)); } - if (!ModelData0.inMembersWorld && var1.isMembersOnly) { + if (!ModelData0.ItemDefinition_inMembersWorld && var1.isMembersOnly) { var1.name = "Members object"; var1.isTradable = false; var1.groundActions = null; @@ -608,7 +608,7 @@ public class WorldMapArea { var22.offset += var7; NetCache.field3175 += var7; if (var6 == VarpDefinition.NetCache_responseArchiveBuffer.offset) { - if (16711935L == class226.NetCache_currentResponse.key) { + if (0xff00ffL == class226.NetCache_currentResponse.key) { AbstractRasterProvider.NetCache_reference = VarpDefinition.NetCache_responseArchiveBuffer; for (var8 = 0; var8 < 256; ++var8) { @@ -638,7 +638,7 @@ public class WorldMapArea { NetCache.NetCache_crcMismatches = 0; NetCache.NetCache_ioExceptions = 0; - class226.NetCache_currentResponse.archive.write((int)(class226.NetCache_currentResponse.key & 65535L), VarpDefinition.NetCache_responseArchiveBuffer.array, (class226.NetCache_currentResponse.key & 16711680L) == 16711680L, class215.field2545); + class226.NetCache_currentResponse.archive.write((int)(class226.NetCache_currentResponse.key & 65535L), VarpDefinition.NetCache_responseArchiveBuffer.array, (class226.NetCache_currentResponse.key & 0xff0000L) == 0xff0000L, class215.field2545); } class226.NetCache_currentResponse.remove(); diff --git a/runescape-client/src/main/java/WorldMapData_0.java b/runescape-client/src/main/java/WorldMapData_0.java index 070789d82a..86bf6ae9bc 100644 --- a/runescape-client/src/main/java/WorldMapData_0.java +++ b/runescape-client/src/main/java/WorldMapData_0.java @@ -78,7 +78,8 @@ public class WorldMapData_0 extends AbstractWorldMapData { signature = "(Lhp;I)V", garbageValue = "-1590503408" ) - public static void method173(AbstractArchive var0) { + @Export("InvDefinition_setArchives") + public static void InvDefinition_setArchives(AbstractArchive var0) { InvDefinition.InvDefinition_archive = var0; } } diff --git a/runescape-client/src/main/java/WorldMapDecoration.java b/runescape-client/src/main/java/WorldMapDecoration.java index 8e3fef0932..f733190e8f 100644 --- a/runescape-client/src/main/java/WorldMapDecoration.java +++ b/runescape-client/src/main/java/WorldMapDecoration.java @@ -52,7 +52,7 @@ public class WorldMapDecoration { var3 = var2 ? Interpreter.field1111 : Calendar.field2507; } - Strings.method4120(var3); + Strings.invalidateWidget(var3); if (var0 == ScriptOpcodes.CC_SETOBJECT || var0 == ScriptOpcodes.CC_SETOBJECT_NONUM || var0 == ScriptOpcodes.CC_SETOBJECT_ALWAYS_NUM) { HealthBarUpdate.Interpreter_intStackSize -= 2; int var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; diff --git a/runescape-client/src/main/java/WorldMapElement.java b/runescape-client/src/main/java/WorldMapElement.java index a2f77eac51..b45bc93410 100644 --- a/runescape-client/src/main/java/WorldMapElement.java +++ b/runescape-client/src/main/java/WorldMapElement.java @@ -59,11 +59,11 @@ public class WorldMapElement extends DualNode { @Export("textSize") public int textSize; @ObfuscatedName("u") - @Export("strings") - public String[] strings; + @Export("menuActions") + public String[] menuActions; @ObfuscatedName("x") - @Export("string1") - public String string1; + @Export("menuTargetName") + public String menuTargetName; @ObfuscatedName("r") int[] field3221; @ObfuscatedName("v") @@ -117,7 +117,7 @@ public class WorldMapElement extends DualNode { this.sprite1 = -1; this.sprite2 = -1; this.textSize = 0; - this.strings = new String[5]; + this.menuActions = new String[5]; this.field3222 = Integer.MAX_VALUE; this.field3223 = Integer.MAX_VALUE; this.field3224 = Integer.MIN_VALUE; @@ -164,72 +164,72 @@ public class WorldMapElement extends DualNode { var1.readMedium(); } else if (var2 == 6) { this.textSize = var1.readUnsignedByte(); - } else { - int var3; - if (var2 == 7) { - var3 = var1.readUnsignedByte(); - if ((var3 & 1) == 0) { - } - - if ((var3 & 2) == 2) { - } - } else if (var2 == 8) { - var1.readUnsignedByte(); - } else if (var2 >= 10 && var2 <= 14) { - this.strings[var2 - 10] = var1.readStringCp1252NullTerminated(); - } else if (var2 == 15) { - var3 = var1.readUnsignedByte(); - this.field3221 = new int[var3 * 2]; - - int var4; - for (var4 = 0; var4 < var3 * 2; ++var4) { - this.field3221[var4] = var1.readShort(); - } - - var1.readInt(); - var4 = var1.readUnsignedByte(); - this.field3228 = new int[var4]; - - int var5; - for (var5 = 0; var5 < this.field3228.length; ++var5) { - this.field3228[var5] = var1.readInt(); - } - - this.field3214 = new byte[var3]; - - for (var5 = 0; var5 < var3; ++var5) { - this.field3214[var5] = var1.readByte(); - } - } else if (var2 != 16) { - if (var2 == 17) { - this.string1 = var1.readStringCp1252NullTerminated(); - } else if (var2 == 18) { - var1.method5511(); - } else if (var2 == 19) { - this.category = var1.readUnsignedShort(); - } else if (var2 == 21) { - var1.readInt(); - } else if (var2 == 22) { - var1.readInt(); - } else if (var2 == 23) { - var1.readUnsignedByte(); - var1.readUnsignedByte(); - var1.readUnsignedByte(); - } else if (var2 == 24) { - var1.readShort(); - var1.readShort(); - } else if (var2 == 25) { - var1.method5511(); - } else if (var2 == 28) { - var1.readUnsignedByte(); - } else if (var2 == 29) { - HorizontalAlignment[] var6 = new HorizontalAlignment[]{HorizontalAlignment.field3461, HorizontalAlignment.field3460, HorizontalAlignment.HorizontalAlignment_centered}; - this.horizontalAlignment = (HorizontalAlignment)SoundSystem.findEnumerated(var6, var1.readUnsignedByte()); - } else if (var2 == 30) { - VerticalAlignment[] var7 = new VerticalAlignment[]{VerticalAlignment.VerticalAlignment_centered, VerticalAlignment.field3195, VerticalAlignment.field3194}; - this.verticalAlignment = (VerticalAlignment)SoundSystem.findEnumerated(var7, var1.readUnsignedByte()); - } + } else if (var2 == 7) { + int var3 = var1.readUnsignedByte(); + if ((var3 & 1) == 0) + { } + + if ((var3 & 2) == 2) + { + } + } else if (var2 == 8) { + var1.readUnsignedByte(); + } else if (var2 >= 10 && var2 <= 14) { + this.menuActions[var2 - 10] = var1.readStringCp1252NullTerminated(); + } else if (var2 == 15) { + int var3 = var1.readUnsignedByte(); + this.field3221 = new int[var3 * 2]; + + int var4; + for (var4 = 0; var4 < var3 * 2; ++var4) { + this.field3221[var4] = var1.readShort(); + } + + var1.readInt(); + var4 = var1.readUnsignedByte(); + this.field3228 = new int[var4]; + + int var5; + for (var5 = 0; var5 < this.field3228.length; ++var5) { + this.field3228[var5] = var1.readInt(); + } + + this.field3214 = new byte[var3]; + + for (var5 = 0; var5 < var3; ++var5) { + this.field3214[var5] = var1.readByte(); + } + } else if (var2 == 16) { + return; + } + if (var2 == 17) { + this.menuTargetName = var1.readStringCp1252NullTerminated(); + } else if (var2 == 18) { + var1.method5511(); + } else if (var2 == 19) { + this.category = var1.readUnsignedShort(); + } else if (var2 == 21) { + var1.readInt(); + } else if (var2 == 22) { + var1.readInt(); + } else if (var2 == 23) { + var1.readUnsignedByte(); + var1.readUnsignedByte(); + var1.readUnsignedByte(); + } else if (var2 == 24) { + var1.readShort(); + var1.readShort(); + } else if (var2 == 25) { + var1.method5511(); + } else if (var2 == 28) { + var1.readUnsignedByte(); + } else if (var2 == 29) { + HorizontalAlignment[] var6 = new HorizontalAlignment[]{HorizontalAlignment.field3461, HorizontalAlignment.field3460, HorizontalAlignment.HorizontalAlignment_centered}; + this.horizontalAlignment = (HorizontalAlignment) SoundSystem.findEnumerated(var6, var1.readUnsignedByte()); + } else if (var2 == 30) { + VerticalAlignment[] var7 = new VerticalAlignment[]{VerticalAlignment.VerticalAlignment_centered, VerticalAlignment.field3195, VerticalAlignment.field3194}; + this.verticalAlignment = (VerticalAlignment) SoundSystem.findEnumerated(var7, var1.readUnsignedByte()); } } @@ -240,19 +240,20 @@ public class WorldMapElement extends DualNode { garbageValue = "2017602837" ) public void method4370() { - if (this.field3221 != null) { - for (int var1 = 0; var1 < this.field3221.length; var1 += 2) { - if (this.field3221[var1] < this.field3222) { - this.field3222 = this.field3221[var1]; - } else if (this.field3221[var1] > this.field3224) { - this.field3224 = this.field3221[var1]; - } + if (this.field3221 == null) { + return; + } + for (int var1 = 0; var1 < this.field3221.length; var1 += 2) { + if (this.field3221[var1] < this.field3222) { + this.field3222 = this.field3221[var1]; + } else if (this.field3221[var1] > this.field3224) { + this.field3224 = this.field3221[var1]; + } - if (this.field3221[var1 + 1] < this.field3223) { - this.field3223 = this.field3221[var1 + 1]; - } else if (this.field3221[var1 + 1] > this.field3231) { - this.field3231 = this.field3221[var1 + 1]; - } + if (this.field3221[var1 + 1] < this.field3223) { + this.field3223 = this.field3221[var1 + 1]; + } else if (this.field3221[var1 + 1] > this.field3231) { + this.field3231 = this.field3221[var1 + 1]; } } @@ -309,19 +310,21 @@ public class WorldMapElement extends DualNode { static final void method4368(boolean var0) { class186.playPcmPlayers(); ++Client.packetWriter.field1319; - if (Client.packetWriter.field1319 >= 50 || var0) { - Client.packetWriter.field1319 = 0; - if (!Client.field701 && Client.packetWriter.getSocket() != null) { - PacketBufferNode var1 = Archive.method4265(ClientPacket.field2225, Client.packetWriter.isaacCipher); - Client.packetWriter.method2219(var1); - - try { - Client.packetWriter.method2234(); - } catch (IOException var3) { - Client.field701 = true; - } - } - + if (Client.packetWriter.field1319 < 50 && !var0) { + return; } + Client.packetWriter.field1319 = 0; + if (Client.field701 || Client.packetWriter.getSocket() == null) { + return; + } + PacketBufferNode var1 = Archive.method4265(ClientPacket.field2225, Client.packetWriter.isaacCipher); + Client.packetWriter.method2219(var1); + + try { + Client.packetWriter.method2234(); + } catch (IOException var3) { + Client.field701 = true; + } + } } diff --git a/runescape-client/src/main/java/WorldMapID.java b/runescape-client/src/main/java/WorldMapID.java index 1b573d35c8..7ac6c9db2a 100644 --- a/runescape-client/src/main/java/WorldMapID.java +++ b/runescape-client/src/main/java/WorldMapID.java @@ -239,7 +239,7 @@ public class WorldMapID { } Client.isSpellSelected = false; - Strings.method4120(var0); + Strings.invalidateWidget(var0); } } diff --git a/runescape-client/src/main/java/WorldMapIcon_0.java b/runescape-client/src/main/java/WorldMapIcon_0.java index 89517da150..827d05a5fa 100644 --- a/runescape-client/src/main/java/WorldMapIcon_0.java +++ b/runescape-client/src/main/java/WorldMapIcon_0.java @@ -54,7 +54,7 @@ public class WorldMapIcon_0 extends AbstractWorldMapIcon { super(var1, var2); this.element = var3; this.label = var4; - WorldMapElement var5 = class222.getWorldMapElement(this.getElement()); + WorldMapElement var5 = class222.WorldMapElement_get(this.getElement()); Sprite var6 = var5.getSpriteBool(false); if (var6 != null) { this.subWidth = var6.subWidth; diff --git a/runescape-client/src/main/java/WorldMapIcon_1.java b/runescape-client/src/main/java/WorldMapIcon_1.java index 41c3c543b2..2869b0d7dd 100644 --- a/runescape-client/src/main/java/WorldMapIcon_1.java +++ b/runescape-client/src/main/java/WorldMapIcon_1.java @@ -123,8 +123,8 @@ public class WorldMapIcon_1 extends AbstractWorldMapIcon { @Export("init") void init() { this.element = ViewportMouse.getObjectDefinition(this.objectDefId).transform().mapIconId; - this.label = this.region.createMapLabel(class222.getWorldMapElement(this.element)); - WorldMapElement var1 = class222.getWorldMapElement(this.getElement()); + this.label = this.region.createMapLabel(class222.WorldMapElement_get(this.element)); + WorldMapElement var1 = class222.WorldMapElement_get(this.getElement()); Sprite var2 = var1.getSpriteBool(false); if (var2 != null) { this.subWidth = var2.subWidth; diff --git a/runescape-client/src/main/java/WorldMapLabel.java b/runescape-client/src/main/java/WorldMapLabel.java index 2b518b79f5..f2586dcc30 100644 --- a/runescape-client/src/main/java/WorldMapLabel.java +++ b/runescape-client/src/main/java/WorldMapLabel.java @@ -115,7 +115,8 @@ public class WorldMapLabel { signature = "(IB)Ljava/lang/String;", garbageValue = "108" ) - static String method417(int var0) { + @Export("getMenuText") + static String getMenuText(int var0) { if (var0 < 0) { return ""; } @@ -127,7 +128,8 @@ public class WorldMapLabel { signature = "(IIIZI)V", garbageValue = "-1379117889" ) - public static void method418(int var0, int var1, int var2, boolean var3) { + @Export("changePlane") + public static void changePlane(int var0, int var1, int var2, boolean var3) { PacketBufferNode var4 = Archive.method4265(ClientPacket.field2296, Client.packetWriter.isaacCipher); var4.packetBuffer.writeIntME(var3 ? Client.field855 : 0); var4.packetBuffer.writeShortLE(var1); diff --git a/runescape-client/src/main/java/WorldMapManager.java b/runescape-client/src/main/java/WorldMapManager.java index ae88f71c25..e2466a532a 100644 --- a/runescape-client/src/main/java/WorldMapManager.java +++ b/runescape-client/src/main/java/WorldMapManager.java @@ -240,7 +240,7 @@ public final class WorldMapManager { for (int var21 = var13.x; var21 < var13.x + var13.width; ++var21) { for (int var22 = var13.y; var22 < var13.y + var13.height; ++var22) { - this.regions[var21][var22].method506(var5 + var18 * (this.regions[var21][var22].regionx * 64 - var19) / 64, var8 - var18 * (this.regions[var21][var22].regionY * 64 - var20 + 64) / 64, var18); + this.regions[var21][var22].method506(var5 + var18 * (this.regions[var21][var22].regionX * 64 - var19) / 64, var8 - var18 * (this.regions[var21][var22].regionY * 64 - var20 + 64) / 64, var18); } } @@ -251,12 +251,13 @@ public final class WorldMapManager { signature = "(IIIIIIIILjava/util/HashSet;Ljava/util/HashSet;IIZI)V", garbageValue = "-855095363" ) - public final void method605(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, HashSet var9, HashSet var10, int var11, int var12, boolean var13) { - WorldMapRectangle var14 = this.createWorldMapRectangle(var1, var2, var3, var4); - float var15 = this.getPixelsPerTile(var7 - var5, var3 - var1); + @Export("drawElements") + public final void drawElements(int minTileX, int minTileY, int maxTileX, int maxTileY, int x, int y, int endX, int endY, HashSet var9, HashSet flashingElements, int flashCycle, int cyclesPerFlash, boolean var13) { + WorldMapRectangle var14 = this.createWorldMapRectangle(minTileX, minTileY, maxTileX, maxTileY); + float var15 = this.getPixelsPerTile(endX - x, maxTileX - minTileX); int var16 = (int)(var15 * 64.0F); - int var17 = this.tileX * 4096 + var1; - int var18 = this.tileY * 4096 + var2; + int var17 = this.tileX * 4096 + minTileX; + int var18 = this.tileY * 4096 + minTileY; int var19; int var20; @@ -266,14 +267,14 @@ public final class WorldMapManager { this.regions[var19][var20].initWorldMapIcon1s(); } - this.regions[var19][var20].method432(var5 + var16 * (this.regions[var19][var20].regionx * 64 - var17) / 64, var8 - var16 * (this.regions[var19][var20].regionY * 64 - var18 + 64) / 64, var16, var9); + this.regions[var19][var20].method432(x + var16 * (this.regions[var19][var20].regionX * 64 - var17) / 64, endY - var16 * (this.regions[var19][var20].regionY * 64 - var18 + 64) / 64, var16, var9); } } - if (var10 != null && var11 > 0) { + if (flashingElements != null && flashCycle > 0) { for (var19 = var14.x; var19 < var14.width + var14.x; ++var19) { for (var20 = var14.y; var20 < var14.height + var14.y; ++var20) { - this.regions[var19][var20].method433(var10, var11, var12); + this.regions[var19][var20].flashElements(flashingElements, flashCycle, cyclesPerFlash); } } } @@ -288,7 +289,7 @@ public final class WorldMapManager { @Export("drawOverview") public void drawOverview(int var1, int var2, int var3, int var4, HashSet var5, int var6, int var7) { if (this.compositeTextureSprite != null) { - this.compositeTextureSprite.method6125(var1, var2, var3, var4); + this.compositeTextureSprite.drawScaledAt(var1, var2, var3, var4); if (var6 > 0 && var6 % var7 < var7 / 2) { if (this.icons == null) { this.buildIcons0(); @@ -313,7 +314,7 @@ public final class WorldMapManager { AbstractWorldMapIcon var12 = (AbstractWorldMapIcon)var11.next(); int var13 = var3 * (var12.coord2.x - this.tileX * 4096) / (this.tileWidth * 64); int var14 = var4 - (var12.coord2.y - this.tileY * 4096) * var4 / (this.tileHeight * 64); - Rasterizer2D.Rasterizer2D_drawCircleAlpha(var13 + var1, var14 + var2, 2, 16776960, 256); + Rasterizer2D.Rasterizer2D_drawCircleAlpha(var13 + var1, var14 + var2, 2, 0xffff00, 256); } } } @@ -325,20 +326,20 @@ public final class WorldMapManager { signature = "(IIIIIIIIIII)Ljava/util/List;", garbageValue = "286331893" ) - public List method607(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10) { + public List method607(int minTileX, int minTileY, int maxTileX, int maxTileY, int xOffset, int yOffset, int width, int height, int mouseX, int mouseY) { LinkedList var11 = new LinkedList(); if (!this.loaded) { return var11; } - WorldMapRectangle var12 = this.createWorldMapRectangle(var1, var2, var3, var4); - float var13 = this.getPixelsPerTile(var7, var3 - var1); + WorldMapRectangle var12 = this.createWorldMapRectangle(minTileX, minTileY, maxTileX, maxTileY); + float var13 = this.getPixelsPerTile(width, maxTileX - minTileX); int var14 = (int)(64.0F * var13); - int var15 = this.tileX * 4096 + var1; - int var16 = this.tileY * 4096 + var2; + int var15 = this.tileX * 4096 + minTileX; + int var16 = this.tileY * 4096 + minTileY; for (int var17 = var12.x; var17 < var12.width + var12.x; ++var17) { for (int var18 = var12.y; var18 < var12.y + var12.height; ++var18) { - List var19 = this.regions[var17][var18].method440(var5 + var14 * (this.regions[var17][var18].regionx * 64 - var15) / 64, var8 + var6 - var14 * (this.regions[var17][var18].regionY * 64 - var16 + 64) / 64, var14, var9, var10); + List var19 = this.regions[var17][var18].method440(xOffset + var14 * (this.regions[var17][var18].regionX * 64 - var15) / 64, height + yOffset - var14 * (this.regions[var17][var18].regionY * 64 - var16 + 64) / 64, var14, mouseX, mouseY); if (!var19.isEmpty()) { var11.addAll(var19); } @@ -513,7 +514,7 @@ public final class WorldMapManager { int var9 = var8 - var7; String var6; if (var9 < -9) { - var6 = ClientPreferences.colorStartTag(16711680); + var6 = ClientPreferences.colorStartTag(0xff0000); } else if (var9 < -6) { var6 = ClientPreferences.colorStartTag(16723968); } else if (var9 < -3) { @@ -521,7 +522,7 @@ public final class WorldMapManager { } else if (var9 < 0) { var6 = ClientPreferences.colorStartTag(16756736); } else if (var9 > 9) { - var6 = ClientPreferences.colorStartTag(65280); + var6 = ClientPreferences.colorStartTag(0xff00); } else if (var9 > 6) { var6 = ClientPreferences.colorStartTag(4259584); } else if (var9 > 3) { @@ -529,7 +530,7 @@ public final class WorldMapManager { } else if (var9 > 0) { var6 = ClientPreferences.colorStartTag(12648192); } else { - var6 = ClientPreferences.colorStartTag(16776960); + var6 = ClientPreferences.colorStartTag(0xffff00); } var4 = var5 + var6 + " " + " (" + "level-" + var0.combatLevel + ")" + var0.actions[2]; @@ -539,10 +540,10 @@ public final class WorldMapManager { int var10; if (Client.isItemSelected == 1) { - class188.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ClientPreferences.colorStartTag(16777215) + var4, 14, var1, var2, var3); + class188.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ClientPreferences.colorStartTag(0xffffff) + var4, 14, var1, var2, var3); } else if (Client.isSpellSelected) { if ((WorldMapCacheName.selectedSpellFlags & 8) == 8) { - class188.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ClientPreferences.colorStartTag(16777215) + var4, 15, var1, var2, var3); + class188.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ClientPreferences.colorStartTag(0xffffff) + var4, 15, var1, var2, var3); } } else { for (var10 = 7; var10 >= 0; --var10) { @@ -570,14 +571,14 @@ public final class WorldMapManager { boolean var12 = false; var7 = Client.playerMenuOpcodes[var10] + var11; - class188.insertMenuItemNoShift(Client.playerMenuActions[var10], ClientPreferences.colorStartTag(16777215) + var4, var7, var1, var2, var3); + class188.insertMenuItemNoShift(Client.playerMenuActions[var10], ClientPreferences.colorStartTag(0xffffff) + var4, var7, var1, var2, var3); } } } for (var10 = 0; var10 < Client.menuOptionsCount; ++var10) { if (Client.menuOpcodes[var10] == 23) { - Client.menuTargetNames[var10] = ClientPreferences.colorStartTag(16777215) + var4; + Client.menuTargetNames[var10] = ClientPreferences.colorStartTag(0xffffff) + var4; break; } } diff --git a/runescape-client/src/main/java/WorldMapRegion.java b/runescape-client/src/main/java/WorldMapRegion.java index e1d7cb3b29..6e3a8e91b8 100644 --- a/runescape-client/src/main/java/WorldMapRegion.java +++ b/runescape-client/src/main/java/WorldMapRegion.java @@ -38,8 +38,8 @@ public class WorldMapRegion { @ObfuscatedGetter( intValue = -862345975 ) - @Export("regionx") - int regionx; + @Export("regionX") + int regionX; @ObfuscatedName("b") @ObfuscatedGetter( intValue = -908569217 @@ -82,12 +82,12 @@ public class WorldMapRegion { } WorldMapRegion(int var1, int var2, int var3, HashMap var4) { - this.regionx = var1; + this.regionX = var1; this.regionY = var2; this.worldMapData1List = new LinkedList(); this.icon0List = new LinkedList(); this.iconMap = new HashMap(); - this.backgroundColor = var3 | -16777216; + this.backgroundColor = var3 | 0xff000000; this.fonts = var4; } @@ -96,16 +96,17 @@ public class WorldMapRegion { signature = "(IIII)V", garbageValue = "1947241845" ) - void method506(int var1, int var2, int var3) { - Sprite var4 = PlayerType.getWorldMapRegionCachedSprite(this.regionx, this.regionY, this.pixelsPerTile); - if (var4 != null) { - if (var3 == this.pixelsPerTile * 64) { - var4.drawAt(var1, var2); - } else { - var4.method6144(var1, var2, var3, var3); - } - + void method506(int x, int y, int size) { + Sprite var4 = PlayerType.getWorldMapRegionCachedSprite(this.regionX, this.regionY, this.pixelsPerTile); + if (var4 == null) { + return; } + if (size == this.pixelsPerTile * 64) { + var4.drawAt(x, y); + } else { + var4.drawScaledWorldmap(x, y, size, size); + } + } @ObfuscatedName("k") @@ -132,7 +133,7 @@ public class WorldMapRegion { while (var3.hasNext()) { WorldMapData_1 var4 = (WorldMapData_1)var3.next(); - if (var4.getRegionX() == this.regionx && var4.getRegionY() == this.regionY) { + if (var4.getRegionX() == this.regionX && var4.getRegionY() == this.regionY) { this.worldMapData1List.add(var4); } } @@ -199,7 +200,7 @@ public class WorldMapRegion { ) @Export("getIcon") void getIcon(ObjectDefinition var1, int var2, int var3, int var4, AbstractWorldMapData var5) { - Coord var6 = new Coord(var2, var3 + this.regionx * 64, this.regionY * 64 + var4); + Coord var6 = new Coord(var2, var3 + this.regionX * 64, this.regionY * 64 + var4); Coord var7 = null; if (this.worldMapData_0 != null) { var7 = new Coord(this.worldMapData_0.minPlane + var2, var3 + this.worldMapData_0.regionXLow * 64, var4 + this.worldMapData_0.regionYLow * 64); @@ -212,7 +213,7 @@ public class WorldMapRegion { if (var1.transforms != null) { var10 = new WorldMapIcon_1(var7, var6, var1.id, this); } else { - WorldMapElement var9 = class222.getWorldMapElement(var1.mapIconId); + WorldMapElement var9 = class222.WorldMapElement_get(var1.mapIconId); var10 = new WorldMapIcon_0(var7, var6, var9.objectId, this.createMapLabel(var9)); } @@ -248,7 +249,7 @@ public class WorldMapRegion { while (var2.hasNext()) { WorldMapIcon_0 var3 = (WorldMapIcon_0)var2.next(); - if (var3.coord2.x >> 6 == this.regionx && var3.coord2.y >> 6 == this.regionY) { + if (var3.coord2.x >> 6 == this.regionX && var3.coord2.y >> 6 == this.regionY) { WorldMapIcon_0 var4 = new WorldMapIcon_0(var3.coord2, var3.coord2, var3.element, this.method502(var3.element)); this.icon0List.add(var4); } @@ -321,7 +322,7 @@ public class WorldMapRegion { void drawTile(int var1, class40 var2, IndexedSprite[] var3, AbstractArchive var4, AbstractArchive var5) { this.pixelsPerTile = var1; if (this.worldMapData_0 != null || !this.worldMapData1List.isEmpty()) { - if (PlayerType.getWorldMapRegionCachedSprite(this.regionx, this.regionY, var1) == null) { + if (PlayerType.getWorldMapRegionCachedSprite(this.regionX, this.regionY, var1) == null) { boolean var6 = true; var6 &= this.loadGeography(var4); int var8; @@ -349,7 +350,7 @@ public class WorldMapRegion { this.method435(var2, var3, var9); } - int var12 = this.regionx; + int var12 = this.regionX; int var13 = this.regionY; int var14 = this.pixelsPerTile; WorldMapRegion_cachedSprites.put(var11, Widget.getWorldMapSpriteHash(var12, var13, var14), var11.pixels.length * 4); @@ -378,21 +379,23 @@ public class WorldMapRegion { signature = "(Ljava/util/HashSet;IIB)V", garbageValue = "82" ) - void method433(HashSet var1, int var2, int var3) { + @Export("flashElements") + void flashElements(HashSet flashingElements, int flashCycle, int cyclesPerFlash) { Iterator var4 = this.iconMap.values().iterator(); while (var4.hasNext()) { AbstractWorldMapIcon var5 = (AbstractWorldMapIcon)var4.next(); - if (var5.hasValidElement()) { - int var6 = var5.getElement(); - if (var1.contains(var6)) { - WorldMapElement var7 = class222.getWorldMapElement(var6); - this.method493(var7, var5.screenX, var5.screenY, var2, var3); - } + if (!var5.hasValidElement()) { + continue; + } + int var6 = var5.getElement(); + if (flashingElements.contains(var6)) { + WorldMapElement var7 = class222.WorldMapElement_get(var6); + this.drawBackgroundCircle(var7, var5.screenX, var5.screenY, flashCycle, cyclesPerFlash); } } - this.method443(var1, var2, var3); + this.method443(flashingElements, flashCycle, cyclesPerFlash); } @ObfuscatedName("a") @@ -477,7 +480,7 @@ public class WorldMapRegion { Rasterizer2D.Rasterizer2D_fillRectangle(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, this.pixelsPerTile, this.backgroundColor); } - int var8 = 16711935; + int var8 = 0xff00ff; int var9; if (var7 != -1) { int var10 = this.backgroundColor; @@ -500,7 +503,7 @@ public class WorldMapRegion { if (var11 == null) { var9 = var10; } else if (var11.secondaryRgb >= 0) { - var9 = var11.secondaryRgb | -16777216; + var9 = var11.secondaryRgb | 0xff000000; } else { int var14; byte var15; @@ -531,8 +534,8 @@ public class WorldMapRegion { var17 = var18 + (var14 & 65408); } - var9 = Rasterizer3D.Rasterizer3D_colorPalette[var17] | -16777216; - } else if (var11.primaryRgb == 16711935) { + var9 = Rasterizer3D.Rasterizer3D_colorPalette[var17] | 0xff000000; + } else if (var11.primaryRgb == 0xff00ff) { var9 = var10; } else { var17 = class192.method3679(var11.hue, var11.saturation, var11.lightness); @@ -559,7 +562,7 @@ public class WorldMapRegion { var14 = var18 + (var17 & 65408); } - var9 = Rasterizer3D.Rasterizer3D_colorPalette[var14] | -16777216; + var9 = Rasterizer3D.Rasterizer3D_colorPalette[var14] | 0xff000000; } } @@ -586,97 +589,98 @@ public class WorldMapRegion { void method520(int var1, int var2, AbstractWorldMapData var3, class40 var4) { for (int var5 = 1; var5 < var3.planes; ++var5) { int var6 = var3.floorOverlayIds[var5][var1][var2] - 1; - if (var6 > -1) { - int var8 = this.backgroundColor; - FloorOverlayDefinition var10 = (FloorOverlayDefinition)FloorOverlayDefinition.FloorOverlayDefinition_cached.get((long)var6); - FloorOverlayDefinition var9; - if (var10 != null) { - var9 = var10; - } else { - byte[] var11 = FloorOverlayDefinition.FloorOverlayDefinition_archive.takeFile(4, var6); - var10 = new FloorOverlayDefinition(); - if (var11 != null) { - var10.decode(new Buffer(var11), var6); - } - - var10.postDecode(); - FloorOverlayDefinition.FloorOverlayDefinition_cached.put(var10, (long)var6); - var9 = var10; + if (var6 <= -1) { + continue; + } + int var8 = this.backgroundColor; + FloorOverlayDefinition var10 = (FloorOverlayDefinition)FloorOverlayDefinition.FloorOverlayDefinition_cached.get((long)var6); + FloorOverlayDefinition var9; + if (var10 != null) { + var9 = var10; + } else { + byte[] var11 = FloorOverlayDefinition.FloorOverlayDefinition_archive.takeFile(4, var6); + var10 = new FloorOverlayDefinition(); + if (var11 != null) { + var10.decode(new Buffer(var11), var6); } - int var7; - if (var9 == null) { - var7 = var8; - } else if (var9.secondaryRgb >= 0) { - var7 = var9.secondaryRgb | -16777216; - } else { - int var12; - byte var13; - int var16; - int var17; - if (var9.texture >= 0) { - var12 = Rasterizer3D.Rasterizer3D_textureLoader.getAverageTextureRGB(var9.texture); - var13 = 96; - if (var12 == -2) { - var16 = 12345678; - } else if (var12 == -1) { - if (var13 < 0) { - var13 = 0; - } else if (var13 > 127) { - var13 = 127; - } + var10.postDecode(); + FloorOverlayDefinition.FloorOverlayDefinition_cached.put(var10, (long)var6); + var9 = var10; + } - var17 = 127 - var13; - var16 = var17; - } else { - var17 = var13 * (var12 & 127) / 128; - if (var17 < 2) { - var17 = 2; - } else if (var17 > 126) { - var17 = 126; - } - - var16 = var17 + (var12 & 65408); + int var7; + if (var9 == null) { + var7 = var8; + } else if (var9.secondaryRgb >= 0) { + var7 = var9.secondaryRgb | 0xff000000; + } else { + int var12; + byte var13; + int var16; + int var17; + if (var9.texture >= 0) { + var12 = Rasterizer3D.Rasterizer3D_textureLoader.getAverageTextureRGB(var9.texture); + var13 = 96; + if (var12 == -2) { + var16 = 12345678; + } else if (var12 == -1) { + if (var13 < 0) { + var13 = 0; + } else if (var13 > 127) { + var13 = 127; } - var7 = Rasterizer3D.Rasterizer3D_colorPalette[var16] | -16777216; - } else if (var9.primaryRgb == 16711935) { - var7 = var8; + var17 = 127 - var13; + var16 = var17; } else { - var16 = class192.method3679(var9.hue, var9.saturation, var9.lightness); - var13 = 96; - if (var16 == -2) { - var12 = 12345678; - } else if (var16 == -1) { - if (var13 < 0) { - var13 = 0; - } else if (var13 > 127) { - var13 = 127; - } - - var17 = 127 - var13; - var12 = var17; - } else { - var17 = var13 * (var16 & 127) / 128; - if (var17 < 2) { - var17 = 2; - } else if (var17 > 126) { - var17 = 126; - } - - var12 = var17 + (var16 & 65408); + var17 = var13 * (var12 & 127) / 128; + if (var17 < 2) { + var17 = 2; + } else if (var17 > 126) { + var17 = 126; } - var7 = Rasterizer3D.Rasterizer3D_colorPalette[var12] | -16777216; + var16 = var17 + (var12 & 65408); } - } - if (var3.field165[var5][var1][var2] == 0) { - Rasterizer2D.Rasterizer2D_fillRectangle(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, this.pixelsPerTile, var7); + var7 = Rasterizer3D.Rasterizer3D_colorPalette[var16] | 0xff000000; + } else if (var9.primaryRgb == 0xff00ff) { + var7 = var8; } else { - var4.method698(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), 0, var7, this.pixelsPerTile, this.pixelsPerTile, var3.field165[var5][var1][var2], var3.field166[var5][var1][var2]); + var16 = class192.method3679(var9.hue, var9.saturation, var9.lightness); + var13 = 96; + if (var16 == -2) { + var12 = 12345678; + } else if (var16 == -1) { + if (var13 < 0) { + var13 = 0; + } else if (var13 > 127) { + var13 = 127; + } + + var17 = 127 - var13; + var12 = var17; + } else { + var17 = var13 * (var16 & 127) / 128; + if (var17 < 2) { + var17 = 2; + } else if (var17 > 126) { + var17 = 126; + } + + var12 = var17 + (var16 & 65408); + } + + var7 = Rasterizer3D.Rasterizer3D_colorPalette[var12] | 0xff000000; } } + + if (var3.field165[var5][var1][var2] == 0) { + Rasterizer2D.Rasterizer2D_fillRectangle(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), this.pixelsPerTile, this.pixelsPerTile, var7); + } else { + var4.method698(this.pixelsPerTile * var1, this.pixelsPerTile * (63 - var2), 0, var7, this.pixelsPerTile, this.pixelsPerTile, var3.field165[var5][var1][var2], var3.field166[var5][var1][var2]); + } } } @@ -812,7 +816,7 @@ public class WorldMapRegion { if (var12 != null && var12.hasValidElement()) { var12.screenX = var10; var12.screenY = var11; - WorldMapElement var13 = class222.getWorldMapElement(var12.getElement()); + WorldMapElement var13 = class222.WorldMapElement_get(var12.getElement()); if (!var3.contains(var13.getObjectId())) { this.method445(var12, var10, var11, var5); } @@ -832,9 +836,9 @@ public class WorldMapRegion { while (var4.hasNext()) { AbstractWorldMapIcon var5 = (AbstractWorldMapIcon)var4.next(); if (var5.hasValidElement()) { - WorldMapElement var6 = class222.getWorldMapElement(var5.getElement()); + WorldMapElement var6 = class222.WorldMapElement_get(var5.getElement()); if (var6 != null && var1.contains(var6.getObjectId())) { - this.method493(var6, var5.screenX, var5.screenY, var2, var3); + this.drawBackgroundCircle(var6, var5.screenX, var5.screenY, var2, var3); } } } @@ -846,16 +850,18 @@ public class WorldMapRegion { signature = "(Liw;IIIIB)V", garbageValue = "14" ) - void method493(WorldMapElement var1, int var2, int var3, int var4, int var5) { + @Export("drawBackgroundCircle") + void drawBackgroundCircle(WorldMapElement var1, int var2, int var3, int var4, int var5) { Sprite var6 = var1.getSpriteBool(false); - if (var6 != null) { - var6.drawAt2(var2 - var6.subWidth / 2, var3 - var6.subHeight / 2); - if (var4 % var5 < var5 / 2) { - Rasterizer2D.Rasterizer2D_drawCircleAlpha(var2, var3, 15, 16776960, 128); - Rasterizer2D.Rasterizer2D_drawCircleAlpha(var2, var3, 7, 16777215, 256); - } - + if (var6 == null) { + return; } + var6.drawTransBgAt(var2 - var6.subWidth / 2, var3 - var6.subHeight / 2); + if (var4 % var5 < var5 / 2) { + Rasterizer2D.Rasterizer2D_drawCircleAlpha(var2, var3, 15, 0xffff00, 128); + Rasterizer2D.Rasterizer2D_drawCircleAlpha(var2, var3, 7, 0xffffff, 256); + } + } @ObfuscatedName("ag") @@ -864,7 +870,7 @@ public class WorldMapRegion { garbageValue = "-89" ) void method445(AbstractWorldMapIcon var1, int var2, int var3, float var4) { - WorldMapElement var5 = class222.getWorldMapElement(var1.getElement()); + WorldMapElement var5 = class222.WorldMapElement_get(var1.getElement()); this.method446(var5, var2, var3); this.method447(var1, var5, var2, var3, var4); } @@ -879,7 +885,7 @@ public class WorldMapRegion { if (var4 != null) { int var5 = this.method455(var4, var1.horizontalAlignment); int var6 = this.method450(var4, var1.verticalAlignment); - var4.drawAt2(var5 + var2, var3 + var6); + var4.drawTransBgAt(var5 + var2, var3 + var6); } } @@ -891,11 +897,12 @@ public class WorldMapRegion { ) void method447(AbstractWorldMapIcon var1, WorldMapElement var2, int var3, int var4, float var5) { WorldMapLabel var6 = var1.getLabel(); - if (var6 != null) { - if (var6.size.method184(var5)) { - Font var7 = (Font)this.fonts.get(var6.size); - var7.drawLines(var6.text, var3 - var6.width / 2, var4, var6.width, var6.height, -16777216 | var2.field3217, 0, 1, 0, var7.ascent / 2); - } + if (var6 == null) { + return; + } + if (var6.size.method184(var5)) { + Font var7 = (Font)this.fonts.get(var6.size); + var7.drawLines(var6.text, var3 - var6.width / 2, var4, var6.width, var6.height, 0xff000000 | var2.field3217, 0, 1, 0, var7.ascent / 2); } } @@ -962,7 +969,7 @@ public class WorldMapRegion { garbageValue = "1732767815" ) WorldMapLabel method502(int var1) { - WorldMapElement var2 = class222.getWorldMapElement(var1); + WorldMapElement var2 = class222.WorldMapElement_get(var1); return this.createMapLabel(var2); } @@ -1009,31 +1016,31 @@ public class WorldMapRegion { ) List method440(int var1, int var2, int var3, int var4, int var5) { LinkedList var6 = new LinkedList(); - if (var4 >= var1 && var5 >= var2) { - if (var4 < var3 + var1 && var5 < var3 + var2) { - Iterator var7 = this.iconMap.values().iterator(); - - AbstractWorldMapIcon var8; - while (var7.hasNext()) { - var8 = (AbstractWorldMapIcon)var7.next(); - if (var8.hasValidElement() && var8.fitsScreen(var4, var5)) { - var6.add(var8); - } - } - - var7 = this.icon0List.iterator(); - - while (var7.hasNext()) { - var8 = (AbstractWorldMapIcon)var7.next(); - if (var8.hasValidElement() && var8.fitsScreen(var4, var5)) { - var6.add(var8); - } - } - - return var6; - } + if (var4 < var1 || var5 < var2) { return var6; } + if (var4 >= var3 + var1 || var5 >= var3 + var2) { + return var6; + } + Iterator var7 = this.iconMap.values().iterator(); + + AbstractWorldMapIcon var8; + while (var7.hasNext()) { + var8 = (AbstractWorldMapIcon)var7.next(); + if (var8.hasValidElement() && var8.fitsScreen(var4, var5)) { + var6.add(var8); + } + } + + var7 = this.icon0List.iterator(); + + while (var7.hasNext()) { + var8 = (AbstractWorldMapIcon)var7.next(); + if (var8.hasValidElement() && var8.fitsScreen(var4, var5)) { + var6.add(var8); + } + } + return var6; } diff --git a/runescape-client/src/main/java/WorldMapSection0.java b/runescape-client/src/main/java/WorldMapSection0.java index f39e9a5a24..a7a32910fd 100644 --- a/runescape-client/src/main/java/WorldMapSection0.java +++ b/runescape-client/src/main/java/WorldMapSection0.java @@ -351,7 +351,7 @@ public class WorldMapSection0 implements WorldMapSection { Rasterizer3D.method2976(16, 16); Rasterizer3D.field1768 = false; if (var9.placeholderTemplate != -1) { - var22.drawAt2(0, 0); + var22.drawTransBgAt(0, 0); } int var16 = var9.zoom2d; @@ -366,7 +366,7 @@ public class WorldMapSection0 implements WorldMapSection { var21.calculateBoundsCylinder(); var21.method2866(0, var9.yan2d, var9.zan2d, var9.xan2d, var9.offsetX2d, var21.height / 2 + var17 + var9.offsetY2d, var18 + var9.offsetY2d); if (var9.notedId != -1) { - var22.drawAt2(0, 0); + var22.drawTransBgAt(0, 0); } if (var2 >= 1) { @@ -374,7 +374,7 @@ public class WorldMapSection0 implements WorldMapSection { } if (var2 >= 2) { - var8.outline(16777215); + var8.outline(0xffffff); } if (var3 != 0) { @@ -383,7 +383,7 @@ public class WorldMapSection0 implements WorldMapSection { Rasterizer2D.Rasterizer2D_replace(var8.pixels, 36, 32); if (var9.noteTemplate != -1) { - var22.drawAt2(0, 0); + var22.drawTransBgAt(0, 0); } if (var4 == 1 || var4 == 2 && var9.isStackable == 1) { @@ -397,7 +397,7 @@ public class WorldMapSection0 implements WorldMapSection { var20 = "" + var1 / 1000000 + "M" + ""; } - var19.draw(var20, 0, 9, 16776960, 1); + var19.draw(var20, 0, 9, 0xffff00, 1); } if (!var5) { @@ -418,23 +418,26 @@ public class WorldMapSection0 implements WorldMapSection { ) @Export("addSequenceSoundEffect") static void addSequenceSoundEffect(SequenceDefinition var0, int var1, int var2, int var3) { - if (Client.soundEffectCount < 50 && Client.field892 != 0) { - if (var0.soundEffects != null && var1 < var0.soundEffects.length) { - int var4 = var0.soundEffects[var1]; - if (var4 != 0) { - int var5 = var4 >> 8; - int var6 = var4 >> 4 & 7; - int var7 = var4 & 15; - Client.soundEffectIds[Client.soundEffectCount] = var5; - Client.queuedSoundEffectLoops[Client.soundEffectCount] = var6; - Client.queuedSoundEffectDelays[Client.soundEffectCount] = 0; - Client.soundEffects[Client.soundEffectCount] = null; - int var8 = (var2 - 64) / 128; - int var9 = (var3 - 64) / 128; - Client.soundLocations[Client.soundEffectCount] = var7 + (var9 << 8) + (var8 << 16); - ++Client.soundEffectCount; - } - } + if (Client.soundEffectCount >= 50 || Client.field892 == 0) { + return; } + if (var0.soundEffects == null || var1 >= var0.soundEffects.length) { + return; + } + int var4 = var0.soundEffects[var1]; + if (var4 == 0) { + return; + } + int var5 = var4 >> 8; + int var6 = var4 >> 4 & 7; + int var7 = var4 & 15; + Client.soundEffectIds[Client.soundEffectCount] = var5; + Client.queuedSoundEffectLoops[Client.soundEffectCount] = var6; + Client.queuedSoundEffectDelays[Client.soundEffectCount] = 0; + Client.soundEffects[Client.soundEffectCount] = null; + int var8 = (var2 - 64) / 128; + int var9 = (var3 - 64) / 128; + Client.soundLocations[Client.soundEffectCount] = var7 + (var9 << 8) + (var8 << 16); + ++Client.soundEffectCount; } } diff --git a/runescape-client/src/main/java/WorldMapSection1.java b/runescape-client/src/main/java/WorldMapSection1.java index 454bf11e21..d7a44f4029 100644 --- a/runescape-client/src/main/java/WorldMapSection1.java +++ b/runescape-client/src/main/java/WorldMapSection1.java @@ -166,60 +166,58 @@ public class WorldMapSection1 implements WorldMapSection { ) @Export("parseIntCustomRadix") static int parseIntCustomRadix(CharSequence var0, int var1, boolean var2) { - if (var1 >= 2 && var1 <= 36) { - boolean var3 = false; - boolean var4 = false; - int var5 = 0; - int var6 = var0.length(); + if (var1 < 2 || var1 > 36) { + throw new IllegalArgumentException("" + var1); + } + boolean var3 = false; + boolean var4 = false; + int var5 = 0; + int var6 = var0.length(); - for (int var7 = 0; var7 < var6; ++var7) { - char var8 = var0.charAt(var7); - if (var7 == 0) { - if (var8 == '-') { - var3 = true; - continue; - } - - if (var8 == '+') { - continue; - } + for (int var7 = 0; var7 < var6; ++var7) { + char var8 = var0.charAt(var7); + if (var7 == 0) { + if (var8 == '-') { + var3 = true; + continue; } - int var10; - if (var8 >= '0' && var8 <= '9') { - var10 = var8 - '0'; - } else if (var8 >= 'A' && var8 <= 'Z') { - var10 = var8 - '7'; - } else { - if (var8 < 'a' || var8 > 'z') { - throw new NumberFormatException(); - } - - var10 = var8 - 'W'; + if (var8 == '+') { + continue; } - - if (var10 >= var1) { - throw new NumberFormatException(); - } - - if (var3) { - var10 = -var10; - } - - int var9 = var10 + var5 * var1; - if (var9 / var1 != var5) { - throw new NumberFormatException(); - } - - var5 = var9; - var4 = true; } - if (!var4) { + int var10; + if (var8 >= '0' && var8 <= '9') { + var10 = var8 - '0'; + } else if (var8 >= 'A' && var8 <= 'Z') { + var10 = var8 - '7'; + } else if (var8 >= 'a' && var8 <= 'z') { + var10 = var8 - 'W'; + } else { throw new NumberFormatException(); } - return var5; + + if (var10 >= var1) { + throw new NumberFormatException(); + } + + if (var3) { + var10 = -var10; + } + + int var9 = var10 + var5 * var1; + if (var9 / var1 != var5) { + throw new NumberFormatException(); + } + + var5 = var9; + var4 = true; } - throw new IllegalArgumentException("" + var1); + + if (!var4) { + throw new NumberFormatException(); + } + return var5; } } diff --git a/runescape-client/src/main/java/WorldMapSprite.java b/runescape-client/src/main/java/WorldMapSprite.java index 610f4d62f3..b1cb39ea68 100644 --- a/runescape-client/src/main/java/WorldMapSprite.java +++ b/runescape-client/src/main/java/WorldMapSprite.java @@ -45,8 +45,8 @@ public final class WorldMapSprite { signature = "(Lhp;I)V", garbageValue = "-2096884458" ) - @Export("setFloorUnderlayDefinitionArchive") - public static void setFloorUnderlayDefinitionArchive(AbstractArchive var0) { + @Export("FloorUnderlayDefinition_setArchives") + public static void FloorUnderlayDefinition_setArchives(AbstractArchive var0) { FloorUnderlayDefinition.FloorUnderlayDefinition_archive = var0; } @@ -57,25 +57,27 @@ public final class WorldMapSprite { ) @Export("drawMenuActionTextAt") static final void drawMenuActionTextAt(int var0, int var1) { - if (Client.menuOptionsCount >= 2 || Client.isItemSelected != 0 || Client.isSpellSelected) { - if (Client.showMouseOverText) { - int var2 = class13.method151(); - String var3; - if (Client.isItemSelected == 1 && Client.menuOptionsCount < 2) { - var3 = "Use" + " " + Client.selectedItemName + " " + "->"; - } else if (Client.isSpellSelected && Client.menuOptionsCount < 2) { - var3 = Client.selectedSpellActionName + " " + Client.selectedSpellName + " " + "->"; - } else { - var3 = WorldMapLabel.method417(var2); - } - - if (Client.menuOptionsCount > 2) { - var3 = var3 + ClientPreferences.colorStartTag(16777215) + " " + '/' + " " + (Client.menuOptionsCount - 2) + " more options"; - } - - WorldMapIcon_1.fontBold12.drawRandomAlphaAndSpacing(var3, var0 + 4, var1 + 15, 16777215, 0, Client.cycle / 1000); - } + if (Client.menuOptionsCount < 2 && Client.isItemSelected == 0 && !Client.isSpellSelected) { + return; } + if (!Client.showMouseOverText) { + return; + } + int var2 = class13.method151(); + String var3; + if (Client.isItemSelected == 1 && Client.menuOptionsCount < 2) { + var3 = "Use" + " " + Client.selectedItemName + " " + "->"; + } else if (Client.isSpellSelected && Client.menuOptionsCount < 2) { + var3 = Client.selectedSpellActionName + " " + Client.selectedSpellName + " " + "->"; + } else { + var3 = WorldMapLabel.getMenuText(var2); + } + + if (Client.menuOptionsCount > 2) { + var3 = var3 + ClientPreferences.colorStartTag(0xffffff) + " " + '/' + " " + (Client.menuOptionsCount - 2) + " more options"; + } + + WorldMapIcon_1.fontBold12.drawRandomAlphaAndSpacing(var3, var0 + 4, var1 + 15, 0xffffff, 0, Client.cycle / 1000); } @ObfuscatedName("id") @@ -87,14 +89,14 @@ public final class WorldMapSprite { static void revalidateWidgetScroll(Widget[] var0, Widget var1, boolean var2) { int var3 = var1.scrollWidth != 0 ? var1.scrollWidth : var1.width; int var4 = var1.scrollHeight != 0 ? var1.scrollHeight : var1.height; - class13.resizeWidget(var0, var1.id, var3, var4, var2); + class13.resizeInterface(var0, var1.id, var3, var4, var2); if (var1.children != null) { - class13.resizeWidget(var1.children, var1.id, var3, var4, var2); + class13.resizeInterface(var1.children, var1.id, var3, var4, var2); } InterfaceParent var5 = (InterfaceParent)Client.interfaceParents.get((long)var1.id); if (var5 != null) { - method416(var5.group, var3, var4, var2); + resizeComponents(var5.group, var3, var4, var2); } if (var1.contentType == 1337) { @@ -107,9 +109,10 @@ public final class WorldMapSprite { signature = "(IIIZI)V", garbageValue = "-2115353122" ) - static final void method416(int var0, int var1, int var2, boolean var3) { + @Export("resizeComponents") + static final void resizeComponents(int var0, int var1, int var2, boolean var3) { if (class162.loadInterface(var0)) { - class13.resizeWidget(Widget.Widget_interfaceComponents[var0], -1, var1, var2, var3); + class13.resizeInterface(Widget.Widget_interfaceComponents[var0], -1, var1, var2, var3); } } diff --git a/runescape-client/src/main/java/class1.java b/runescape-client/src/main/java/class1.java index d7fcf20937..6d2e8bf9e1 100644 --- a/runescape-client/src/main/java/class1.java +++ b/runescape-client/src/main/java/class1.java @@ -369,7 +369,7 @@ final class class1 implements class0 { if (var5 == 0) { BoundaryObject var36 = GrandExchangeOfferWorldComparator.scene.method3088(class42.plane, var7, var8); if (var36 != null) { - var39 = class43.method770(var36.tag); + var39 = class43.getObjectIdFromTag(var36.tag); if (var3 == 2) { var36.entity1 = new DynamicObject(var39, 2, var4 + 4, class42.plane, var7, var8, var9, false, var36.entity1); var36.entity2 = new DynamicObject(var39, 2, var4 + 1 & 3, class42.plane, var7, var8, var9, false, var36.entity2); @@ -382,7 +382,7 @@ final class class1 implements class0 { if (var5 == 1) { WallDecoration var43 = GrandExchangeOfferWorldComparator.scene.method3118(class42.plane, var7, var8); if (var43 != null) { - var39 = class43.method770(var43.tag); + var39 = class43.getObjectIdFromTag(var43.tag); if (var3 != 4 && var3 != 5) { if (var3 == 6) { var43.entity1 = new DynamicObject(var39, 4, var4 + 4, class42.plane, var7, var8, var9, false, var43.entity1); @@ -405,14 +405,14 @@ final class class1 implements class0 { } if (var44 != null) { - var44.entity = new DynamicObject(class43.method770(var44.tag), var3, var4, class42.plane, var7, var8, var9, false, var44.entity); + var44.entity = new DynamicObject(class43.getObjectIdFromTag(var44.tag), var3, var4, class42.plane, var7, var8, var9, false, var44.entity); } } if (var5 == 3) { FloorDecoration var45 = GrandExchangeOfferWorldComparator.scene.getFloorDecoration(class42.plane, var7, var8); if (var45 != null) { - var45.entity = new DynamicObject(class43.method770(var45.tag), 22, var4, class42.plane, var7, var8, var9, false, var45.entity); + var45.entity = new DynamicObject(class43.getObjectIdFromTag(var45.tag), 22, var4, class42.plane, var7, var8, var9, false, var45.entity); } } } diff --git a/runescape-client/src/main/java/class13.java b/runescape-client/src/main/java/class13.java index 222d6c8cbc..87d24bd94d 100644 --- a/runescape-client/src/main/java/class13.java +++ b/runescape-client/src/main/java/class13.java @@ -37,8 +37,8 @@ public class class13 { signature = "([Lhj;IIIZI)V", garbageValue = "1879036172" ) - @Export("resizeWidget") - static void resizeWidget(Widget[] var0, int var1, int var2, int var3, boolean var4) { + @Export("resizeInterface") + static void resizeInterface(Widget[] var0, int var1, int var2, int var3, boolean var4) { for (int var5 = 0; var5 < var0.length; ++var5) { Widget var6 = var0[var5]; if (var6 != null && var6.parentId == var1) { diff --git a/runescape-client/src/main/java/class162.java b/runescape-client/src/main/java/class162.java index 43edc182ec..df025d4947 100644 --- a/runescape-client/src/main/java/class162.java +++ b/runescape-client/src/main/java/class162.java @@ -11,7 +11,7 @@ public class class162 implements class161 { ) @Export("loadInterface") public static boolean loadInterface(int var0) { - if (ViewportMouse.loadedInterfaces[var0]) { + if (ViewportMouse.Widget_loadedInterfaces[var0]) { return true; } if (!Widget.Widget_archive.tryLoadGroup(var0)) { @@ -19,7 +19,7 @@ public class class162 implements class161 { } int var1 = Widget.Widget_archive.getGroupFileCount(var0); if (var1 == 0) { - ViewportMouse.loadedInterfaces[var0] = true; + ViewportMouse.Widget_loadedInterfaces[var0] = true; return true; } if (Widget.Widget_interfaceComponents[var0] == null) { @@ -27,21 +27,23 @@ public class class162 implements class161 { } for (int var2 = 0; var2 < var1; ++var2) { - if (Widget.Widget_interfaceComponents[var0][var2] == null) { - byte[] var3 = Widget.Widget_archive.takeFile(var0, var2); - if (var3 != null) { - Widget.Widget_interfaceComponents[var0][var2] = new Widget(); - Widget.Widget_interfaceComponents[var0][var2].id = var2 + (var0 << 16); - if (var3[0] == -1) { - Widget.Widget_interfaceComponents[var0][var2].decode(new Buffer(var3)); - } else { - Widget.Widget_interfaceComponents[var0][var2].decodeLegacy(new Buffer(var3)); - } - } + if (Widget.Widget_interfaceComponents[var0][var2] != null) { + continue; + } + byte[] var3 = Widget.Widget_archive.takeFile(var0, var2); + if (var3 == null) { + continue; + } + Widget.Widget_interfaceComponents[var0][var2] = new Widget(); + Widget.Widget_interfaceComponents[var0][var2].id = var2 + (var0 << 16); + if (var3[0] == -1) { + Widget.Widget_interfaceComponents[var0][var2].decode(new Buffer(var3)); + } else { + Widget.Widget_interfaceComponents[var0][var2].decodeLegacy(new Buffer(var3)); } } - ViewportMouse.loadedInterfaces[var0] = true; + ViewportMouse.Widget_loadedInterfaces[var0] = true; return true; } } diff --git a/runescape-client/src/main/java/class173.java b/runescape-client/src/main/java/class173.java index ee70bbd19c..35cc23181e 100644 --- a/runescape-client/src/main/java/class173.java +++ b/runescape-client/src/main/java/class173.java @@ -41,7 +41,8 @@ public class class173 { signature = "(I)Lfu;", garbageValue = "-1483717574" ) - public static Clock method3589() { + @Export("newClock") + public static Clock newClock() { try { return new NanoClock(); } catch (Throwable var1) { diff --git a/runescape-client/src/main/java/class188.java b/runescape-client/src/main/java/class188.java index c40dac13d6..b1e1f8928d 100644 --- a/runescape-client/src/main/java/class188.java +++ b/runescape-client/src/main/java/class188.java @@ -76,9 +76,9 @@ public class class188 { var0.drawCentered("Select a world", Login.xPadding + 62, 15, 0, -1); if (FriendSystem.worldSelectStars != null) { FriendSystem.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); FriendSystem.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 (class225.worldSelectArrows != null) { @@ -95,7 +95,7 @@ public class class188 { class225.worldSelectArrows[1].drawAt(var22 + 15, 4); } - var0.draw("World", var22 + 32, 17, 16777215, -1); + var0.draw("World", var22 + 32, 17, 0xffffff, -1); int var23 = Login.xPadding + 390; if (World.sortOption1[0] == 1 && World.sortOption2[0] == 0) { class225.worldSelectArrows[2].drawAt(var23, 4); @@ -109,7 +109,7 @@ public class class188 { class225.worldSelectArrows[1].drawAt(var23 + 15, 4); } - var0.draw("Players", var23 + 32, 17, 16777215, -1); + var0.draw("Players", var23 + 32, 17, 0xffffff, -1); var4 = Login.xPadding + 500; if (World.sortOption1[0] == 2 && World.sortOption2[0] == 0) { class225.worldSelectArrows[2].drawAt(var4, 4); @@ -123,7 +123,7 @@ public class class188 { class225.worldSelectArrows[1].drawAt(var4 + 15, 4); } - var0.draw("Location", var4 + 32, 17, 16777215, -1); + var0.draw("Location", var4 + 32, 17, 0xffffff, -1); var5 = Login.xPadding + 610; if (World.sortOption1[0] == 3 && World.sortOption2[0] == 0) { class225.worldSelectArrows[2].drawAt(var5, 4); @@ -137,11 +137,11 @@ public class class188 { class225.worldSelectArrows[1].drawAt(var5 + 15, 4); } - var0.draw("Type", var5 + 32, 17, 16777215, -1); + var0.draw("Type", var5 + 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 (WorldMapID.worldSelectBackSprites != null) { byte var27 = 88; @@ -217,7 +217,7 @@ public class class188 { var20 = 6; } } else if (var24.isDeadman()) { - var21 = 16711680; + var21 = 0xff0000; if (var24.isMembersOnly()) { var20 = 5; } else { @@ -237,7 +237,7 @@ public class class188 { if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var11 && MouseHandler.MouseHandler_x < var27 + var12 && MouseHandler.MouseHandler_y < var11 + var28 && var18) { Login.hoveredWorldIndex = var16; - WorldMapID.worldSelectBackSprites[var20].drawAtTransOverlay(var12, var11, 128, 16777215); + WorldMapID.worldSelectBackSprites[var20].drawTransOverlayAt(var12, var11, 128, 0xffffff); var14 = true; } else { WorldMapID.worldSelectBackSprites[var20].drawAt(var12, var11); @@ -248,7 +248,7 @@ public class class188 { } var0.drawCentered(Integer.toString(var24.id), var12 + 15, var28 / 2 + var11 + 5, var21, -1); - var1.drawCentered(var19, var12 + 60, var28 / 2 + var11 + 5, 268435455, -1); + var1.drawCentered(var19, var12 + 60, var28 / 2 + var11 + 5, 0xfffffff, -1); var11 = var11 + var7 + var28; ++var13; if (var13 >= var5) { @@ -301,6 +301,6 @@ public class class188 { if (var1.length() > 9) { return " " + ClientPreferences.colorStartTag(65408) + var1.substring(0, var1.length() - 8) + "M" + " " + " (" + var1 + ")" + ""; } - return var1.length() > 6 ? " " + ClientPreferences.colorStartTag(16777215) + var1.substring(0, var1.length() - 4) + "K" + " " + " (" + var1 + ")" + "" : " " + ClientPreferences.colorStartTag(16776960) + var1 + ""; + return var1.length() > 6 ? " " + ClientPreferences.colorStartTag(0xffffff) + var1.substring(0, var1.length() - 4) + "K" + " " + " (" + var1 + ")" + "" : " " + ClientPreferences.colorStartTag(0xffff00) + var1 + ""; } } diff --git a/runescape-client/src/main/java/class189.java b/runescape-client/src/main/java/class189.java index cf92af7449..7cb0a6201e 100644 --- a/runescape-client/src/main/java/class189.java +++ b/runescape-client/src/main/java/class189.java @@ -27,13 +27,13 @@ public class class189 { int var4; if (Client.gameState == 0 || Client.gameState == 5) { byte var3 = 20; - var0.drawCentered("RuneScape is loading - please wait...", Login.loginBoxX + 180, 245 - var3, 16777215, -1); + var0.drawCentered("RuneScape is loading - please wait...", Login.loginBoxX + 180, 245 - var3, 0xffffff, -1); var4 = 253 - var3; Rasterizer2D.Rasterizer2D_drawRectangle(Login.loginBoxX + 180 - 152, var4, 304, 34, 9179409); Rasterizer2D.Rasterizer2D_drawRectangle(Login.loginBoxX + 180 - 151, var4 + 1, 302, 32, 0); Rasterizer2D.Rasterizer2D_fillRectangle(Login.loginBoxX + 180 - 150, var4 + 2, Login.Login_loadingPercent * 3, 30, 9179409); Rasterizer2D.Rasterizer2D_fillRectangle(Login.Login_loadingPercent * 3 + (Login.loginBoxX + 180 - 150), var4 + 2, 300 - Login.Login_loadingPercent * 3, 30, 0); - var0.drawCentered(Login.Login_loadingText, Login.loginBoxX + 180, 276 - var3, 16777215, -1); + var0.drawCentered(Login.Login_loadingText, Login.loginBoxX + 180, 276 - var3, 0xffffff, -1); } String var5; @@ -44,24 +44,24 @@ public class class189 { if (Client.gameState == 20) { Login.titleboxSprite.drawAt(Login.loginBoxX + 180 - Login.titleboxSprite.subWidth / 2, 271 - Login.titleboxSprite.subHeight / 2); var22 = 201; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16776960, 0); + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 0xffff00, 0); var23 = var22 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16776960, 0); + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16776960, 0); + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; var23 += 7; if (Login.loginIndex != 4) { - var0.draw("Login: ", Login.loginBoxX + 180 - 110, var23, 16777215, 0); + var0.draw("Login: ", Login.loginBoxX + 180 - 110, var23, 0xffffff, 0); var24 = 200; var5 = WorldMapLabelSize.clientPreferences.hideUsername ? ClientPacket.method3612(Login.Login_username) : Login.Login_username; for (var6 = var5; var0.stringWidth(var6) > var24; var6 = var6.substring(0, var6.length() - 1)) { } - var0.draw(AbstractFont.escapeBrackets(var6), Login.loginBoxX + 180 - 70, var23, 16777215, 0); + var0.draw(AbstractFont.escapeBrackets(var6), Login.loginBoxX + 180 - 70, var23, 0xffffff, 0); var23 += 15; - var0.draw("Password: " + ClientPacket.method3612(Login.Login_password), Login.loginBoxX + 180 - 108, var23, 16777215, 0); + var0.draw("Password: " + ClientPacket.method3612(Login.Login_password), Login.loginBoxX + 180 - 108, var23, 0xffffff, 0); var23 += 15; } } @@ -71,52 +71,52 @@ public class class189 { short var17; if (Login.loginIndex == 0) { var22 = 251; - var0.drawCentered("Welcome to RuneScape", Login.loginBoxX + 180, var22, 16776960, 0); + var0.drawCentered("Welcome to RuneScape", Login.loginBoxX + 180, var22, 0xffff00, 0); var23 = var22 + 30; var4 = Login.loginBoxX + 180 - 80; var17 = 291; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawLines("New User", var4 - 73, var17 - 20, 144, 40, 16777215, 0, 1, 1, 0); + var0.drawLines("New User", var4 - 73, var17 - 20, 144, 40, 0xffffff, 0, 1, 1, 0); var4 = Login.loginBoxX + 180 + 80; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawLines("Existing User", var4 - 73, var17 - 20, 144, 40, 16777215, 0, 1, 1, 0); + var0.drawLines("Existing User", var4 - 73, var17 - 20, 144, 40, 0xffffff, 0, 1, 1, 0); } else if (Login.loginIndex == 1) { - var0.drawCentered(Login.Login_response0, Login.loginBoxX + 180, 201, 16776960, 0); + var0.drawCentered(Login.Login_response0, Login.loginBoxX + 180, 201, 0xffff00, 0); var22 = 236; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16777215, 0); + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 0xffffff, 0); var23 = var22 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16777215, 0); + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 0xffffff, 0); var23 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16777215, 0); + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 0xffffff, 0); var23 += 15; var4 = Login.loginBoxX + 180 - 80; var17 = 321; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawCentered("Continue", var4, var17 + 5, 16777215, 0); + var0.drawCentered("Continue", var4, var17 + 5, 0xffffff, 0); var4 = Login.loginBoxX + 180 + 80; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawCentered("Cancel", var4, var17 + 5, 16777215, 0); + var0.drawCentered("Cancel", var4, var17 + 5, 0xffffff, 0); } else { int var7; if (Login.loginIndex == 2) { var22 = 201; - var0.drawCentered(Login.Login_response1, ScriptEvent.loginBoxCenter, var22, 16776960, 0); + var0.drawCentered(Login.Login_response1, ScriptEvent.loginBoxCenter, var22, 0xffff00, 0); var23 = var22 + 15; - var0.drawCentered(Login.Login_response2, ScriptEvent.loginBoxCenter, var23, 16776960, 0); + var0.drawCentered(Login.Login_response2, ScriptEvent.loginBoxCenter, var23, 0xffff00, 0); var23 += 15; - var0.drawCentered(Login.Login_response3, ScriptEvent.loginBoxCenter, var23, 16776960, 0); + var0.drawCentered(Login.Login_response3, ScriptEvent.loginBoxCenter, var23, 0xffff00, 0); var23 += 15; var23 += 7; - var0.draw("Login: ", ScriptEvent.loginBoxCenter - 110, var23, 16777215, 0); + var0.draw("Login: ", ScriptEvent.loginBoxCenter - 110, var23, 0xffffff, 0); var24 = 200; var5 = WorldMapLabelSize.clientPreferences.hideUsername ? ClientPacket.method3612(Login.Login_username) : Login.Login_username; for (var6 = var5; var0.stringWidth(var6) > var24; var6 = var6.substring(1)) { } - var0.draw(AbstractFont.escapeBrackets(var6) + (Login.currentLoginField == 0 & Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(16776960) + "|" : ""), ScriptEvent.loginBoxCenter - 70, var23, 16777215, 0); + var0.draw(AbstractFont.escapeBrackets(var6) + (Login.currentLoginField == 0 & Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(0xffff00) + "|" : ""), ScriptEvent.loginBoxCenter - 70, var23, 0xffffff, 0); var23 += 15; - var0.draw("Password: " + ClientPacket.method3612(Login.Login_password) + (Login.currentLoginField == 1 & Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(16776960) + "|" : ""), ScriptEvent.loginBoxCenter - 108, var23, 16777215, 0); + var0.draw("Password: " + ClientPacket.method3612(Login.Login_password) + (Login.currentLoginField == 1 & Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(0xffff00) + "|" : ""), ScriptEvent.loginBoxCenter - 108, var23, 0xffffff, 0); var23 += 15; var22 = 277; var7 = ScriptEvent.loginBoxCenter + -117; @@ -125,22 +125,22 @@ public class class189 { IndexedSprite var8 = var9 ? (var10 ? Login.field1185 : Decimator.options_buttons_2Sprite) : (var10 ? Message.field606 : Login.options_buttons_0Sprite); var8.drawAt(var7, var22); var7 = var7 + var8.subWidth + 5; - var1.draw("Remember username", var7, var22 + 13, 16776960, 0); + var1.draw("Remember username", var7, var22 + 13, 0xffff00, 0); var7 = ScriptEvent.loginBoxCenter + 24; boolean var13 = WorldMapLabelSize.clientPreferences.hideUsername; boolean var14 = Login.field1184; IndexedSprite var12 = var13 ? (var14 ? Login.field1185 : Decimator.options_buttons_2Sprite) : (var14 ? Message.field606 : Login.options_buttons_0Sprite); var12.drawAt(var7, var22); var7 = var7 + var12.subWidth + 5; - var1.draw("Hide username", var7, var22 + 13, 16776960, 0); + var1.draw("Hide username", var7, var22 + 13, 0xffff00, 0); var23 = var22 + 15; int var15 = ScriptEvent.loginBoxCenter - 80; short var16 = 321; VarpDefinition.titlebuttonSprite.drawAt(var15 - 73, var16 - 20); - var0.drawCentered("Login", var15, var16 + 5, 16777215, 0); + var0.drawCentered("Login", var15, var16 + 5, 0xffffff, 0); var15 = ScriptEvent.loginBoxCenter + 80; VarpDefinition.titlebuttonSprite.drawAt(var15 - 73, var16 - 20); - var0.drawCentered("Cancel", var15, var16 + 5, 16777215, 0); + var0.drawCentered("Cancel", var15, var16 + 5, 0xffffff, 0); var22 = 357; switch(Login.field1212) { case 2: @@ -152,39 +152,39 @@ public class class189 { class96.field1325 = new Bounds(ScriptEvent.loginBoxCenter, var22, var1.stringWidth(UserComparator5.field1986), 11); WorldMapAreaData.field332 = new Bounds(ScriptEvent.loginBoxCenter, var22, var1.stringWidth("Still having trouble logging in?"), 11); - var1.drawCentered(UserComparator5.field1986, ScriptEvent.loginBoxCenter, var22, 16777215, 0); + var1.drawCentered(UserComparator5.field1986, ScriptEvent.loginBoxCenter, var22, 0xffffff, 0); } else if (Login.loginIndex == 3) { var22 = 201; - var0.drawCentered("Invalid credentials.", Login.loginBoxX + 180, var22, 16776960, 0); + var0.drawCentered("Invalid credentials.", Login.loginBoxX + 180, var22, 0xffff00, 0); var23 = var22 + 20; - var1.drawCentered("For accounts created after 24th November 2010, please use your", Login.loginBoxX + 180, var23, 16776960, 0); + var1.drawCentered("For accounts created after 24th November 2010, please use your", Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; - var1.drawCentered("email address to login. Otherwise please login with your username.", Login.loginBoxX + 180, var23, 16776960, 0); + var1.drawCentered("email address to login. Otherwise please login with your username.", Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; var4 = Login.loginBoxX + 180; var17 = 276; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var2.drawCentered("Try again", var4, var17 + 5, 16777215, 0); + var2.drawCentered("Try again", var4, var17 + 5, 0xffffff, 0); var4 = Login.loginBoxX + 180; var17 = 326; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var2.drawCentered("Forgotten password?", var4, var17 + 5, 16777215, 0); + var2.drawCentered("Forgotten password?", var4, var17 + 5, 0xffffff, 0); } else { short var20; if (Login.loginIndex == 4) { - var0.drawCentered("Authenticator", Login.loginBoxX + 180, 201, 16776960, 0); + var0.drawCentered("Authenticator", Login.loginBoxX + 180, 201, 0xffff00, 0); var22 = 236; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16777215, 0); + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 0xffffff, 0); var23 = var22 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16777215, 0); + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 0xffffff, 0); var23 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16777215, 0); + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 0xffffff, 0); var23 += 15; - var0.draw("PIN: " + ClientPacket.method3612(WorldMapManager.otp) + (Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(16776960) + "|" : ""), Login.loginBoxX + 180 - 108, var23, 16777215, 0); + var0.draw("PIN: " + ClientPacket.method3612(WorldMapManager.otp) + (Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(0xffff00) + "|" : ""), Login.loginBoxX + 180 - 108, var23, 0xffffff, 0); var23 -= 8; - var0.draw("Trust this computer", Login.loginBoxX + 180 - 9, var23, 16776960, 0); + var0.draw("Trust this computer", Login.loginBoxX + 180 - 9, var23, 0xffff00, 0); var23 += 15; - var0.draw("for 30 days: ", Login.loginBoxX + 180 - 9, var23, 16776960, 0); + var0.draw("for 30 days: ", Login.loginBoxX + 180 - 9, var23, 0xffff00, 0); var4 = Login.loginBoxX + 180 - 9 + var0.stringWidth("for 30 days: ") + 15; int var26 = var23 - var0.ascent; IndexedSprite var25; @@ -199,81 +199,81 @@ public class class189 { var7 = Login.loginBoxX + 180 - 80; var20 = 321; VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); - var0.drawCentered("Continue", var7, var20 + 5, 16777215, 0); + var0.drawCentered("Continue", var7, var20 + 5, 0xffffff, 0); var7 = Login.loginBoxX + 180 + 80; VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); - var0.drawCentered("Cancel", var7, var20 + 5, 16777215, 0); + var0.drawCentered("Cancel", var7, var20 + 5, 0xffffff, 0); var1.drawCentered("Can't Log In?", Login.loginBoxX + 180, var20 + 36, 255, 0); } else if (Login.loginIndex == 5) { - var0.drawCentered("Forgotten your password?", Login.loginBoxX + 180, 201, 16776960, 0); + var0.drawCentered("Forgotten your password?", Login.loginBoxX + 180, 201, 0xffff00, 0); var22 = 221; - var2.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16776960, 0); + var2.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 0xffff00, 0); var23 = var22 + 15; - var2.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16776960, 0); + var2.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; - var2.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16776960, 0); + var2.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; var23 += 14; - var0.draw("Username/email: ", Login.loginBoxX + 180 - 145, var23, 16777215, 0); + var0.draw("Username/email: ", Login.loginBoxX + 180 - 145, var23, 0xffffff, 0); var24 = 174; var5 = WorldMapLabelSize.clientPreferences.hideUsername ? ClientPacket.method3612(Login.Login_username) : Login.Login_username; for (var6 = var5; var0.stringWidth(var6) > var24; var6 = var6.substring(1)) { } - var0.draw(AbstractFont.escapeBrackets(var6) + (Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(16776960) + "|" : ""), Login.loginBoxX + 180 - 34, var23, 16777215, 0); + var0.draw(AbstractFont.escapeBrackets(var6) + (Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(0xffff00) + "|" : ""), Login.loginBoxX + 180 - 34, var23, 0xffffff, 0); var23 += 15; var7 = Login.loginBoxX + 180 - 80; var20 = 321; VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); - var0.drawCentered("Recover", var7, var20 + 5, 16777215, 0); + var0.drawCentered("Recover", var7, var20 + 5, 0xffffff, 0); var7 = Login.loginBoxX + 180 + 80; VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); - var0.drawCentered("Back", var7, var20 + 5, 16777215, 0); + var0.drawCentered("Back", var7, var20 + 5, 0xffffff, 0); var20 = 356; - var1.drawCentered("Still having trouble logging in?", ScriptEvent.loginBoxCenter, var20, 268435455, 0); + var1.drawCentered("Still having trouble logging in?", ScriptEvent.loginBoxCenter, var20, 0xfffffff, 0); } else if (Login.loginIndex == 6) { var22 = 201; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16776960, 0); + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 0xffff00, 0); var23 = var22 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16776960, 0); + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16776960, 0); + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; var4 = Login.loginBoxX + 180; var17 = 321; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawCentered("Back", var4, var17 + 5, 16777215, 0); + var0.drawCentered("Back", var4, var17 + 5, 0xffffff, 0); } else if (Login.loginIndex == 7) { var22 = 216; - var0.drawCentered("Your date of birth isn't set.", Login.loginBoxX + 180, var22, 16776960, 0); + var0.drawCentered("Your date of birth isn't set.", Login.loginBoxX + 180, var22, 0xffff00, 0); var23 = var22 + 15; - var2.drawCentered("Please verify your account status by", Login.loginBoxX + 180, var23, 16776960, 0); + var2.drawCentered("Please verify your account status by", Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; - var2.drawCentered("setting your date of birth.", Login.loginBoxX + 180, var23, 16776960, 0); + var2.drawCentered("setting your date of birth.", Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; var4 = Login.loginBoxX + 180 - 80; var17 = 321; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawCentered("Set Date of Birth", var4, var17 + 5, 16777215, 0); + var0.drawCentered("Set Date of Birth", var4, var17 + 5, 0xffffff, 0); var4 = Login.loginBoxX + 180 + 80; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawCentered("Back", var4, var17 + 5, 16777215, 0); + var0.drawCentered("Back", var4, var17 + 5, 0xffffff, 0); } else if (Login.loginIndex == 8) { var22 = 216; - var0.drawCentered("Sorry, but your account is not eligible to play.", Login.loginBoxX + 180, var22, 16776960, 0); + var0.drawCentered("Sorry, but your account is not eligible to play.", Login.loginBoxX + 180, var22, 0xffff00, 0); var23 = var22 + 15; - var2.drawCentered("For more information, please take a look at", Login.loginBoxX + 180, var23, 16776960, 0); + var2.drawCentered("For more information, please take a look at", Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; - var2.drawCentered("our privacy policy.", Login.loginBoxX + 180, var23, 16776960, 0); + var2.drawCentered("our privacy policy.", Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; var4 = Login.loginBoxX + 180 - 80; var17 = 321; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawCentered("Privacy Policy", var4, var17 + 5, 16777215, 0); + var0.drawCentered("Privacy Policy", var4, var17 + 5, 0xffffff, 0); var4 = Login.loginBoxX + 180 + 80; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawCentered("Back", var4, var17 + 5, 16777215, 0); + var0.drawCentered("Back", var4, var17 + 5, 0xffffff, 0); } else if (Login.loginIndex == 12) { var22 = 201; String var21 = ""; @@ -294,32 +294,32 @@ public class class189 { FaceNormal.method3266(false); } - var0.drawCentered(var21, Login.loginBoxX + 180, var22, 16776960, 0); + var0.drawCentered(var21, Login.loginBoxX + 180, var22, 0xffff00, 0); var23 = var22 + 15; - var2.drawCentered(var5, Login.loginBoxX + 180, var23, 16776960, 0); + var2.drawCentered(var5, Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; - var2.drawCentered(var6, Login.loginBoxX + 180, var23, 16776960, 0); + var2.drawCentered(var6, Login.loginBoxX + 180, var23, 0xffff00, 0); var23 += 15; var7 = Login.loginBoxX + 180; var20 = 276; VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); - var0.drawCentered("Support Page", var7, var20 + 5, 16777215, 0); + var0.drawCentered("Support Page", var7, var20 + 5, 0xffffff, 0); var7 = Login.loginBoxX + 180; var20 = 326; VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); - var0.drawCentered("Back", var7, var20 + 5, 16777215, 0); + var0.drawCentered("Back", var7, var20 + 5, 0xffffff, 0); } else if (Login.loginIndex == 24) { var22 = 221; - var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16777215, 0); + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 0xffffff, 0); var23 = var22 + 15; - var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16777215, 0); + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 0xffffff, 0); var23 += 15; - var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16777215, 0); + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 0xffffff, 0); var23 += 15; var4 = Login.loginBoxX + 180; var17 = 301; VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); - var0.drawCentered("Ok", var4, var17 + 5, 16777215, 0); + var0.drawCentered("Ok", var4, var17 + 5, 0xffffff, 0); } } } @@ -342,11 +342,11 @@ public class class189 { byte var27 = 100; byte var19 = 35; class30.field264.drawAt(var23, var24); - var0.drawCentered("World" + " " + Client.worldId, var27 / 2 + var23, var19 / 2 + var24 - 2, 16777215, 0); + var0.drawCentered("World" + " " + Client.worldId, var27 / 2 + var23, var19 / 2 + var24 - 2, 0xffffff, 0); if (World.field1027 != null) { - var1.drawCentered("Loading...", var27 / 2 + var23, var19 / 2 + var24 + 12, 16777215, 0); + var1.drawCentered("Loading...", var27 / 2 + var23, var19 / 2 + var24 + 12, 0xffffff, 0); } else { - var1.drawCentered("Click to switch", var27 / 2 + var23, var19 / 2 + var24 + 12, 16777215, 0); + var1.drawCentered("Click to switch", var27 / 2 + var23, var19 / 2 + var24 + 12, 0xffffff, 0); } } else { class30.field264 = class215.SpriteBuffer_getIndexedSpriteByName(Client.archive8, "sl_button", ""); diff --git a/runescape-client/src/main/java/class191.java b/runescape-client/src/main/java/class191.java index 34e52834c7..53a083f556 100644 --- a/runescape-client/src/main/java/class191.java +++ b/runescape-client/src/main/java/class191.java @@ -46,7 +46,7 @@ public class class191 { WorldMapIcon_1.field188 = null; FontName.drawInterface(Widget.Widget_interfaceComponents[var0], -1, var1, var2, var3, var4, var5, var6, var7); if (WorldMapIcon_1.field188 != null) { - FontName.drawInterface(WorldMapIcon_1.field188, -1412584499, var1, var2, var3, var4, WorldMapDecorationType.field2742, ClientPacket.field2305, var7); + FontName.drawInterface(WorldMapIcon_1.field188, 0xabcdabcd, var1, var2, var3, var4, WorldMapDecorationType.field2742, ClientPacket.field2305, var7); WorldMapIcon_1.field188 = null; } diff --git a/runescape-client/src/main/java/class197.java b/runescape-client/src/main/java/class197.java index ca1a7bff29..9aba14d261 100644 --- a/runescape-client/src/main/java/class197.java +++ b/runescape-client/src/main/java/class197.java @@ -78,8 +78,8 @@ public class class197 { signature = "(B)V", garbageValue = "-1" ) - @Export("FloorUnderlayDefinition_clearCached") - public static void FloorUnderlayDefinition_clearCached() { + @Export("FloorOverlayDefinition_clearCached") + public static void FloorOverlayDefinition_clearCached() { FloorOverlayDefinition.FloorOverlayDefinition_cached.clear(); } @@ -304,7 +304,7 @@ public class class197 { int var3 = (int)var0.key; var0.remove(); int var5; - if (var1 && var2 != -1 && ViewportMouse.loadedInterfaces[var2]) { + if (var1 && var2 != -1 && ViewportMouse.Widget_loadedInterfaces[var2]) { Widget.Widget_archive.clearFilesGroup(var2); if (Widget.Widget_interfaceComponents[var2] != null) { boolean var7 = true; @@ -323,7 +323,7 @@ public class class197 { Widget.Widget_interfaceComponents[var2] = null; } - ViewportMouse.loadedInterfaces[var2] = false; + ViewportMouse.Widget_loadedInterfaces[var2] = false; } } @@ -335,7 +335,7 @@ public class class197 { Widget var8 = class80.getWidget(var3); if (var8 != null) { - Strings.method4120(var8); + Strings.invalidateWidget(var8); } for (var5 = 0; var5 < Client.menuOptionsCount; ++var5) { diff --git a/runescape-client/src/main/java/class2.java b/runescape-client/src/main/java/class2.java index 9d41d32194..f8efa62834 100644 --- a/runescape-client/src/main/java/class2.java +++ b/runescape-client/src/main/java/class2.java @@ -79,547 +79,553 @@ final class class2 implements class0 { garbageValue = "29276" ) @Export("updateInterface") - static final void updateInterface(Widget[] var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) { - for (int var8 = 0; var8 < var0.length; ++var8) { - Widget var9 = var0[var8]; - if (var9 != null && var9.parentId == var1 && (!var9.isIf3 || var9.type == 0 || var9.hasListener || class268.getWidgetClickMask(var9) != 0 || var9 == Client.clickedWidgetParent || var9.contentType == 1338)) { - if (var9.isIf3) { - if (ScriptEvent.isComponentHidden(var9)) { - continue; - } - } else if (var9.type == 0 && var9 != LoginScreenAnimation.mousedOverWidgetIf1 && ScriptEvent.isComponentHidden(var9)) { + static final void updateInterface(Widget[] components, int parentId, int var2, int var3, int var4, int var5, int width, int height) { + for (int var8 = 0; var8 < components.length; ++var8) { + Widget var9 = components[var8]; + if (var9 == null || var9.parentId != parentId || (var9.isIf3 && var9.type != 0 && !var9.hasListener && class268.getWidgetClickMask(var9) == 0 && var9 != Client.clickedWidgetParent && var9.contentType != 1338)) { + continue; + } + if (var9.isIf3) { + if (ScriptEvent.isComponentHidden(var9)) { continue; } + } else if (var9.type == 0 && var9 != LoginScreenAnimation.mousedOverWidgetIf1 && ScriptEvent.isComponentHidden(var9)) { + continue; + } - int var10 = var9.x + var6; - int var11 = var7 + var9.y; - int var12; - int var13; - int var14; - int var15; - int var17; - int var18; - if (var9.type == 2) { - var12 = var2; - var13 = var3; - var14 = var4; - var15 = var5; + int var10 = var9.x + width; + int var11 = height + var9.y; + int var12; + int var13; + int var14; + int var15; + int var17; + int var18; + if (var9.type == 2) { + var12 = var2; + var13 = var3; + var14 = var4; + var15 = var5; + } else { + int var16; + if (var9.type == 9) { + var16 = var10; + var17 = var11; + var18 = var10 + var9.width; + int var19 = var11 + var9.height; + if (var18 < var10) { + var16 = var18; + var18 = var10; + } + + if (var19 < var11) { + var17 = var19; + var19 = var11; + } + + ++var18; + ++var19; + var12 = var16 > var2 ? var16 : var2; + var13 = var17 > var3 ? var17 : var3; + var14 = var18 < var4 ? var18 : var4; + var15 = var19 < var5 ? var19 : var5; } else { - int var16; - if (var9.type == 9) { - var16 = var10; - var17 = var11; - var18 = var10 + var9.width; - int var19 = var11 + var9.height; - if (var18 < var10) { - var16 = var18; - var18 = var10; - } - - if (var19 < var11) { - var17 = var19; - var19 = var11; - } - - ++var18; - ++var19; - var12 = var16 > var2 ? var16 : var2; - var13 = var17 > var3 ? var17 : var3; - var14 = var18 < var4 ? var18 : var4; - var15 = var19 < var5 ? var19 : var5; - } else { - var16 = var10 + var9.width; - var17 = var11 + var9.height; - var12 = var10 > var2 ? var10 : var2; - var13 = var11 > var3 ? var11 : var3; - var14 = var16 < var4 ? var16 : var4; - var15 = var17 < var5 ? var17 : var5; - } + var16 = var10 + var9.width; + var17 = var11 + var9.height; + var12 = var10 > var2 ? var10 : var2; + var13 = var11 > var3 ? var11 : var3; + var14 = var16 < var4 ? var16 : var4; + var15 = var17 < var5 ? var17 : var5; } + } - if (var9 == Client.clickedWidget) { - Client.field745 = true; - Client.field837 = var10; - Client.field838 = var11; - } + if (var9 == Client.clickedWidget) { + Client.field745 = true; + Client.field837 = var10; + Client.field838 = var11; + } - boolean var32 = false; - if (var9.field2704) { - switch(Client.field817) { - case 0: + boolean var32 = false; + if (var9.field2704) { + switch(Client.field817) { + case 0: + var32 = true; + case 1: + default: + break; + case 2: + if (Client.field818 == var9.id >>> 16) { + var32 = true; + } + break; + case 3: + if (var9.id == Client.field818) { var32 = true; - case 1: - default: - break; - case 2: - if (Client.field818 == var9.id >>> 16) { - var32 = true; - } - break; - case 3: - if (var9.id == Client.field818) { - var32 = true; - } } } + } - if (var32 || !var9.isIf3 || var12 < var14 && var13 < var15) { - if (var9.isIf3) { - ScriptEvent var26; - if (var9.noClickThrough) { - if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { - for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) { - if (var26.boolean1) { - var26.remove(); - var26.widget.field2642 = false; - } - } - - if (class80.widgetDragDuration == 0) { - Client.clickedWidget = null; - Client.clickedWidgetParent = null; - } - - if (!Client.isMenuOpen) { - GraphicsObject.resetMenuEntries(); - } - } - } else if (var9.noScrollThrough && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { - for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) { - if (var26.boolean1 && var26.widget.onScroll == var26.args) { - var26.remove(); - } + if (!var32 && var9.isIf3 && (var12 >= var14 || var13 >= var15)) { + continue; + } + if (var9.isIf3) { + ScriptEvent var26; + if (var9.noClickThrough) { + if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { + for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) { + if (var26.boolean1) { + var26.remove(); + var26.widget.containsMouse = false; } } + + if (class80.widgetDragDuration == 0) { + Client.clickedWidget = null; + Client.clickedWidgetParent = null; + } + + if (!Client.isMenuOpen) { + GraphicsObject.resetMenuEntries(); + } } - - var17 = MouseHandler.MouseHandler_x; - var18 = MouseHandler.MouseHandler_y; - if (MouseHandler.MouseHandler_lastButton != 0) { - var17 = MouseHandler.MouseHandler_lastPressedX; - var18 = MouseHandler.MouseHandler_lastPressedY; - } - - boolean var33 = var17 >= var12 && var18 >= var13 && var17 < var14 && var18 < var15; - if (var9.contentType == 1337) { - if (!Client.isLoading && !Client.isMenuOpen && var33) { - class65.addSceneMenuOptions(var17, var18, var12, var13); - } - } else if (var9.contentType == 1338) { - WorldMapIcon_0.checkIfMinimapClicked(var9, var10, var11); - } else { - if (var9.contentType == 1400) { - BoundaryObject.worldMap.onCycle(MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y, var33, var10, var11, var9.width, var9.height); - } - - if (!Client.isMenuOpen && var33) { - if (var9.contentType == 1400) { - BoundaryObject.worldMap.method6482(var10, var11, var9.width, var9.height, var17, var18); - } else { - class40.method703(var9, var17 - var10, var18 - var11); - } - } - - boolean var21; - int var23; - if (var32) { - for (int var20 = 0; var20 < var9.field2650.length; ++var20) { - var21 = false; - boolean var22 = false; - if (!var21 && var9.field2650[var20] != null) { - for (var23 = 0; var23 < var9.field2650[var20].length; ++var23) { - boolean var24 = false; - if (var9.field2578 != null) { - var24 = KeyHandler.KeyHandler_pressedKeys[var9.field2650[var20][var23]]; - } - - if (PacketWriter.method2244(var9.field2650[var20][var23]) || var24) { - var21 = true; - if (var9.field2578 != null && var9.field2578[var20] > Client.cycle) { - break; - } - - byte var25 = var9.field2625[var20][var23]; - if (var25 == 0 || ((var25 & 8) == 0 || !KeyHandler.KeyHandler_pressedKeys[86] && !KeyHandler.KeyHandler_pressedKeys[82] && !KeyHandler.KeyHandler_pressedKeys[81]) && ((var25 & 2) == 0 || KeyHandler.KeyHandler_pressedKeys[86]) && ((var25 & 1) == 0 || KeyHandler.KeyHandler_pressedKeys[82]) && ((var25 & 4) == 0 || KeyHandler.KeyHandler_pressedKeys[81])) { - var22 = true; - break; - } - } - } - } - - if (var22) { - if (var20 < 10) { - Messages.method2163(var20 + 1, var9.id, var9.childIndex, var9.itemId, ""); - } else if (var20 == 10) { - WorldMapID.method542(); - TileItem.method2053(var9.id, var9.childIndex, HealthBar.method1957(class268.getWidgetClickMask(var9)), var9.itemId); - Client.selectedSpellActionName = FontName.method5318(var9); - if (Client.selectedSpellActionName == null) { - Client.selectedSpellActionName = "null"; - } - - Client.selectedSpellName = var9.dataText + ClientPreferences.colorStartTag(16777215); - } - - var23 = var9.field2641[var20]; - if (var9.field2578 == null) { - var9.field2578 = new int[var9.field2650.length]; - } - - if (var9.field2588 == null) { - var9.field2588 = new int[var9.field2650.length]; - } - - if (var23 != 0) { - if (var9.field2578[var20] == 0) { - var9.field2578[var20] = var23 + Client.cycle + var9.field2588[var20]; - } else { - var9.field2578[var20] = var23 + Client.cycle; - } - } else { - var9.field2578[var20] = Integer.MAX_VALUE; - } - } - - if (!var21 && var9.field2578 != null) { - var9.field2578[var20] = 0; - } - } - } - - if (var9.isIf3) { - if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { - var33 = true; - } else { - var33 = false; - } - - boolean var34 = false; - if ((MouseHandler.MouseHandler_currentButton == 1 || !DevicePcmPlayerProvider.mouseCam && MouseHandler.MouseHandler_currentButton == 4) && var33) { - var34 = true; - } - - var21 = false; - if ((MouseHandler.MouseHandler_lastButton == 1 || !DevicePcmPlayerProvider.mouseCam && MouseHandler.MouseHandler_lastButton == 4) && MouseHandler.MouseHandler_lastPressedX >= var12 && MouseHandler.MouseHandler_lastPressedY >= var13 && MouseHandler.MouseHandler_lastPressedX < var14 && MouseHandler.MouseHandler_lastPressedY < var15) { - var21 = true; - } - - if (var21) { - class60.clickWidget(var9, MouseHandler.MouseHandler_lastPressedX - var10, MouseHandler.MouseHandler_lastPressedY - var11); - } - - if (var9.contentType == 1400) { - BoundaryObject.worldMap.method6301(var17, var18, var33 & var34, var33 & var21); - } - - if (Client.clickedWidget != null && var9 != Client.clickedWidget && var33 && WorldMapIcon_1.method295(class268.getWidgetClickMask(var9))) { - Client.draggedOnWidget = var9; - } - - if (var9 == Client.clickedWidgetParent) { - Client.field873 = true; - Client.field834 = var10; - Client.field835 = var11; - } - - if (var9.hasListener) { - ScriptEvent var29; - if (var33 && Client.mouseWheelRotation != 0 && var9.onScroll != null) { - var29 = new ScriptEvent(); - var29.boolean1 = true; - var29.widget = var9; - var29.mouseY = Client.mouseWheelRotation; - var29.args = var9.onScroll; - Client.scriptEvents.addFirst(var29); - } - - if (Client.clickedWidget != null || WorldMapIcon_0.dragInventoryWidget != null || Client.isMenuOpen) { - var21 = false; - var34 = false; - var33 = false; - } - - if (!var9.field2589 && var21) { - var9.field2589 = true; - if (var9.onClick != null) { - var29 = new ScriptEvent(); - var29.boolean1 = true; - var29.widget = var9; - var29.mouseX = MouseHandler.MouseHandler_lastPressedX - var10; - var29.mouseY = MouseHandler.MouseHandler_lastPressedY - var11; - var29.args = var9.onClick; - Client.scriptEvents.addFirst(var29); - } - } - - if (var9.field2589 && var34 && var9.onClickRepeat != null) { - var29 = new ScriptEvent(); - var29.boolean1 = true; - var29.widget = var9; - var29.mouseX = MouseHandler.MouseHandler_x - var10; - var29.mouseY = MouseHandler.MouseHandler_y - var11; - var29.args = var9.onClickRepeat; - Client.scriptEvents.addFirst(var29); - } - - if (var9.field2589 && !var34) { - var9.field2589 = false; - if (var9.onRelease != null) { - var29 = new ScriptEvent(); - var29.boolean1 = true; - var29.widget = var9; - var29.mouseX = MouseHandler.MouseHandler_x - var10; - var29.mouseY = MouseHandler.MouseHandler_y - var11; - var29.args = var9.onRelease; - Client.field856.addFirst(var29); - } - } - - if (var34 && var9.onHold != null) { - var29 = new ScriptEvent(); - var29.boolean1 = true; - var29.widget = var9; - var29.mouseX = MouseHandler.MouseHandler_x - var10; - var29.mouseY = MouseHandler.MouseHandler_y - var11; - var29.args = var9.onHold; - Client.scriptEvents.addFirst(var29); - } - - if (!var9.field2642 && var33) { - var9.field2642 = true; - if (var9.onMouseOver != null) { - var29 = new ScriptEvent(); - var29.boolean1 = true; - var29.widget = var9; - var29.mouseX = MouseHandler.MouseHandler_x - var10; - var29.mouseY = MouseHandler.MouseHandler_y - var11; - var29.args = var9.onMouseOver; - Client.scriptEvents.addFirst(var29); - } - } - - if (var9.field2642 && var33 && var9.onMouseRepeat != null) { - var29 = new ScriptEvent(); - var29.boolean1 = true; - var29.widget = var9; - var29.mouseX = MouseHandler.MouseHandler_x - var10; - var29.mouseY = MouseHandler.MouseHandler_y - var11; - var29.args = var9.onMouseRepeat; - Client.scriptEvents.addFirst(var29); - } - - if (var9.field2642 && !var33) { - var9.field2642 = false; - if (var9.onMouseLeave != null) { - var29 = new ScriptEvent(); - var29.boolean1 = true; - var29.widget = var9; - var29.mouseX = MouseHandler.MouseHandler_x - var10; - var29.mouseY = MouseHandler.MouseHandler_y - var11; - var29.args = var9.onMouseLeave; - Client.field856.addFirst(var29); - } - } - - if (var9.onTimer != null) { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onTimer; - Client.field852.addFirst(var29); - } - - ScriptEvent var31; - int var35; - int var36; - if (var9.onVarTransmit != null && Client.field806 > var9.field2592) { - if (var9.varTransmitTriggers != null && Client.field806 - var9.field2592 <= 32) { - label865: - for (var35 = var9.field2592; var35 < Client.field806; ++var35) { - var23 = Client.field863[var35 & 31]; - - for (var36 = 0; var36 < var9.varTransmitTriggers.length; ++var36) { - if (var23 == var9.varTransmitTriggers[var36]) { - var31 = new ScriptEvent(); - var31.widget = var9; - var31.args = var9.onVarTransmit; - Client.scriptEvents.addFirst(var31); - break label865; - } - } - } - } else { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onVarTransmit; - Client.scriptEvents.addFirst(var29); - } - - var9.field2592 = Client.field806; - } - - if (var9.onInvTransmit != null && Client.field671 > var9.field2603) { - if (var9.invTransmitTriggers != null && Client.field671 - var9.field2603 <= 32) { - label841: - for (var35 = var9.field2603; var35 < Client.field671; ++var35) { - var23 = Client.field888[var35 & 31]; - - for (var36 = 0; var36 < var9.invTransmitTriggers.length; ++var36) { - if (var23 == var9.invTransmitTriggers[var36]) { - var31 = new ScriptEvent(); - var31.widget = var9; - var31.args = var9.onInvTransmit; - Client.scriptEvents.addFirst(var31); - break label841; - } - } - } - } else { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onInvTransmit; - Client.scriptEvents.addFirst(var29); - } - - var9.field2603 = Client.field671; - } - - if (var9.onStatTransmit != null && Client.changedSkillsCount > var9.field2700) { - if (var9.statTransmitTriggers != null && Client.changedSkillsCount - var9.field2700 <= 32) { - label817: - for (var35 = var9.field2700; var35 < Client.changedSkillsCount; ++var35) { - var23 = Client.changedSkills[var35 & 31]; - - for (var36 = 0; var36 < var9.statTransmitTriggers.length; ++var36) { - if (var23 == var9.statTransmitTriggers[var36]) { - var31 = new ScriptEvent(); - var31.widget = var9; - var31.args = var9.onStatTransmit; - Client.scriptEvents.addFirst(var31); - break label817; - } - } - } - } else { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onStatTransmit; - Client.scriptEvents.addFirst(var29); - } - - var9.field2700 = Client.changedSkillsCount; - } - - if (Client.chatCycle > var9.field2689 && var9.onChatTransmit != null) { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onChatTransmit; - Client.scriptEvents.addFirst(var29); - } - - if (Client.field672 > var9.field2689 && var9.onFriendTransmit != null) { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onFriendTransmit; - Client.scriptEvents.addFirst(var29); - } - - if (Client.field849 > var9.field2689 && var9.onClanTransmit != null) { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onClanTransmit; - Client.scriptEvents.addFirst(var29); - } - - if (Client.field915 > var9.field2689 && var9.onStockTransmit != null) { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onStockTransmit; - Client.scriptEvents.addFirst(var29); - } - - if (Client.field851 > var9.field2689 && var9.field2681 != null) { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.field2681; - Client.scriptEvents.addFirst(var29); - } - - if (Client.field844 > var9.field2689 && var9.onMiscTransmit != null) { - var29 = new ScriptEvent(); - var29.widget = var9; - var29.args = var9.onMiscTransmit; - Client.scriptEvents.addFirst(var29); - } - - var9.field2689 = Client.cycleCntr; - if (var9.onKey != null) { - for (var35 = 0; var35 < Client.field754; ++var35) { - ScriptEvent var30 = new ScriptEvent(); - var30.widget = var9; - var30.keyTyped = Client.field921[var35]; - var30.keyPressed = Client.field877[var35]; - var30.args = var9.onKey; - Client.scriptEvents.addFirst(var30); - } - } - } - } - - if (!var9.isIf3) { - if (Client.clickedWidget != null || WorldMapIcon_0.dragInventoryWidget != null || Client.isMenuOpen) { - continue; - } - - if ((var9.mouseOverRedirect >= 0 || var9.mouseOverColor != 0) && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { - if (var9.mouseOverRedirect >= 0) { - LoginScreenAnimation.mousedOverWidgetIf1 = var0[var9.mouseOverRedirect]; - } else { - LoginScreenAnimation.mousedOverWidgetIf1 = var9; - } - } - - if (var9.type == 8 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { - class32.field284 = var9; - } - - if (var9.scrollHeight > var9.height) { - GrandExchangeEvents.method71(var9, var10 + var9.width, var11, var9.height, var9.scrollHeight, MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y); - } - } - - if (var9.type == 0) { - updateInterface(var0, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY); - if (var9.children != null) { - updateInterface(var9.children, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY); - } - - InterfaceParent var27 = (InterfaceParent)Client.interfaceParents.get((long)var9.id); - if (var27 != null) { - if (var27.type == 0 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15 && !Client.isMenuOpen) { - for (ScriptEvent var28 = (ScriptEvent)Client.scriptEvents.last(); var28 != null; var28 = (ScriptEvent)Client.scriptEvents.previous()) { - if (var28.boolean1) { - var28.remove(); - var28.widget.field2642 = false; - } - } - - if (class80.widgetDragDuration == 0) { - Client.clickedWidget = null; - Client.clickedWidgetParent = null; - } - - if (!Client.isMenuOpen) { - GraphicsObject.resetMenuEntries(); - } - } - - Skills.updateRootInterface(var27.group, var12, var13, var14, var15, var10, var11); - } + } else if (var9.noScrollThrough && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { + for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) { + if (var26.boolean1 && var26.widget.onScroll == var26.args) { + var26.remove(); } } } } + + var17 = MouseHandler.MouseHandler_x; + var18 = MouseHandler.MouseHandler_y; + if (MouseHandler.MouseHandler_lastButton != 0) { + var17 = MouseHandler.MouseHandler_lastPressedX; + var18 = MouseHandler.MouseHandler_lastPressedY; + } + + boolean var33 = var17 >= var12 && var18 >= var13 && var17 < var14 && var18 < var15; + if (var9.contentType == 1337) { + if (!Client.isLoading && !Client.isMenuOpen && var33) { + class65.addSceneMenuOptions(var17, var18, var12, var13); + } + continue; + } + if (var9.contentType == 1338) { + WorldMapIcon_0.checkIfMinimapClicked(var9, var10, var11); + continue; + } + if (var9.contentType == 1400) { + BoundaryObject.worldMap.onCycle(MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y, var33, var10, var11, var9.width, var9.height); + } + + if (!Client.isMenuOpen && var33) { + if (var9.contentType == 1400) { + BoundaryObject.worldMap.addElementMenuOptions(var10, var11, var9.width, var9.height, var17, var18); + } else { + class40.method703(var9, var17 - var10, var18 - var11); + } + } + + boolean var21; + int var23; + if (var32) { + for (int var20 = 0; var20 < var9.field2650.length; ++var20) { + var21 = false; + boolean var22 = false; + if (!var21 && var9.field2650[var20] != null) { + for (var23 = 0; var23 < var9.field2650[var20].length; ++var23) { + boolean var24 = false; + if (var9.field2578 != null) { + var24 = KeyHandler.KeyHandler_pressedKeys[var9.field2650[var20][var23]]; + } + + if (PacketWriter.method2244(var9.field2650[var20][var23]) || var24) { + var21 = true; + if (var9.field2578 != null && var9.field2578[var20] > Client.cycle) { + break; + } + + byte var25 = var9.field2625[var20][var23]; + if (var25 == 0 || ((var25 & 8) == 0 || !KeyHandler.KeyHandler_pressedKeys[86] && !KeyHandler.KeyHandler_pressedKeys[82] && !KeyHandler.KeyHandler_pressedKeys[81]) && ((var25 & 2) == 0 || KeyHandler.KeyHandler_pressedKeys[86]) && ((var25 & 1) == 0 || KeyHandler.KeyHandler_pressedKeys[82]) && ((var25 & 4) == 0 || KeyHandler.KeyHandler_pressedKeys[81])) { + var22 = true; + break; + } + } + } + } + + if (var22) { + if (var20 < 10) { + Messages.method2163(var20 + 1, var9.id, var9.childIndex, var9.itemId, ""); + } else if (var20 == 10) { + WorldMapID.method542(); + TileItem.method2053(var9.id, var9.childIndex, HealthBar.method1957(class268.getWidgetClickMask(var9)), var9.itemId); + Client.selectedSpellActionName = FontName.method5318(var9); + if (Client.selectedSpellActionName == null) { + Client.selectedSpellActionName = "null"; + } + + Client.selectedSpellName = var9.dataText + ClientPreferences.colorStartTag(0xffffff); + } + + var23 = var9.field2641[var20]; + if (var9.field2578 == null) { + var9.field2578 = new int[var9.field2650.length]; + } + + if (var9.field2588 == null) { + var9.field2588 = new int[var9.field2650.length]; + } + + if (var23 != 0) { + if (var9.field2578[var20] == 0) { + var9.field2578[var20] = var23 + Client.cycle + var9.field2588[var20]; + } else { + var9.field2578[var20] = var23 + Client.cycle; + } + } else { + var9.field2578[var20] = Integer.MAX_VALUE; + } + } + + if (!var21 && var9.field2578 != null) { + var9.field2578[var20] = 0; + } + } + } + + if (var9.isIf3) { + if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { + var33 = true; + } else { + var33 = false; + } + + boolean var34 = false; + if ((MouseHandler.MouseHandler_currentButton == 1 || !DevicePcmPlayerProvider.mouseCam && MouseHandler.MouseHandler_currentButton == 4) && var33) { + var34 = true; + } + + var21 = false; + if ((MouseHandler.MouseHandler_lastButton == 1 || !DevicePcmPlayerProvider.mouseCam && MouseHandler.MouseHandler_lastButton == 4) && MouseHandler.MouseHandler_lastPressedX >= var12 && MouseHandler.MouseHandler_lastPressedY >= var13 && MouseHandler.MouseHandler_lastPressedX < var14 && MouseHandler.MouseHandler_lastPressedY < var15) { + var21 = true; + } + + if (var21) { + class60.clickWidget(var9, MouseHandler.MouseHandler_lastPressedX - var10, MouseHandler.MouseHandler_lastPressedY - var11); + } + + if (var9.contentType == 1400) { + BoundaryObject.worldMap.method6301(var17, var18, var33 & var34, var33 & var21); + } + + if (Client.clickedWidget != null && var9 != Client.clickedWidget && var33 && WorldMapIcon_1.method295(class268.getWidgetClickMask(var9))) { + Client.draggedOnWidget = var9; + } + + if (var9 == Client.clickedWidgetParent) { + Client.field873 = true; + Client.field834 = var10; + Client.field835 = var11; + } + + if (var9.hasListener) { + ScriptEvent var29; + if (var33 && Client.mouseWheelRotation != 0 && var9.onScroll != null) { + var29 = new ScriptEvent(); + var29.boolean1 = true; + var29.widget = var9; + var29.mouseY = Client.mouseWheelRotation; + var29.args = var9.onScroll; + Client.scriptEvents.addFirst(var29); + } + + if (Client.clickedWidget != null || WorldMapIcon_0.dragInventoryWidget != null || Client.isMenuOpen) { + var21 = false; + var34 = false; + var33 = false; + } + + if (!var9.isClicked && var21) { + var9.isClicked = true; + if (var9.onClick != null) { + var29 = new ScriptEvent(); + var29.boolean1 = true; + var29.widget = var9; + var29.mouseX = MouseHandler.MouseHandler_lastPressedX - var10; + var29.mouseY = MouseHandler.MouseHandler_lastPressedY - var11; + var29.args = var9.onClick; + Client.scriptEvents.addFirst(var29); + } + } + + if (var9.isClicked && var34 && var9.onClickRepeat != null) { + var29 = new ScriptEvent(); + var29.boolean1 = true; + var29.widget = var9; + var29.mouseX = MouseHandler.MouseHandler_x - var10; + var29.mouseY = MouseHandler.MouseHandler_y - var11; + var29.args = var9.onClickRepeat; + Client.scriptEvents.addFirst(var29); + } + + if (var9.isClicked && !var34) { + var9.isClicked = false; + if (var9.onRelease != null) { + var29 = new ScriptEvent(); + var29.boolean1 = true; + var29.widget = var9; + var29.mouseX = MouseHandler.MouseHandler_x - var10; + var29.mouseY = MouseHandler.MouseHandler_y - var11; + var29.args = var9.onRelease; + Client.field856.addFirst(var29); + } + } + + if (var34 && var9.onHold != null) { + var29 = new ScriptEvent(); + var29.boolean1 = true; + var29.widget = var9; + var29.mouseX = MouseHandler.MouseHandler_x - var10; + var29.mouseY = MouseHandler.MouseHandler_y - var11; + var29.args = var9.onHold; + Client.scriptEvents.addFirst(var29); + } + + if (!var9.containsMouse && var33) { + var9.containsMouse = true; + if (var9.onMouseOver != null) { + var29 = new ScriptEvent(); + var29.boolean1 = true; + var29.widget = var9; + var29.mouseX = MouseHandler.MouseHandler_x - var10; + var29.mouseY = MouseHandler.MouseHandler_y - var11; + var29.args = var9.onMouseOver; + Client.scriptEvents.addFirst(var29); + } + } + + if (var9.containsMouse && var33 && var9.onMouseRepeat != null) { + var29 = new ScriptEvent(); + var29.boolean1 = true; + var29.widget = var9; + var29.mouseX = MouseHandler.MouseHandler_x - var10; + var29.mouseY = MouseHandler.MouseHandler_y - var11; + var29.args = var9.onMouseRepeat; + Client.scriptEvents.addFirst(var29); + } + + if (var9.containsMouse && !var33) { + var9.containsMouse = false; + if (var9.onMouseLeave != null) { + var29 = new ScriptEvent(); + var29.boolean1 = true; + var29.widget = var9; + var29.mouseX = MouseHandler.MouseHandler_x - var10; + var29.mouseY = MouseHandler.MouseHandler_y - var11; + var29.args = var9.onMouseLeave; + Client.field856.addFirst(var29); + } + } + + if (var9.onTimer != null) { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onTimer; + Client.field852.addFirst(var29); + } + + ScriptEvent var31; + int var35; + int var36; + if (var9.onVarTransmit != null && Client.field806 > var9.field2592) { + if (var9.varTransmitTriggers != null && Client.field806 - var9.field2592 <= 32) { + label865: + for (var35 = var9.field2592; var35 < Client.field806; ++var35) { + var23 = Client.field863[var35 & 31]; + + for (var36 = 0; var36 < var9.varTransmitTriggers.length; ++var36) { + if (var23 == var9.varTransmitTriggers[var36]) { + var31 = new ScriptEvent(); + var31.widget = var9; + var31.args = var9.onVarTransmit; + Client.scriptEvents.addFirst(var31); + break label865; + } + } + } + } else { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onVarTransmit; + Client.scriptEvents.addFirst(var29); + } + + var9.field2592 = Client.field806; + } + + if (var9.onInvTransmit != null && Client.field671 > var9.field2603) { + if (var9.invTransmitTriggers != null && Client.field671 - var9.field2603 <= 32) { + label841: + for (var35 = var9.field2603; var35 < Client.field671; ++var35) { + var23 = Client.field888[var35 & 31]; + + for (var36 = 0; var36 < var9.invTransmitTriggers.length; ++var36) { + if (var23 == var9.invTransmitTriggers[var36]) { + var31 = new ScriptEvent(); + var31.widget = var9; + var31.args = var9.onInvTransmit; + Client.scriptEvents.addFirst(var31); + break label841; + } + } + } + } else { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onInvTransmit; + Client.scriptEvents.addFirst(var29); + } + + var9.field2603 = Client.field671; + } + + if (var9.onStatTransmit != null && Client.changedSkillsCount > var9.field2700) { + if (var9.statTransmitTriggers != null && Client.changedSkillsCount - var9.field2700 <= 32) { + label817: + for (var35 = var9.field2700; var35 < Client.changedSkillsCount; ++var35) { + var23 = Client.changedSkills[var35 & 31]; + + for (var36 = 0; var36 < var9.statTransmitTriggers.length; ++var36) { + if (var23 == var9.statTransmitTriggers[var36]) { + var31 = new ScriptEvent(); + var31.widget = var9; + var31.args = var9.onStatTransmit; + Client.scriptEvents.addFirst(var31); + break label817; + } + } + } + } else { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onStatTransmit; + Client.scriptEvents.addFirst(var29); + } + + var9.field2700 = Client.changedSkillsCount; + } + + if (Client.chatCycle > var9.field2689 && var9.onChatTransmit != null) { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onChatTransmit; + Client.scriptEvents.addFirst(var29); + } + + if (Client.field672 > var9.field2689 && var9.onFriendTransmit != null) { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onFriendTransmit; + Client.scriptEvents.addFirst(var29); + } + + if (Client.field849 > var9.field2689 && var9.onClanTransmit != null) { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onClanTransmit; + Client.scriptEvents.addFirst(var29); + } + + if (Client.field915 > var9.field2689 && var9.onStockTransmit != null) { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onStockTransmit; + Client.scriptEvents.addFirst(var29); + } + + if (Client.field851 > var9.field2689 && var9.field2681 != null) { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.field2681; + Client.scriptEvents.addFirst(var29); + } + + if (Client.field844 > var9.field2689 && var9.onMiscTransmit != null) { + var29 = new ScriptEvent(); + var29.widget = var9; + var29.args = var9.onMiscTransmit; + Client.scriptEvents.addFirst(var29); + } + + var9.field2689 = Client.cycleCntr; + if (var9.onKey != null) { + for (var35 = 0; var35 < Client.field754; ++var35) { + ScriptEvent var30 = new ScriptEvent(); + var30.widget = var9; + var30.keyTyped = Client.field921[var35]; + var30.keyPressed = Client.field877[var35]; + var30.args = var9.onKey; + Client.scriptEvents.addFirst(var30); + } + } + } + } + + if (!var9.isIf3) { + if (Client.clickedWidget != null || WorldMapIcon_0.dragInventoryWidget != null || Client.isMenuOpen) { + continue; + } + + if ((var9.mouseOverRedirect >= 0 || var9.mouseOverColor != 0) && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { + if (var9.mouseOverRedirect >= 0) { + LoginScreenAnimation.mousedOverWidgetIf1 = components[var9.mouseOverRedirect]; + } else { + LoginScreenAnimation.mousedOverWidgetIf1 = var9; + } + } + + if (var9.type == 8 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) { + class32.field284 = var9; + } + + if (var9.scrollHeight > var9.height) { + GrandExchangeEvents.method71(var9, var10 + var9.width, var11, var9.height, var9.scrollHeight, MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y); + } + } + + if (var9.type != 0) { + continue; + } + updateInterface(components, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY); + if (var9.children != null) { + updateInterface(var9.children, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY); + } + + InterfaceParent var27 = (InterfaceParent)Client.interfaceParents.get((long)var9.id); + if (var27 == null) { + continue; + } + if (var27.type == 0 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15 && !Client.isMenuOpen) { + for (ScriptEvent var28 = (ScriptEvent)Client.scriptEvents.last(); var28 != null; var28 = (ScriptEvent)Client.scriptEvents.previous()) { + if (var28.boolean1) { + var28.remove(); + var28.widget.containsMouse = false; + } + } + + if (class80.widgetDragDuration == 0) { + Client.clickedWidget = null; + Client.clickedWidgetParent = null; + } + + if (!Client.isMenuOpen) { + GraphicsObject.resetMenuEntries(); + } + } + + Skills.updateRootInterface(var27.group, var12, var13, var14, var15, var10, var11); } } diff --git a/runescape-client/src/main/java/class208.java b/runescape-client/src/main/java/class208.java index 204dd35871..fd2daa734e 100644 --- a/runescape-client/src/main/java/class208.java +++ b/runescape-client/src/main/java/class208.java @@ -135,7 +135,7 @@ public class class208 { } if (var0 == ScriptOpcodes.CHAR_ISNUMERIC) { var10 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = class49.isCharDigit((char) var10) ? 1 : 0; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = class49.isDigit((char) var10) ? 1 : 0; return 1; } if (var0 == ScriptOpcodes.STRING_LENGTH) { diff --git a/runescape-client/src/main/java/class222.java b/runescape-client/src/main/java/class222.java index 670dffcb0f..147c04cba4 100644 --- a/runescape-client/src/main/java/class222.java +++ b/runescape-client/src/main/java/class222.java @@ -9,8 +9,8 @@ public class class222 { signature = "(II)Liw;", garbageValue = "-673469339" ) - @Export("getWorldMapElement") - public static WorldMapElement getWorldMapElement(int var0) { + @Export("WorldMapElement_get") + public static WorldMapElement WorldMapElement_get(int var0) { return var0 >= 0 && var0 < WorldMapElement.WorldMapElement_cached.length && WorldMapElement.WorldMapElement_cached[var0] != null ? WorldMapElement.WorldMapElement_cached[var0] : new WorldMapElement(var0); } } diff --git a/runescape-client/src/main/java/class225.java b/runescape-client/src/main/java/class225.java index 5c6c99ed3d..c984e8f862 100644 --- a/runescape-client/src/main/java/class225.java +++ b/runescape-client/src/main/java/class225.java @@ -16,63 +16,69 @@ public class class225 { signature = "([Lhj;II)V", garbageValue = "-1666853879" ) - static final void method4122(Widget[] var0, int var1) { + @Export("drawModelComponents") + static final void drawModelComponents(Widget[] var0, int var1) { for (int var2 = 0; var2 < var0.length; ++var2) { Widget var3 = var0[var2]; - if (var3 != null && var3.parentId == var1 && (!var3.isIf3 || !ScriptEvent.isComponentHidden(var3))) { - if (var3.type == 0) { - if (!var3.isIf3 && ScriptEvent.isComponentHidden(var3) && var3 != LoginScreenAnimation.mousedOverWidgetIf1) { - continue; - } - - method4122(var0, var3.id); - if (var3.children != null) { - method4122(var3.children, var3.id); - } - - InterfaceParent var4 = (InterfaceParent)Client.interfaceParents.get((long)var3.id); - if (var4 != null) { - Archive.method4269(var4.group); - } + if (var3 == null || var3.parentId != var1 || (var3.isIf3 && ScriptEvent.isComponentHidden(var3))) { + continue; + } + if (var3.type == 0) { + if (!var3.isIf3 && ScriptEvent.isComponentHidden(var3) && var3 != LoginScreenAnimation.mousedOverWidgetIf1) { + continue; } - if (var3.type == 6) { - int var5; - if (var3.sequenceId != -1 || var3.sequenceId2 != -1) { - boolean var7 = ChatChannel.runCs1(var3); - if (var7) { - var5 = var3.sequenceId2; - } else { - var5 = var3.sequenceId; + drawModelComponents(var0, var3.id); + if (var3.children != null) { + drawModelComponents(var3.children, var3.id); + } + + InterfaceParent var4 = (InterfaceParent)Client.interfaceParents.get((long)var3.id); + if (var4 != null) { + Archive.drawInterfaceModelComponents(var4.group); + } + } + + if (var3.type != 6) { + continue; + } + int var5; + if (var3.sequenceId != -1 || var3.sequenceId2 != -1) { + boolean var7 = ChatChannel.runCs1(var3); + if (var7) { + var5 = var3.sequenceId2; + } else { + var5 = var3.sequenceId; + } + + if (var5 != -1) { + SequenceDefinition var6 = GrandExchangeEvent.getSequenceDefinition(var5); + + for (var3.modelFrameCycle += Client.field718; var3.modelFrameCycle > var6.frameLengths[var3.modelFrame]; Strings.invalidateWidget(var3)) { + var3.modelFrameCycle -= var6.frameLengths[var3.modelFrame]; + ++var3.modelFrame; + if (var3.modelFrame < var6.frameIds.length) { + continue; } - - if (var5 != -1) { - SequenceDefinition var6 = GrandExchangeEvent.getSequenceDefinition(var5); - - for (var3.modelFrameCycle += Client.field718; var3.modelFrameCycle > var6.frameLengths[var3.modelFrame]; Strings.method4120(var3)) { - var3.modelFrameCycle -= var6.frameLengths[var3.modelFrame]; - ++var3.modelFrame; - if (var3.modelFrame >= var6.frameIds.length) { - var3.modelFrame -= var6.frameCount; - if (var3.modelFrame < 0 || var3.modelFrame >= var6.frameIds.length) { - var3.modelFrame = 0; - } - } - } + var3.modelFrame -= var6.frameCount; + if (var3.modelFrame < 0 || var3.modelFrame >= var6.frameIds.length) { + var3.modelFrame = 0; } } - - if (var3.field2575 != 0 && !var3.isIf3) { - int var8 = var3.field2575 >> 16; - var5 = var3.field2575 << 16 >> 16; - var8 *= Client.field718; - var5 *= Client.field718; - var3.modelAngleX = var8 + var3.modelAngleX & 2047; - var3.modelAngleY = var5 + var3.modelAngleY & 2047; - Strings.method4120(var3); - } } } + + if (var3.field2575 == 0 || var3.isIf3) { + continue; + } + + int var8 = var3.field2575 >> 16; + var5 = var3.field2575 << 16 >> 16; + var8 *= Client.field718; + var5 *= Client.field718; + var3.modelAngleX = var8 + var3.modelAngleX & 2047; + var3.modelAngleY = var5 + var3.modelAngleY & 2047; + Strings.invalidateWidget(var3); } } diff --git a/runescape-client/src/main/java/class226.java b/runescape-client/src/main/java/class226.java index 69da56ac7d..4892427873 100644 --- a/runescape-client/src/main/java/class226.java +++ b/runescape-client/src/main/java/class226.java @@ -67,7 +67,7 @@ public class class226 { if (var2 == 1) { var3 = var0.readBits(2); var4 = Players.Players_regions[var1]; - Players.Players_regions[var1] = (((var4 >> 28) + var3 & 3) << 28) + (var4 & 268435455); + Players.Players_regions[var1] = (((var4 >> 28) + var3 & 3) << 28) + (var4 & 0xfffffff); return false; } int var5; diff --git a/runescape-client/src/main/java/class237.java b/runescape-client/src/main/java/class237.java index 1c2c5da085..397e558f57 100644 --- a/runescape-client/src/main/java/class237.java +++ b/runescape-client/src/main/java/class237.java @@ -153,18 +153,18 @@ public class class237 { for (var10 = 0; var10 < var3.pixels.length; ++var10) { if (var3.pixels[var10] == 0) { - var3.pixels[var10] = -16777216; + var3.pixels[var10] = 0xff000000; } else { var11 = (var3.pixels[var10] + 64 - 1) / 256; if (var11 <= 0) { - var3.pixels[var10] = -16777216; + var3.pixels[var10] = 0xff000000; } else { if (var11 > field3189.length) { var11 = field3189.length; } var12 = field3189[var11 - 1]; - var3.pixels[var10] = -16777216 | var12; + var3.pixels[var10] = 0xff000000 | var12; } } } diff --git a/runescape-client/src/main/java/class267.java b/runescape-client/src/main/java/class267.java index f5d2cac93c..d47fd8fb15 100644 --- a/runescape-client/src/main/java/class267.java +++ b/runescape-client/src/main/java/class267.java @@ -1,10 +1,12 @@ +import net.runelite.mapping.Export; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("jn") public class class267 { @ObfuscatedName("ai") - protected static boolean field3557; + @Export("hasFocus") + protected static boolean hasFocus; @ObfuscatedName("jy") @ObfuscatedSignature( diff --git a/runescape-client/src/main/java/class294.java b/runescape-client/src/main/java/class294.java index 6e0e001587..9943e2d2b3 100644 --- a/runescape-client/src/main/java/class294.java +++ b/runescape-client/src/main/java/class294.java @@ -66,7 +66,7 @@ public class class294 { if (0L != var1) { int var6 = GrandExchangeOfferWorldComparator.scene.getObjectFlags(var0.plane, var0.x, var0.y, var1); - var3 = class43.method770(var1); + var3 = class43.getObjectIdFromTag(var1); var4 = var6 & 31; var5 = var6 >> 6 & 3; } diff --git a/runescape-client/src/main/java/class3.java b/runescape-client/src/main/java/class3.java index 1d0f301a9a..e3efeb7598 100644 --- a/runescape-client/src/main/java/class3.java +++ b/runescape-client/src/main/java/class3.java @@ -165,7 +165,7 @@ public class class3 implements Enumerated { int[] var19 = RouteStrategy.sceneMinimapSprite.pixels; var26 = var1 * 4 + (103 - var2) * 2048 + 24624; - var14 = class43.method770(var5); + var14 = class43.getObjectIdFromTag(var5); ObjectDefinition var15 = ViewportMouse.getObjectDefinition(var14); if (var15.mapSceneId != -1) { IndexedSprite var16 = ClanChat.mapSceneSprites[var15.mapSceneId]; @@ -242,7 +242,7 @@ public class class3 implements Enumerated { var7 = GrandExchangeOfferWorldComparator.scene.getObjectFlags(var0, var1, var2, var5); var8 = var7 >> 6 & 3; var9 = var7 & 31; - var10 = class43.method770(var5); + var10 = class43.getObjectIdFromTag(var5); ObjectDefinition var20 = ViewportMouse.getObjectDefinition(var10); if (var20.mapSceneId != -1) { IndexedSprite var28 = ClanChat.mapSceneSprites[var20.mapSceneId]; @@ -281,7 +281,7 @@ public class class3 implements Enumerated { var5 = GrandExchangeOfferWorldComparator.scene.getFloorDecorationTag(var0, var1, var2); if (var5 != 0L) { - var7 = class43.method770(var5); + var7 = class43.getObjectIdFromTag(var5); ObjectDefinition var21 = ViewportMouse.getObjectDefinition(var7); if (var21.mapSceneId != -1) { IndexedSprite var22 = ClanChat.mapSceneSprites[var21.mapSceneId]; diff --git a/runescape-client/src/main/java/class30.java b/runescape-client/src/main/java/class30.java index 410c90f0dd..07dcc5b843 100644 --- a/runescape-client/src/main/java/class30.java +++ b/runescape-client/src/main/java/class30.java @@ -205,42 +205,42 @@ public class class30 { } if (var0 == 3120) { if (Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1) { - Client.field774 |= 1; + Client.drawPlayerNames |= 1; } else { - Client.field774 &= -2; + Client.drawPlayerNames &= -2; } return 1; } if (var0 == 3121) { if (Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1) { - Client.field774 |= 2; + Client.drawPlayerNames |= 2; } else { - Client.field774 &= -3; + Client.drawPlayerNames &= -3; } return 1; } if (var0 == 3122) { if (Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1) { - Client.field774 |= 4; + Client.drawPlayerNames |= 4; } else { - Client.field774 &= -5; + Client.drawPlayerNames &= -5; } return 1; } if (var0 == 3123) { if (Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1) { - Client.field774 |= 8; + Client.drawPlayerNames |= 8; } else { - Client.field774 &= -9; + Client.drawPlayerNames &= -9; } return 1; } if (var0 == 3124) { - Client.field774 = 0; + Client.drawPlayerNames = 0; return 1; } if (var0 == ScriptOpcodes.SETSHOWMOUSECROSS) { diff --git a/runescape-client/src/main/java/class4.java b/runescape-client/src/main/java/class4.java index 86d3789ebc..5626892fcf 100644 --- a/runescape-client/src/main/java/class4.java +++ b/runescape-client/src/main/java/class4.java @@ -370,13 +370,13 @@ final class class4 implements class0 { Client.viewportTempY = Client.overheadTextYs[var18] = var20; String var30 = Client.overheadText[var18]; if (Client.chatEffects == 0) { - int var25 = 16776960; + int var25 = 0xffff00; if (Client.overheadTextColors[var18] < 6) { var25 = Client.field870[Client.overheadTextColors[var18]]; } if (Client.overheadTextColors[var18] == 6) { - var25 = Client.viewportDrawCount % 20 < 10 ? 16711680 : 16776960; + var25 = Client.viewportDrawCount % 20 < 10 ? 0xff0000 : 0xffff00; } if (Client.overheadTextColors[var18] == 7) { @@ -391,20 +391,20 @@ final class class4 implements class0 { if (Client.overheadTextColors[var18] == 9) { var26 = 150 - Client.overheadTextCyclesRemaining[var18]; if (var26 < 50) { - var25 = var26 * 1280 + 16711680; + var25 = var26 * 1280 + 0xff0000; } else if (var26 < 100) { - var25 = 16776960 - (var26 - 50) * 327680; + var25 = 0xffff00 - (var26 - 50) * 327680; } else if (var26 < 150) { - var25 = (var26 - 100) * 5 + 65280; + var25 = (var26 - 100) * 5 + 0xff00; } } if (Client.overheadTextColors[var18] == 10) { var26 = 150 - Client.overheadTextCyclesRemaining[var18]; if (var26 < 50) { - var25 = var26 * 5 + 16711680; + var25 = var26 * 5 + 0xff0000; } else if (var26 < 100) { - var25 = 16711935 - (var26 - 50) * 327680; + var25 = 0xff00ff - (var26 - 50) * 327680; } else if (var26 < 150) { var25 = (var26 - 100) * 327680 + 255 - (var26 - 100) * 5; } @@ -413,11 +413,11 @@ final class class4 implements class0 { if (Client.overheadTextColors[var18] == 11) { var26 = 150 - Client.overheadTextCyclesRemaining[var18]; if (var26 < 50) { - var25 = 16777215 - var26 * 327685; + var25 = 0xffffff - var26 * 327685; } else if (var26 < 100) { - var25 = (var26 - 50) * 327685 + 65280; + var25 = (var26 - 50) * 327685 + 0xff00; } else if (var26 < 150) { - var25 = 16777215 - (var26 - 100) * 327680; + var25 = 0xffffff - (var26 - 100) * 327680; } } @@ -458,14 +458,14 @@ final class class4 implements class0 { Rasterizer2D.Rasterizer2D_setClip(var0, var1, var0 + var2, var3 + var1); } } else { - WorldMapIcon_1.fontBold12.drawCentered(var30, var0 + Client.viewportTempX, Client.viewportTempY + var1, 16776960, 0); + WorldMapIcon_1.fontBold12.drawCentered(var30, var0 + Client.viewportTempX, Client.viewportTempY + var1, 0xffff00, 0); } } if (Client.hintArrowType == 2) { class32.worldToScreen(Client.hintArrowSubX * 64 + (Client.hintArrowX - MusicPatchNode2.baseX * 64 << 7), (Client.hintArrowY - class1.baseY * 64 << 7) + Client.hintArrowSubY * 4096, Client.hintArrowHeight * 4); if (Client.viewportTempX > -1 && Client.cycle % 20 < 10) { - class173.headIconHintSprites[0].drawAt2(var0 + Client.viewportTempX - 12, Client.viewportTempY + var1 - 28); + class173.headIconHintSprites[0].drawTransBgAt(var0 + Client.viewportTempX - 12, Client.viewportTempY + var1 - 28); } } diff --git a/runescape-client/src/main/java/class40.java b/runescape-client/src/main/java/class40.java index 8f7ae7719d..8fe17bae47 100644 --- a/runescape-client/src/main/java/class40.java +++ b/runescape-client/src/main/java/class40.java @@ -687,7 +687,7 @@ public class class40 { if (var0.buttonType == 2 && !Client.isSpellSelected) { var3 = FontName.method5318(var0); if (var3 != null) { - class188.insertMenuItemNoShift(var3, ClientPreferences.colorStartTag(65280) + var0.spellName, 25, 0, -1, var0.id); + class188.insertMenuItemNoShift(var3, ClientPreferences.colorStartTag(0xff00) + var0.spellName, 25, 0, -1, var0.id); } } @@ -703,7 +703,7 @@ public class class40 { class188.insertMenuItemNoShift(var0.buttonText, "", 29, 0, 0, var0.id); } - if (var0.buttonType == 6 && Client.field850 == null) { + if (var0.buttonType == 6 && Client.meslayerContinueWidget == null) { class188.insertMenuItemNoShift(var0.buttonText, "", 30, 0, -1, var0.id); } diff --git a/runescape-client/src/main/java/class43.java b/runescape-client/src/main/java/class43.java index a019ff43e5..abb0e1cc7e 100644 --- a/runescape-client/src/main/java/class43.java +++ b/runescape-client/src/main/java/class43.java @@ -32,7 +32,8 @@ public final class class43 { static int cameraY; @ObfuscatedName("l") - public static int method770(long var0) { - return (int)(var0 >>> 17 & 4294967295L); + @Export("getObjectIdFromTag") + public static int getObjectIdFromTag(long var0) { + return (int)(var0 >>> 17 & 0xffffffffL); } } diff --git a/runescape-client/src/main/java/class49.java b/runescape-client/src/main/java/class49.java index ee85d59070..f8ddf38816 100644 --- a/runescape-client/src/main/java/class49.java +++ b/runescape-client/src/main/java/class49.java @@ -15,15 +15,16 @@ public class class49 { garbageValue = "135" ) static void method815() { - if (Login.Login_username == null || Login.Login_username.length() <= 0) { - if (WorldMapLabelSize.clientPreferences.rememberedUsername != null) { - Login.Login_username = WorldMapLabelSize.clientPreferences.rememberedUsername; - Client.Login_isUsernameRemembered = true; - } else { - Client.Login_isUsernameRemembered = false; - } - + if (Login.Login_username != null && Login.Login_username.length() > 0) { + return; } + if (WorldMapLabelSize.clientPreferences.rememberedUsername != null) { + Login.Login_username = WorldMapLabelSize.clientPreferences.rememberedUsername; + Client.Login_isUsernameRemembered = true; + } else { + Client.Login_isUsernameRemembered = false; + } + } @ObfuscatedName("e") @@ -43,16 +44,17 @@ public class class49 { return null; } byte[] var5 = UserComparator4.archive12.takeFileFlat(var4); - if (var5 != null) { - if (var5.length <= 1) { - return null; - } + if (var5 == null) { + return null; + } + if (var5.length <= 1) { + return null; + } - var2 = World.newScript(var5); - if (var2 != null) { - Script.Script_cached.put(var2, (long)(var0 << 16)); - return var2; - } + var2 = World.newScript(var5); + if (var2 != null) { + Script.Script_cached.put(var2, (long)(var0 << 16)); + return var2; } return null; @@ -63,8 +65,8 @@ public class class49 { signature = "(CS)Z", garbageValue = "8230" ) - @Export("isCharDigit") - public static boolean isCharDigit(char var0) { + @Export("isDigit") + public static boolean isDigit(char var0) { return var0 >= '0' && var0 <= '9'; } } diff --git a/runescape-client/src/main/java/class65.java b/runescape-client/src/main/java/class65.java index f28c0099ac..40d3d03c3a 100644 --- a/runescape-client/src/main/java/class65.java +++ b/runescape-client/src/main/java/class65.java @@ -74,8 +74,8 @@ public class class65 extends RouteStrategy { Sprite var4 = new Sprite(); var4.width = SpriteBuffer.SpriteBuffer_spriteWidth; var4.height = SpriteBuffer.SpriteBuffer_spriteHeight; - var4.yOffset = Varps.SpriteBuffer_xOffsets[0]; - var4.xOffset = SpriteBuffer.SpriteBuffer_yOffsets[0]; + var4.xOffset = Varps.SpriteBuffer_xOffsets[0]; + var4.yOffset = SpriteBuffer.SpriteBuffer_yOffsets[0]; var4.subWidth = SpriteBuffer.SpriteBuffer_spriteWidths[0]; var4.subHeight = class216.SpriteBuffer_spriteHeights[0]; int var5 = var4.subHeight * var4.subWidth; @@ -191,9 +191,9 @@ public class class65 extends RouteStrategy { garbageValue = "-1548212436" ) @Export("addSceneMenuOptions") - static final void addSceneMenuOptions(int var0, int var1, int var2, int var3) { + static final void addSceneMenuOptions(int mouseX, int mouseY, int xOffset, int yOffset) { if (Client.isItemSelected == 0 && !Client.isSpellSelected) { - class188.insertMenuItemNoShift("Walk here", "", 23, 0, var0 - var2, var1 - var3); + class188.insertMenuItemNoShift("Walk here", "", 23, 0, mouseX - xOffset, mouseY - yOffset); } long var4 = -1L; @@ -400,24 +400,25 @@ public class class65 extends RouteStrategy { static void method1176() { for (InterfaceParent var0 = (InterfaceParent)Client.interfaceParents.first(); var0 != null; var0 = (InterfaceParent)Client.interfaceParents.next()) { int var1 = var0.group; - if (class162.loadInterface(var1)) { - boolean var2 = true; - Widget[] var3 = Widget.Widget_interfaceComponents[var1]; + if (!class162.loadInterface(var1)) { + continue; + } + boolean var2 = true; + Widget[] var3 = Widget.Widget_interfaceComponents[var1]; - int var4; - for (var4 = 0; var4 < var3.length; ++var4) { - if (var3[var4] != null) { - var2 = var3[var4].isIf3; - break; - } + int var4; + for (var4 = 0; var4 < var3.length; ++var4) { + if (var3[var4] != null) { + var2 = var3[var4].isIf3; + break; } + } - if (!var2) { - var4 = (int)var0.key; - Widget var5 = class80.getWidget(var4); - if (var5 != null) { - Strings.method4120(var5); - } + if (!var2) { + var4 = (int)var0.key; + Widget var5 = class80.getWidget(var4); + if (var5 != null) { + Strings.invalidateWidget(var5); } } } diff --git a/runescape-client/src/main/java/class83.java b/runescape-client/src/main/java/class83.java index de4391e536..c23e3f32f4 100644 --- a/runescape-client/src/main/java/class83.java +++ b/runescape-client/src/main/java/class83.java @@ -1,4 +1,5 @@ import java.math.BigInteger; +import net.runelite.mapping.Export; import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @@ -26,27 +27,28 @@ public class class83 { signature = "(IIILiy;II)V", garbageValue = "1789870821" ) - static void method1996(int var0, int var1, int var2, ObjectDefinition var3, int var4) { + @Export("newObjectSound") + static void newObjectSound(int plane, int x, int y, ObjectDefinition object, int rotation) { ObjectSound var5 = new ObjectSound(); - var5.field1078 = var0; - var5.field1083 = var1 * 128; - var5.field1090 = var2 * 16384; - int var6 = var3.sizeX; - int var7 = var3.sizeY; - if (var4 == 1 || var4 == 3) { - var6 = var3.sizeY; - var7 = var3.sizeX; + var5.plane = plane; + var5.x = x * 128; + var5.y = y * 16384; + int var6 = object.sizeX; + int var7 = object.sizeY; + if (rotation == 1 || rotation == 3) { + var6 = object.sizeY; + var7 = object.sizeX; } - var5.field1077 = (var6 + var1) * 16384; - var5.field1082 = (var7 + var2) * 16384; - var5.soundEffectId = var3.ambientSoundId; - var5.field1091 = var3.int4 * 128; - var5.field1086 = var3.int5; - var5.field1081 = var3.int6; - var5.soundEffectIds = var3.field3367; - if (var3.transforms != null) { - var5.obj = var3; + var5.field1077 = (var6 + x) * 16384; + var5.field1082 = (var7 + y) * 16384; + var5.soundEffectId = object.ambientSoundId; + var5.field1091 = object.int4 * 128; + var5.field1086 = object.int5; + var5.field1081 = object.int6; + var5.soundEffectIds = object.soundEffectIds; + if (object.transforms != null) { + var5.obj = object; var5.set(); } @@ -93,48 +95,48 @@ public class class83 { var3.scrollY = 0; } - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETCOLOUR) { var3.color = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETFILL) { var3.fill = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETTRANS) { var3.transparencyTop = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETLINEWID) { var3.lineWid = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETGRAPHIC) { var3.spriteId2 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SET2DANGLE) { var3.spriteAngle = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETTILING) { var3.spriteTiling = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETMODEL) { var3.modelType = 1; var3.modelId = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETMODELANGLE) { @@ -145,7 +147,7 @@ public class class83 { var3.modelAngleY = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 3]; var3.modelAngleZ = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 4]; var3.modelZoom = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 5]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } int var8; @@ -155,28 +157,28 @@ public class class83 { var3.sequenceId = var8; var3.modelFrame = 0; var3.modelFrameCycle = 0; - Strings.method4120(var3); + Strings.invalidateWidget(var3); } return 1; } if (var0 == ScriptOpcodes.CC_SETMODELORTHOG) { var3.modelOrthog = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETTEXT) { String var7 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; if (!var7.equals(var3.text)) { var3.text = var7; - Strings.method4120(var3); + Strings.invalidateWidget(var3); } return 1; } if (var0 == ScriptOpcodes.CC_SETTEXTFONT) { var3.fontId = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETTEXTALIGN) { @@ -184,39 +186,39 @@ public class class83 { var3.textXAlignment = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; var3.textYAlignment = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; var3.textLineHeight = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 2]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETTEXTSHADOW) { var3.textShadowed = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETOUTLINE) { var3.outline = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETGRAPHICSHADOW) { var3.spriteShadow = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETVFLIP) { var3.spriteFlipV = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETHFLIP) { var3.spriteFlipH = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETSCROLLSIZE) { HealthBarUpdate.Interpreter_intStackSize -= 2; var3.scrollWidth = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; var3.scrollHeight = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); if (var4 != -1 && var3.type == 0) { WorldMapSprite.revalidateWidgetScroll(Widget.Widget_interfaceComponents[var4 >> 16], var3, false); } @@ -224,32 +226,32 @@ public class class83 { return 1; } if (var0 == ScriptOpcodes.CC_RESUME_PAUSEBUTTON) { - ScriptFrame.method1086(var3.id, var3.childIndex); - Client.field850 = var3; - Strings.method4120(var3); + ScriptFrame.resumePauseWidget(var3.id, var3.childIndex); + Client.meslayerContinueWidget = var3; + Strings.invalidateWidget(var3); return 1; } if (var0 == 1122) { var3.spriteId = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETFILLCOLOUR) { var3.color2 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == 1124) { var3.transparencyBot = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - Strings.method4120(var3); + Strings.invalidateWidget(var3); return 1; } if (var0 == ScriptOpcodes.CC_SETFILLMODE) { var8 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - FillMode var6 = (FillMode)SoundSystem.findEnumerated(PcmPlayer.method2405(), var8); + FillMode var6 = (FillMode)SoundSystem.findEnumerated(PcmPlayer.FillMode_values(), var8); if (var6 != null) { var3.fillMode = var6; - Strings.method4120(var3); + Strings.invalidateWidget(var3); } return 1; diff --git a/runescape-client/src/main/java/class96.java b/runescape-client/src/main/java/class96.java index 0bbb7f51df..b4b5d492a1 100644 --- a/runescape-client/src/main/java/class96.java +++ b/runescape-client/src/main/java/class96.java @@ -40,308 +40,302 @@ public class class96 { int var17; if (PacketBufferNode.isWorldMapEvent(var0.type)) { WorldMapIcon_0.worldMapEvent = (WorldMapEvent)var2[0]; - WorldMapElement var4 = class222.getWorldMapElement(WorldMapIcon_0.worldMapEvent.mapElement); + WorldMapElement var4 = class222.WorldMapElement_get(WorldMapIcon_0.worldMapEvent.mapElement); var3 = ObjectSound.getWorldMapScript(var0.type, var4.objectId, var4.category); } else { var17 = (Integer)var2[0]; var3 = ViewportMouse.getScript(var17); } - if (var3 != null) { - HealthBarUpdate.Interpreter_intStackSize = 0; - Skills.Interpreter_stringStackSize = 0; - var17 = -1; - int[] var5 = var3.opcodes; - int[] var6 = var3.intOperands; - byte var7 = -1; - Interpreter.Interpreter_frameDepth = 0; - Interpreter.field1104 = false; + if (var3 == null) { + return; + } + HealthBarUpdate.Interpreter_intStackSize = 0; + Skills.Interpreter_stringStackSize = 0; + var17 = -1; + int[] var5 = var3.opcodes; + int[] var6 = var3.intOperands; + byte var7 = -1; + Interpreter.Interpreter_frameDepth = 0; + Interpreter.field1104 = false; + try { + int var10; try { - int var10; - try { - Interpreter.Interpreter_intLocals = new int[var3.localIntCount]; - int var8 = 0; - GZipDecompressor.Interpreter_stringLocals = new String[var3.localStringCount]; - int var9 = 0; + Interpreter.Interpreter_intLocals = new int[var3.localIntCount]; + int var8 = 0; + GZipDecompressor.Interpreter_stringLocals = new String[var3.localStringCount]; + int var9 = 0; - int var11; - String var18; - for (var10 = 1; var10 < var2.length; ++var10) { - if (var2[var10] instanceof Integer) { - var11 = (Integer)var2[var10]; - if (var11 == -2147483647) { - var11 = var0.mouseX; - } - - if (var11 == -2147483646) { - var11 = var0.mouseY; - } - - if (var11 == -2147483645) { - var11 = var0.widget != null ? var0.widget.id : -1; - } - - if (var11 == -2147483644) { - var11 = var0.opIndex; - } - - if (var11 == -2147483643) { - var11 = var0.widget != null ? var0.widget.childIndex : -1; - } - - if (var11 == -2147483642) { - var11 = var0.dragTarget != null ? var0.dragTarget.id : -1; - } - - if (var11 == -2147483641) { - var11 = var0.dragTarget != null ? var0.dragTarget.childIndex : -1; - } - - if (var11 == -2147483640) { - var11 = var0.keyTyped; - } - - if (var11 == -2147483639) { - var11 = var0.keyPressed; - } - - Interpreter.Interpreter_intLocals[var8++] = var11; - } else if (var2[var10] instanceof String) { - var18 = (String)var2[var10]; - if (var18.equals("event_opbase")) { - var18 = var0.targetName; - } - - GZipDecompressor.Interpreter_stringLocals[var9++] = var18; + int var11; + String var18; + for (var10 = 1; var10 < var2.length; ++var10) { + if (var2[var10] instanceof Integer) { + var11 = (Integer)var2[var10]; + if (var11 == -2147483647) { + var11 = var0.mouseX; } + + if (var11 == -2147483646) { + var11 = var0.mouseY; + } + + if (var11 == -2147483645) { + var11 = var0.widget != null ? var0.widget.id : -1; + } + + if (var11 == -2147483644) { + var11 = var0.opIndex; + } + + if (var11 == -2147483643) { + var11 = var0.widget != null ? var0.widget.childIndex : -1; + } + + if (var11 == -2147483642) { + var11 = var0.dragTarget != null ? var0.dragTarget.id : -1; + } + + if (var11 == -2147483641) { + var11 = var0.dragTarget != null ? var0.dragTarget.childIndex : -1; + } + + if (var11 == -2147483640) { + var11 = var0.keyTyped; + } + + if (var11 == -2147483639) { + var11 = var0.keyPressed; + } + + Interpreter.Interpreter_intLocals[var8++] = var11; + } else if (var2[var10] instanceof String) { + var18 = (String)var2[var10]; + if (var18.equals("event_opbase")) { + var18 = var0.targetName; + } + + GZipDecompressor.Interpreter_stringLocals[var9++] = var18; + } + } + + var10 = 0; + Interpreter.field1106 = var0.field583; + + while (true) { + ++var10; + if (var10 > var1) { + throw new RuntimeException(); } - var10 = 0; - Interpreter.field1106 = var0.field583; + ++var17; + int var29 = var5[var17]; + int var20; + if (var29 >= 100) { + boolean var32; + if (var3.intOperands[var17] == 1) { + var32 = true; + } else { + var32 = false; + } - while (true) { - ++var10; - if (var10 > var1) { + var20 = NPC.method1977(var29, var3, var32); + switch(var20) { + case 0: + return; + case 1: + default: + break; + case 2: + throw new IllegalStateException(); + } + } else if (var29 == 0) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var6[var17]; + } else if (var29 == ScriptOpcodes.GET_VARP) { + var11 = var6[var17]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Varps.Varps_main[var11]; + } else if (var29 == ScriptOpcodes.SET_VARP) { + var11 = var6[var17]; + Varps.Varps_main[var11] = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + GrandExchangeOfferUnitPriceComparator.method124(var11); + } else if (var29 == ScriptOpcodes.SCONST) { + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3.stringOperands[var17]; + } else if (var29 == ScriptOpcodes.JUMP) { + var17 += var6[var17]; + } else if (var29 == ScriptOpcodes.IF_ICMPNE) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] != Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { + var17 += var6[var17]; + } + } else if (var29 == ScriptOpcodes.IF_ICMPEQ) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] == Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { + var17 += var6[var17]; + } + } else if (var29 == ScriptOpcodes.IF_ICMPLT) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] < Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { + var17 += var6[var17]; + } + } else if (var29 == ScriptOpcodes.IF_ICMPGT) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] > Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { + var17 += var6[var17]; + } + } else if (var29 == ScriptOpcodes.RETURN) { + if (Interpreter.Interpreter_frameDepth == 0) { + return; + } + + ScriptFrame var34 = Interpreter.Interpreter_frames[--Interpreter.Interpreter_frameDepth]; + var3 = var34.script; + var5 = var3.opcodes; + var6 = var3.intOperands; + var17 = var34.pc; + Interpreter.Interpreter_intLocals = var34.intLocals; + GZipDecompressor.Interpreter_stringLocals = var34.stringLocals; + } else if (var29 == ScriptOpcodes.GET_VARBIT) { + var11 = var6[var17]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = GrandExchangeOfferOwnWorldComparator.getVarbit(var11); + } else if (var29 == ScriptOpcodes.SET_VARBIT) { + var11 = var6[var17]; + NetSocket.method3554(var11, Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]); + } else if (var29 == ScriptOpcodes.IF_ICMPLE) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] <= Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { + var17 += var6[var17]; + } + } else if (var29 == ScriptOpcodes.IF_ICMPGE) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] >= Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { + var17 += var6[var17]; + } + } else if (var29 == ScriptOpcodes.ILOAD) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Interpreter.Interpreter_intLocals[var6[var17]]; + } else if (var29 == ScriptOpcodes.ISTORE) { + Interpreter.Interpreter_intLocals[var6[var17]] = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + } else if (var29 == ScriptOpcodes.SLOAD) { + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = GZipDecompressor.Interpreter_stringLocals[var6[var17]]; + } else if (var29 == ScriptOpcodes.SSTORE) { + GZipDecompressor.Interpreter_stringLocals[var6[var17]] = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + } else if (var29 == ScriptOpcodes.JOIN_STRING) { + var11 = var6[var17]; + Skills.Interpreter_stringStackSize -= var11; + String var31 = Timer.method5015(Interpreter.Interpreter_stringStack, Skills.Interpreter_stringStackSize, var11); + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var31; + } else if (var29 == ScriptOpcodes.POP_INT) { + --HealthBarUpdate.Interpreter_intStackSize; + } else if (var29 == ScriptOpcodes.POP_STRING) { + --Skills.Interpreter_stringStackSize; + } else if (var29 == ScriptOpcodes.INVOKE) { + var11 = var6[var17]; + Script var12 = ViewportMouse.getScript(var11); + int[] var13 = new int[var12.localIntCount]; + String[] var14 = new String[var12.localStringCount]; + + for (int var15 = 0; var15 < var12.intArgumentCount; ++var15) { + var13[var15] = Interpreter.Interpreter_intStack[var15 + (HealthBarUpdate.Interpreter_intStackSize - var12.intArgumentCount)]; + } + + for (int var15 = 0; var15 < var12.stringArgumentCount; ++var15) { + var14[var15] = Interpreter.Interpreter_stringStack[var15 + (Skills.Interpreter_stringStackSize - var12.stringArgumentCount)]; + } + + HealthBarUpdate.Interpreter_intStackSize -= var12.intArgumentCount; + Skills.Interpreter_stringStackSize -= var12.stringArgumentCount; + ScriptFrame var19 = new ScriptFrame(); + var19.script = var3; + var19.pc = var17; + var19.intLocals = Interpreter.Interpreter_intLocals; + var19.stringLocals = GZipDecompressor.Interpreter_stringLocals; + Interpreter.Interpreter_frames[++Interpreter.Interpreter_frameDepth - 1] = var19; + var3 = var12; + var5 = var12.opcodes; + var6 = var12.intOperands; + var17 = -1; + Interpreter.Interpreter_intLocals = var13; + GZipDecompressor.Interpreter_stringLocals = var14; + } else if (var29 == ScriptOpcodes.GET_VARC_INT) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Clock.varcs.getInt(var6[var17]); + } else if (var29 == ScriptOpcodes.SET_VARC_INT) { + Clock.varcs.setInt(var6[var17], Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]); + } else if (var29 == ScriptOpcodes.DEFINE_ARRAY) { + var11 = var6[var17] >> 16; + var20 = var6[var17] & 65535; + int var21 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + if (var21 < 0 || var21 > 5000) { throw new RuntimeException(); } - ++var17; - int var29 = var5[var17]; - int var20; - if (var29 >= 100) { - boolean var32; - if (var3.intOperands[var17] == 1) { - var32 = true; - } else { - var32 = false; - } - - var20 = NPC.method1977(var29, var3, var32); - switch(var20) { - case 0: - return; - case 1: - default: - break; - case 2: - throw new IllegalStateException(); - } - } else if (var29 == 0) { - Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var6[var17]; - } else if (var29 == ScriptOpcodes.GET_VARP) { - var11 = var6[var17]; - Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Varps.Varps_main[var11]; - } else if (var29 == ScriptOpcodes.SET_VARP) { - var11 = var6[var17]; - Varps.Varps_main[var11] = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - GrandExchangeOfferUnitPriceComparator.method124(var11); - } else if (var29 == ScriptOpcodes.SCONST) { - Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3.stringOperands[var17]; - } else if (var29 == ScriptOpcodes.JUMP) { - var17 += var6[var17]; - } else if (var29 == ScriptOpcodes.IF_ICMPNE) { - HealthBarUpdate.Interpreter_intStackSize -= 2; - if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] != Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { - var17 += var6[var17]; - } - } else if (var29 == ScriptOpcodes.IF_ICMPEQ) { - HealthBarUpdate.Interpreter_intStackSize -= 2; - if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] == Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { - var17 += var6[var17]; - } - } else if (var29 == ScriptOpcodes.IF_ICMPLT) { - HealthBarUpdate.Interpreter_intStackSize -= 2; - if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] < Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { - var17 += var6[var17]; - } - } else if (var29 == ScriptOpcodes.IF_ICMPGT) { - HealthBarUpdate.Interpreter_intStackSize -= 2; - if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] > Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { - var17 += var6[var17]; - } - } else if (var29 == ScriptOpcodes.RETURN) { - if (Interpreter.Interpreter_frameDepth == 0) { - return; - } - - ScriptFrame var34 = Interpreter.Interpreter_frames[--Interpreter.Interpreter_frameDepth]; - var3 = var34.script; - var5 = var3.opcodes; - var6 = var3.intOperands; - var17 = var34.pc; - Interpreter.Interpreter_intLocals = var34.intLocals; - GZipDecompressor.Interpreter_stringLocals = var34.stringLocals; - } else if (var29 == ScriptOpcodes.GET_VARBIT) { - var11 = var6[var17]; - Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = GrandExchangeOfferOwnWorldComparator.getVarbit(var11); - } else if (var29 == ScriptOpcodes.SET_VARBIT) { - var11 = var6[var17]; - NetSocket.method3554(var11, Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]); - } else if (var29 == ScriptOpcodes.IF_ICMPLE) { - HealthBarUpdate.Interpreter_intStackSize -= 2; - if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] <= Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { - var17 += var6[var17]; - } - } else if (var29 == ScriptOpcodes.IF_ICMPGE) { - HealthBarUpdate.Interpreter_intStackSize -= 2; - if (Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] >= Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]) { - var17 += var6[var17]; - } - } else if (var29 == ScriptOpcodes.ILOAD) { - Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Interpreter.Interpreter_intLocals[var6[var17]]; - } else if (var29 == ScriptOpcodes.ISTORE) { - Interpreter.Interpreter_intLocals[var6[var17]] = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - } else if (var29 == ScriptOpcodes.SLOAD) { - Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = GZipDecompressor.Interpreter_stringLocals[var6[var17]]; - } else if (var29 == ScriptOpcodes.SSTORE) { - GZipDecompressor.Interpreter_stringLocals[var6[var17]] = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; - } else if (var29 == ScriptOpcodes.JOIN_STRING) { - var11 = var6[var17]; - Skills.Interpreter_stringStackSize -= var11; - String var31 = Timer.method5015(Interpreter.Interpreter_stringStack, Skills.Interpreter_stringStackSize, var11); - Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var31; - } else if (var29 == ScriptOpcodes.POP_INT) { - --HealthBarUpdate.Interpreter_intStackSize; - } else if (var29 == ScriptOpcodes.POP_STRING) { - --Skills.Interpreter_stringStackSize; - } else { - int var15; - if (var29 != ScriptOpcodes.INVOKE) { - if (var29 == ScriptOpcodes.GET_VARC_INT) { - Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Clock.varcs.getInt(var6[var17]); - } else if (var29 == ScriptOpcodes.SET_VARC_INT) { - Clock.varcs.setInt(var6[var17], Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]); - } else if (var29 == ScriptOpcodes.DEFINE_ARRAY) { - var11 = var6[var17] >> 16; - var20 = var6[var17] & 65535; - int var21 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - if (var21 < 0 || var21 > 5000) { - throw new RuntimeException(); - } - - Interpreter.Interpreter_arrayLengths[var11] = var21; - byte var22 = -1; - if (var20 == 105) { - var22 = 0; - } - - for (var15 = 0; var15 < var21; ++var15) { - Interpreter.Interpreter_arrays[var11][var15] = var22; - } - } else if (var29 == ScriptOpcodes.GET_ARRAY_INT) { - var11 = var6[var17]; - var20 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; - if (var20 < 0 || var20 >= Interpreter.Interpreter_arrayLengths[var11]) { - throw new RuntimeException(); - } - - Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Interpreter.Interpreter_arrays[var11][var20]; - } else if (var29 == ScriptOpcodes.SET_ARRAY_INT) { - var11 = var6[var17]; - HealthBarUpdate.Interpreter_intStackSize -= 2; - var20 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; - if (var20 < 0 || var20 >= Interpreter.Interpreter_arrayLengths[var11]) { - throw new RuntimeException(); - } - - Interpreter.Interpreter_arrays[var11][var20] = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; - } else if (var29 == ScriptOpcodes.GET_VARC_STRING_OLD) { - var18 = Clock.varcs.getStringOld(var6[var17]); - if (var18 == null) { - var18 = "null"; - } - - Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var18; - } else if (var29 == ScriptOpcodes.SET_VARC_STRING_OLD) { - Clock.varcs.setStringOld(var6[var17], Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]); - } else if (var29 == ScriptOpcodes.GET_VARC_STRING) { - var18 = Clock.varcs.getString(var6[var17]); - Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var18; - } else if (var29 == ScriptOpcodes.SET_VARC_STRING) { - Clock.varcs.setString(var6[var17], Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]); - } else { - if (var29 != ScriptOpcodes.SWITCH) { - throw new IllegalStateException(); - } - - IterableNodeHashTable var33 = var3.switches[var6[var17]]; - IntegerNode var30 = (IntegerNode)var33.get((long)Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]); - if (var30 != null) { - var17 += var30.integer; - } - } - } else { - var11 = var6[var17]; - Script var12 = ViewportMouse.getScript(var11); - int[] var13 = new int[var12.localIntCount]; - String[] var14 = new String[var12.localStringCount]; - - for (var15 = 0; var15 < var12.intArgumentCount; ++var15) { - var13[var15] = Interpreter.Interpreter_intStack[var15 + (HealthBarUpdate.Interpreter_intStackSize - var12.intArgumentCount)]; - } - - for (var15 = 0; var15 < var12.stringArgumentCount; ++var15) { - var14[var15] = Interpreter.Interpreter_stringStack[var15 + (Skills.Interpreter_stringStackSize - var12.stringArgumentCount)]; - } - - HealthBarUpdate.Interpreter_intStackSize -= var12.intArgumentCount; - Skills.Interpreter_stringStackSize -= var12.stringArgumentCount; - ScriptFrame var19 = new ScriptFrame(); - var19.script = var3; - var19.pc = var17; - var19.intLocals = Interpreter.Interpreter_intLocals; - var19.stringLocals = GZipDecompressor.Interpreter_stringLocals; - Interpreter.Interpreter_frames[++Interpreter.Interpreter_frameDepth - 1] = var19; - var3 = var12; - var5 = var12.opcodes; - var6 = var12.intOperands; - var17 = -1; - Interpreter.Interpreter_intLocals = var13; - GZipDecompressor.Interpreter_stringLocals = var14; - } + Interpreter.Interpreter_arrayLengths[var11] = var21; + byte var22 = -1; + if (var20 == 105) { + var22 = 0; } - } - } catch (Exception var27) { - StringBuilder var24 = new StringBuilder(30); - var24.append("").append(var3.key).append(" "); - for (var10 = Interpreter.Interpreter_frameDepth - 1; var10 >= 0; --var10) { - var24.append("").append(Interpreter.Interpreter_frames[var10].script.key).append(" "); - } + for (int var15 = 0; var15 < var21; ++var15) { + Interpreter.Interpreter_arrays[var11][var15] = var22; + } + } else if (var29 == ScriptOpcodes.GET_ARRAY_INT) { + var11 = var6[var17]; + var20 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + if (var20 < 0 || var20 >= Interpreter.Interpreter_arrayLengths[var11]) { + throw new RuntimeException(); + } - var24.append("").append(var7); - HitSplatDefinition.sendStackTrace(var24.toString(), var27); + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Interpreter.Interpreter_arrays[var11][var20]; + } else if (var29 == ScriptOpcodes.SET_ARRAY_INT) { + var11 = var6[var17]; + HealthBarUpdate.Interpreter_intStackSize -= 2; + var20 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; + if (var20 < 0 || var20 >= Interpreter.Interpreter_arrayLengths[var11]) { + throw new RuntimeException(); + } + + Interpreter.Interpreter_arrays[var11][var20] = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + } else if (var29 == ScriptOpcodes.GET_VARC_STRING_OLD) { + var18 = Clock.varcs.getStringOld(var6[var17]); + if (var18 == null) { + var18 = "null"; + } + + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var18; + } else if (var29 == ScriptOpcodes.SET_VARC_STRING_OLD) { + Clock.varcs.setStringOld(var6[var17], Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]); + } else if (var29 == ScriptOpcodes.GET_VARC_STRING) { + var18 = Clock.varcs.getString(var6[var17]); + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var18; + } else if (var29 == ScriptOpcodes.SET_VARC_STRING) { + Clock.varcs.setString(var6[var17], Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]); + } else if (var29 == ScriptOpcodes.SWITCH) { + IterableNodeHashTable var33 = var3.switches[var6[var17]]; + IntegerNode var30 = (IntegerNode) var33.get((long) Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]); + if (var30 != null) { + var17 += var30.integer; + } + } else { + throw new IllegalStateException(); + } } - } finally { - if (Interpreter.field1104) { - Interpreter.field1105 = true; - GrandExchangeEvent.method73(); - Interpreter.field1105 = false; - Interpreter.field1104 = false; + } catch (Exception var27) { + StringBuilder var24 = new StringBuilder(30); + var24.append("").append(var3.key).append(" "); + + for (var10 = Interpreter.Interpreter_frameDepth - 1; var10 >= 0; --var10) { + var24.append("").append(Interpreter.Interpreter_frames[var10].script.key).append(" "); } + var24.append("").append(var7); + HitSplatDefinition.sendStackTrace(var24.toString(), var27); } + } finally { + if (Interpreter.field1104) { + Interpreter.field1105 = true; + GrandExchangeEvent.method73(); + Interpreter.field1105 = false; + Interpreter.field1104 = false; + } + } } @@ -361,80 +355,81 @@ public class class96 { ) @Export("updateGameState") static void updateGameState(int var0) { - if (var0 != Client.gameState) { - if (Client.gameState == 0) { - WorldMapSprite.client.method885(); - } - - if (var0 == 20 || var0 == 40 || var0 == 45) { - Client.loginState = 0; - Client.field687 = 0; - Client.field688 = 0; - Client.timer.method4996(var0); - if (var0 != 20) { - GrandExchangeOffer.method99(false); - } - } - - if (var0 != 20 && var0 != 40 && class269.field3563 != null) { - class269.field3563.close(); - class269.field3563 = null; - } - - if (Client.gameState == 25) { - Client.field709 = 0; - Client.field705 = 0; - Client.field706 = 1; - Client.field707 = 0; - Client.field896 = 1; - } - - if (var0 != 5 && var0 != 10) { - if (var0 == 20) { - BufferedSource.method5892(WorldMapLabelSize.archive10, Client.archive8, true, Client.gameState == 11 ? 4 : 0); - } else if (var0 == 11) { - BufferedSource.method5892(WorldMapLabelSize.archive10, Client.archive8, false, 4); - } else if (Login.field1179) { - Login.titleboxSprite = null; - VarpDefinition.titlebuttonSprite = null; - Login.runesSprite = null; - GrandExchangeOfferWorldComparator.leftTitleSprite = null; - NPC.rightTitleSprite = null; - TileItem.logoSprite = null; - Login.title_muteSprite = null; - Login.options_buttons_0Sprite = null; - Decimator.options_buttons_2Sprite = null; - WorldMapID.worldSelectBackSprites = null; - SecureRandomCallable.worldSelectFlagSprites = null; - class225.worldSelectArrows = null; - FriendSystem.worldSelectStars = null; - class30.field264 = null; - Ignored.loginScreenRunesAnimation.method1720(); - class40.method729(2); - if (NetCache.NetCache_socket != null) { - try { - Buffer var1 = new Buffer(4); - var1.writeByte(2); - var1.writeMedium(0); - NetCache.NetCache_socket.write(var1.array, 0, 4); - } catch (IOException var4) { - try { - NetCache.NetCache_socket.close(); - } catch (Exception var3) { - } - - ++NetCache.NetCache_ioExceptions; - NetCache.NetCache_socket = null; - } - } - - Login.field1179 = false; - } - } else { - BufferedSource.method5892(WorldMapLabelSize.archive10, Client.archive8, true, 0); - } - - Client.gameState = var0; + if (var0 == Client.gameState) { + return; } + if (Client.gameState == 0) { + WorldMapSprite.client.method885(); + } + + if (var0 == 20 || var0 == 40 || var0 == 45) { + Client.loginState = 0; + Client.field687 = 0; + Client.field688 = 0; + Client.timer.method4996(var0); + if (var0 != 20) { + GrandExchangeOffer.method99(false); + } + } + + if (var0 != 20 && var0 != 40 && class269.field3563 != null) { + class269.field3563.close(); + class269.field3563 = null; + } + + if (Client.gameState == 25) { + Client.field709 = 0; + Client.field705 = 0; + Client.field706 = 1; + Client.field707 = 0; + Client.field896 = 1; + } + + if (var0 != 5 && var0 != 10) { + if (var0 == 20) { + BufferedSource.method5892(WorldMapLabelSize.archive10, Client.archive8, true, Client.gameState == 11 ? 4 : 0); + } else if (var0 == 11) { + BufferedSource.method5892(WorldMapLabelSize.archive10, Client.archive8, false, 4); + } else if (Login.field1179) { + Login.titleboxSprite = null; + VarpDefinition.titlebuttonSprite = null; + Login.runesSprite = null; + GrandExchangeOfferWorldComparator.leftTitleSprite = null; + NPC.rightTitleSprite = null; + TileItem.logoSprite = null; + Login.title_muteSprite = null; + Login.options_buttons_0Sprite = null; + Decimator.options_buttons_2Sprite = null; + WorldMapID.worldSelectBackSprites = null; + SecureRandomCallable.worldSelectFlagSprites = null; + class225.worldSelectArrows = null; + FriendSystem.worldSelectStars = null; + class30.field264 = null; + Ignored.loginScreenRunesAnimation.method1720(); + class40.method729(2); + if (NetCache.NetCache_socket != null) { + try { + Buffer var1 = new Buffer(4); + var1.writeByte(2); + var1.writeMedium(0); + NetCache.NetCache_socket.write(var1.array, 0, 4); + } catch (IOException var4) { + try { + NetCache.NetCache_socket.close(); + } catch (Exception var3) { + } + + ++NetCache.NetCache_ioExceptions; + NetCache.NetCache_socket = null; + } + } + + Login.field1179 = false; + } + } else { + BufferedSource.method5892(WorldMapLabelSize.archive10, Client.archive8, true, 0); + } + + Client.gameState = var0; } }