From f37b6f4a8f34033e13edb83ca24c468e1ecbd429 Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Thu, 18 Jul 2019 15:51:34 +0200 Subject: [PATCH] Missed classes --- .../src/main/java/AbstractWorldMapData.java | 398 +++++++++++ .../src/main/java/VorbisCodebook.java | 234 +++++++ .../src/main/java/VorbisFloor.java | 322 +++++++++ .../src/main/java/VorbisMapping.java | 43 ++ .../src/main/java/VorbisResidue.java | 131 ++++ .../src/main/java/VorbisSample.java | 647 ++++++++++++++++++ .../src/main/java/WorldMapData_0.java | 87 +++ .../src/main/java/WorldMapData_1.java | 178 +++++ .../src/main/java/WorldMapID.java | 273 ++++++++ .../src/main/java/WorldMapIcon_0.java | 475 +++++++++++++ .../src/main/java/WorldMapIcon_1.java | 257 +++++++ .../src/main/java/WorldMapSprite.java | 137 ++++ runescape-client/src/main/java/class146.java | 7 + runescape-client/src/main/java/class162.java | 48 ++ runescape-client/src/main/java/class167.java | 48 ++ runescape-client/src/main/java/class169.java | 77 +++ runescape-client/src/main/java/class173.java | 51 ++ runescape-client/src/main/java/class181.java | 5 + runescape-client/src/main/java/class185.java | 159 +++++ runescape-client/src/main/java/class186.java | 48 ++ runescape-client/src/main/java/class188.java | 307 +++++++++ runescape-client/src/main/java/class189.java | 358 ++++++++++ runescape-client/src/main/java/class191.java | 64 ++ runescape-client/src/main/java/class195.java | 62 ++ runescape-client/src/main/java/class208.java | 186 +++++ runescape-client/src/main/java/class215.java | 86 +++ runescape-client/src/main/java/class216.java | 16 + runescape-client/src/main/java/class218.java | 44 ++ runescape-client/src/main/java/class219.java | 74 ++ runescape-client/src/main/java/class222.java | 16 + runescape-client/src/main/java/class225.java | 79 +++ runescape-client/src/main/java/class247.java | 15 + runescape-client/src/main/java/class267.java | 18 + runescape-client/src/main/java/class268.java | 32 + runescape-client/src/main/java/class269.java | 11 + runescape-client/src/main/java/class287.java | 23 + runescape-client/src/main/java/class288.java | 20 + runescape-client/src/main/java/class289.java | 50 ++ runescape-client/src/main/java/class290.java | 89 +++ runescape-client/src/main/java/class291.java | 197 ++++++ runescape-client/src/main/java/class294.java | 78 +++ runescape-client/src/main/java/class301.java | 70 ++ runescape-client/src/main/java/class323.java | 55 ++ runescape-client/src/main/java/class326.java | 70 ++ runescape-client/src/main/java/class327.java | 33 + runescape-client/src/main/java/class339.java | 14 + runescape-client/src/main/java/class42.java | 186 +++++ runescape-client/src/main/java/class43.java | 38 + runescape-client/src/main/java/class47.java | 16 + runescape-client/src/main/java/class49.java | 72 ++ runescape-client/src/main/java/class51.java | 39 ++ runescape-client/src/main/java/class81.java | 84 +++ runescape-client/src/main/java/class96.java | 440 ++++++++++++ runescape-client/src/main/java/class99.java | 12 + 54 files changed, 6579 insertions(+) create mode 100644 runescape-client/src/main/java/AbstractWorldMapData.java create mode 100644 runescape-client/src/main/java/VorbisCodebook.java create mode 100644 runescape-client/src/main/java/VorbisFloor.java create mode 100644 runescape-client/src/main/java/VorbisMapping.java create mode 100644 runescape-client/src/main/java/VorbisResidue.java create mode 100644 runescape-client/src/main/java/VorbisSample.java create mode 100644 runescape-client/src/main/java/WorldMapData_0.java create mode 100644 runescape-client/src/main/java/WorldMapData_1.java create mode 100644 runescape-client/src/main/java/WorldMapID.java create mode 100644 runescape-client/src/main/java/WorldMapIcon_0.java create mode 100644 runescape-client/src/main/java/WorldMapIcon_1.java create mode 100644 runescape-client/src/main/java/WorldMapSprite.java create mode 100644 runescape-client/src/main/java/class146.java create mode 100644 runescape-client/src/main/java/class162.java create mode 100644 runescape-client/src/main/java/class167.java create mode 100644 runescape-client/src/main/java/class169.java create mode 100644 runescape-client/src/main/java/class173.java create mode 100644 runescape-client/src/main/java/class181.java create mode 100644 runescape-client/src/main/java/class185.java create mode 100644 runescape-client/src/main/java/class186.java create mode 100644 runescape-client/src/main/java/class188.java create mode 100644 runescape-client/src/main/java/class189.java create mode 100644 runescape-client/src/main/java/class191.java create mode 100644 runescape-client/src/main/java/class195.java create mode 100644 runescape-client/src/main/java/class208.java create mode 100644 runescape-client/src/main/java/class215.java create mode 100644 runescape-client/src/main/java/class216.java create mode 100644 runescape-client/src/main/java/class218.java create mode 100644 runescape-client/src/main/java/class219.java create mode 100644 runescape-client/src/main/java/class222.java create mode 100644 runescape-client/src/main/java/class225.java create mode 100644 runescape-client/src/main/java/class247.java create mode 100644 runescape-client/src/main/java/class267.java create mode 100644 runescape-client/src/main/java/class268.java create mode 100644 runescape-client/src/main/java/class269.java create mode 100644 runescape-client/src/main/java/class287.java create mode 100644 runescape-client/src/main/java/class288.java create mode 100644 runescape-client/src/main/java/class289.java create mode 100644 runescape-client/src/main/java/class290.java create mode 100644 runescape-client/src/main/java/class291.java create mode 100644 runescape-client/src/main/java/class294.java create mode 100644 runescape-client/src/main/java/class301.java create mode 100644 runescape-client/src/main/java/class323.java create mode 100644 runescape-client/src/main/java/class326.java create mode 100644 runescape-client/src/main/java/class327.java create mode 100644 runescape-client/src/main/java/class339.java create mode 100644 runescape-client/src/main/java/class42.java create mode 100644 runescape-client/src/main/java/class43.java create mode 100644 runescape-client/src/main/java/class47.java create mode 100644 runescape-client/src/main/java/class49.java create mode 100644 runescape-client/src/main/java/class51.java create mode 100644 runescape-client/src/main/java/class81.java create mode 100644 runescape-client/src/main/java/class96.java create mode 100644 runescape-client/src/main/java/class99.java diff --git a/runescape-client/src/main/java/AbstractWorldMapData.java b/runescape-client/src/main/java/AbstractWorldMapData.java new file mode 100644 index 0000000000..64ca185bdc --- /dev/null +++ b/runescape-client/src/main/java/AbstractWorldMapData.java @@ -0,0 +1,398 @@ +import java.util.LinkedList; +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("o") +@Implements("AbstractWorldMapData") +public abstract class AbstractWorldMapData { + @ObfuscatedName("el") + @ObfuscatedGetter( + intValue = -1739932713 + ) + static int field155; + @ObfuscatedName("q") + @ObfuscatedGetter( + intValue = -680308736 + ) + @Export("regionXLow") + int regionXLow; + @ObfuscatedName("w") + @ObfuscatedGetter( + intValue = -1014181888 + ) + @Export("regionYLow") + int regionYLow; + @ObfuscatedName("e") + @ObfuscatedGetter( + intValue = 421939525 + ) + @Export("regionX") + int regionX; + @ObfuscatedName("p") + @ObfuscatedGetter( + intValue = 1418471835 + ) + @Export("regionY") + int regionY; + @ObfuscatedName("k") + @ObfuscatedGetter( + intValue = -1513175747 + ) + @Export("minPlane") + int minPlane; + @ObfuscatedName("l") + @ObfuscatedGetter( + intValue = -402229247 + ) + @Export("planes") + int planes; + @ObfuscatedName("b") + @ObfuscatedGetter( + intValue = -376642433 + ) + @Export("groupId") + int groupId; + @ObfuscatedName("i") + @ObfuscatedGetter( + intValue = 1618366577 + ) + @Export("fileId") + int fileId; + @ObfuscatedName("c") + @Export("floorUnderlayIds") + short[][][] floorUnderlayIds; + @ObfuscatedName("f") + @Export("floorOverlayIds") + short[][][] floorOverlayIds; + @ObfuscatedName("m") + byte[][][] field165; + @ObfuscatedName("u") + byte[][][] field166; + @ObfuscatedName("x") + @ObfuscatedSignature( + signature = "[[[[Lz;" + ) + @Export("decorations") + WorldMapDecoration[][][][] decorations; + @ObfuscatedName("r") + boolean field168; + @ObfuscatedName("v") + boolean field169; + + AbstractWorldMapData() { + this.groupId = -1; + this.fileId = -1; + new LinkedList(); + this.field168 = false; + this.field169 = false; + } + + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "(Lkf;I)V", + garbageValue = "-1951934103" + ) + @Export("readGeography") + abstract void readGeography(Buffer var1); + + @ObfuscatedName("c") + @ObfuscatedSignature( + signature = "(I)Z", + garbageValue = "-613524686" + ) + @Export("isFullyLoaded") + boolean isFullyLoaded() { + return this.field168 && this.field169; + } + + @ObfuscatedName("u") + @ObfuscatedSignature( + signature = "(Lhp;I)V", + garbageValue = "1963301304" + ) + @Export("loadGeography") + void loadGeography(AbstractArchive var1) { + if (!this.isFullyLoaded()) { + byte[] var2 = var1.takeFile(this.groupId, this.fileId); + if (var2 != null) { + this.readGeography(new Buffer(var2)); + this.field168 = true; + this.field169 = true; + } + + } + } + + @ObfuscatedName("x") + @ObfuscatedSignature( + signature = "(I)V", + garbageValue = "1146093408" + ) + @Export("reset") + void reset() { + this.floorUnderlayIds = null; + this.floorOverlayIds = null; + this.field165 = null; + this.field166 = null; + this.decorations = null; + this.field168 = false; + this.field169 = false; + } + + @ObfuscatedName("r") + @ObfuscatedSignature( + signature = "(IILkf;I)V", + garbageValue = "-1521348339" + ) + @Export("readTile") + void readTile(int var1, int var2, Buffer var3) { + int var4 = var3.readUnsignedByte(); + if (var4 != 0) { + if ((var4 & 1) != 0) { + this.method258(var1, var2, var3, var4); + } else { + this.method253(var1, var2, var3, var4); + } + + } + } + + @ObfuscatedName("v") + @ObfuscatedSignature( + signature = "(IILkf;IB)V", + garbageValue = "0" + ) + void method258(int var1, int var2, Buffer var3, int var4) { + boolean var5 = (var4 & 2) != 0; + if (var5) { + this.floorOverlayIds[0][var1][var2] = (short)var3.readUnsignedByte(); + } + + this.floorUnderlayIds[0][var1][var2] = (short)var3.readUnsignedByte(); + } + + @ObfuscatedName("y") + @ObfuscatedSignature( + signature = "(IILkf;IB)V", + garbageValue = "44" + ) + void method253(int var1, int var2, Buffer var3, int var4) { + int var5 = ((var4 & 24) >> 3) + 1; + boolean var6 = (var4 & 2) != 0; + boolean var7 = (var4 & 4) != 0; + this.floorUnderlayIds[0][var1][var2] = (short)var3.readUnsignedByte(); + int var8; + int var9; + int var11; + if (var6) { + var8 = var3.readUnsignedByte(); + + for (var9 = 0; var9 < var8; ++var9) { + int var10 = var3.readUnsignedByte(); + if (var10 != 0) { + this.floorOverlayIds[var9][var1][var2] = (short)var10; + var11 = var3.readUnsignedByte(); + this.field165[var9][var1][var2] = (byte)(var11 >> 2); + this.field166[var9][var1][var2] = (byte)(var11 & 3); + } + } + } + + if (var7) { + for (var8 = 0; var8 < var5; ++var8) { + var9 = var3.readUnsignedByte(); + if (var9 != 0) { + WorldMapDecoration[] var14 = this.decorations[var8][var1][var2] = new WorldMapDecoration[var9]; + + for (var11 = 0; var11 < var9; ++var11) { + int var12 = var3.method5511(); + int var13 = var3.readUnsignedByte(); + var14[var11] = new WorldMapDecoration(var12, var13 >> 2, var13 & 3); + } + } + } + } + + } + + @ObfuscatedName("g") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "-121424149" + ) + @Export("getRegionX") + int getRegionX() { + return this.regionX; + } + + @ObfuscatedName("a") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "-1967751745" + ) + @Export("getRegionY") + int getRegionY() { + return this.regionY; + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(IIB)I", + garbageValue = "-108" + ) + static int method274(int var0, int var1) { + ItemContainer var2 = (ItemContainer)ItemContainer.itemContainers.get((long)var0); + if (var2 == null) { + return -1; + } else { + return var1 >= 0 && var1 < var2.ids.length ? var2.ids[var1] : -1; + } + } + + @ObfuscatedName("gj") + @ObfuscatedSignature( + signature = "(IIIII)V", + garbageValue = "-2108015148" + ) + static final void method273(int var0, int var1, int var2, int var3) { + ObjectSound.method1826(); + } + + @ObfuscatedName("hp") + @ObfuscatedSignature( + signature = "(Lij;IIII)V", + garbageValue = "566580282" + ) + @Export("addNpcToMenu") + static final void addNpcToMenu(NPCDefinition var0, int var1, int var2, int var3) { + if (Client.menuOptionsCount < 400) { + if (var0.transforms != null) { + var0 = var0.transform(); + } + + if (var0 != null) { + if (var0.isInteractable) { + if (!var0.isFollower || Client.followerIndex == var1) { + String var4 = var0.name; + int var7; + int var8; + if (var0.combatLevel != 0) { + var7 = var0.combatLevel; + var8 = Client.localPlayer.combatLevel; + int var9 = var8 - var7; + String var6; + if (var9 < -9) { + var6 = ClientPreferences.colorStartTag(16711680); + } else if (var9 < -6) { + var6 = ClientPreferences.colorStartTag(16723968); + } else if (var9 < -3) { + var6 = ClientPreferences.colorStartTag(16740352); + } else if (var9 < 0) { + var6 = ClientPreferences.colorStartTag(16756736); + } else if (var9 > 9) { + var6 = ClientPreferences.colorStartTag(65280); + } else if (var9 > 6) { + var6 = ClientPreferences.colorStartTag(4259584); + } else if (var9 > 3) { + var6 = ClientPreferences.colorStartTag(8453888); + } else if (var9 > 0) { + var6 = ClientPreferences.colorStartTag(12648192); + } else { + var6 = ClientPreferences.colorStartTag(16776960); + } + + var4 = var4 + var6 + " " + " (" + "level-" + var0.combatLevel + ")"; + } + + if (var0.isFollower && Client.followerOpsLowPriority) { + class188.insertMenuItemNoShift("Examine", ClientPreferences.colorStartTag(16776960) + var4, 1003, var1, var2, var3); + } + + if (Client.isItemSelected == 1) { + class188.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ClientPreferences.colorStartTag(16776960) + 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); + } + } else { + int var10 = var0.isFollower && Client.followerOpsLowPriority ? 2000 : 0; + String[] var11 = var0.actions; + if (var11 != null) { + for (var7 = 4; var7 >= 0; --var7) { + if (var11[var7] != null && !var11[var7].equalsIgnoreCase("Attack")) { + var8 = 0; + if (var7 == 0) { + var8 = var10 + 9; + } + + if (var7 == 1) { + var8 = var10 + 10; + } + + if (var7 == 2) { + var8 = var10 + 11; + } + + if (var7 == 3) { + var8 = var10 + 12; + } + + if (var7 == 4) { + var8 = var10 + 13; + } + + class188.insertMenuItemNoShift(var11[var7], ClientPreferences.colorStartTag(16776960) + var4, var8, var1, var2, var3); + } + } + } + + if (var11 != null) { + for (var7 = 4; var7 >= 0; --var7) { + if (var11[var7] != null && var11[var7].equalsIgnoreCase("Attack")) { + short var12 = 0; + if (AttackOption.AttackOption_hidden != Client.npcAttackOption) { + if (Client.npcAttackOption == AttackOption.AttackOption_alwaysRightClick || AttackOption.AttackOption_dependsOnCombatLevels == Client.npcAttackOption && var0.combatLevel > Client.localPlayer.combatLevel) { + var12 = 2000; + } + + var8 = 0; + if (var7 == 0) { + var8 = var12 + 9; + } + + if (var7 == 1) { + var8 = var12 + 10; + } + + if (var7 == 2) { + var8 = var12 + 11; + } + + if (var7 == 3) { + var8 = var12 + 12; + } + + if (var7 == 4) { + var8 = var12 + 13; + } + + class188.insertMenuItemNoShift(var11[var7], ClientPreferences.colorStartTag(16776960) + var4, var8, var1, var2, var3); + } + } + } + } + + if (!var0.isFollower || !Client.followerOpsLowPriority) { + class188.insertMenuItemNoShift("Examine", ClientPreferences.colorStartTag(16776960) + var4, 1003, var1, var2, var3); + } + } + + } + } + } + } + } +} diff --git a/runescape-client/src/main/java/VorbisCodebook.java b/runescape-client/src/main/java/VorbisCodebook.java new file mode 100644 index 0000000000..e3e1a4ef0f --- /dev/null +++ b/runescape-client/src/main/java/VorbisCodebook.java @@ -0,0 +1,234 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("ck") +@Implements("VorbisCodebook") +public class VorbisCodebook { + @ObfuscatedName("q") + @Export("dimensions") + int dimensions; + @ObfuscatedName("w") + @Export("entries") + int entries; + @ObfuscatedName("e") + @Export("lengthMap") + int[] lengthMap; + @ObfuscatedName("p") + int[] field1346; + @ObfuscatedName("k") + float[][] field1345; + @ObfuscatedName("l") + @Export("keys") + int[] keys; + + VorbisCodebook() { + VorbisSample.readBits(24); + this.dimensions = VorbisSample.readBits(16); + this.entries = VorbisSample.readBits(24); + this.lengthMap = new int[this.entries]; + boolean var1 = VorbisSample.readBit() != 0; + int var2; + int var3; + int var5; + if (var1) { + var2 = 0; + + for (var3 = VorbisSample.readBits(5) + 1; var2 < this.entries; ++var3) { + int var4 = VorbisSample.readBits(UrlRequest.iLog(this.entries - var2)); + + for (var5 = 0; var5 < var4; ++var5) { + this.lengthMap[var2++] = var3; + } + } + } else { + boolean var14 = VorbisSample.readBit() != 0; + + for (var3 = 0; var3 < this.entries; ++var3) { + if (var14 && VorbisSample.readBit() == 0) { + this.lengthMap[var3] = 0; + } else { + this.lengthMap[var3] = VorbisSample.readBits(5) + 1; + } + } + } + + this.method2317(); + var2 = VorbisSample.readBits(4); + if (var2 > 0) { + float var15 = VorbisSample.float32Unpack(VorbisSample.readBits(32)); + float var16 = VorbisSample.float32Unpack(VorbisSample.readBits(32)); + var5 = VorbisSample.readBits(4) + 1; + boolean var6 = VorbisSample.readBit() != 0; + int var7; + if (var2 == 1) { + var7 = mapType1QuantValues(this.entries, this.dimensions); + } else { + var7 = this.entries * this.dimensions; + } + + this.field1346 = new int[var7]; + + int var8; + for (var8 = 0; var8 < var7; ++var8) { + this.field1346[var8] = VorbisSample.readBits(var5); + } + + this.field1345 = new float[this.entries][this.dimensions]; + float var9; + int var10; + int var11; + if (var2 == 1) { + for (var8 = 0; var8 < this.entries; ++var8) { + var9 = 0.0F; + var10 = 1; + + for (var11 = 0; var11 < this.dimensions; ++var11) { + int var12 = var8 / var10 % var7; + float var13 = (float)this.field1346[var12] * var16 + var15 + var9; + this.field1345[var8][var11] = var13; + if (var6) { + var9 = var13; + } + + var10 *= var7; + } + } + } else { + for (var8 = 0; var8 < this.entries; ++var8) { + var9 = 0.0F; + var10 = var8 * this.dimensions; + + for (var11 = 0; var11 < this.dimensions; ++var11) { + float var17 = (float)this.field1346[var10] * var16 + var15 + var9; + this.field1345[var8][var11] = var17; + if (var6) { + var9 = var17; + } + + ++var10; + } + } + } + } + + } + + @ObfuscatedName("w") + void method2317() { + int[] var1 = new int[this.entries]; + int[] var2 = new int[33]; + + int var3; + int var4; + int var5; + int var6; + int var7; + int var8; + int var10; + for (var3 = 0; var3 < this.entries; ++var3) { + var4 = this.lengthMap[var3]; + if (var4 != 0) { + var5 = 1 << 32 - var4; + var6 = var2[var4]; + var1[var3] = var6; + int var12; + if ((var6 & var5) != 0) { + var7 = var2[var4 - 1]; + } else { + var7 = var6 | var5; + + for (var8 = var4 - 1; var8 >= 1; --var8) { + var12 = var2[var8]; + if (var12 != var6) { + break; + } + + var10 = 1 << 32 - var8; + if ((var12 & var10) != 0) { + var2[var8] = var2[var8 - 1]; + break; + } + + var2[var8] = var12 | var10; + } + } + + var2[var4] = var7; + + for (var8 = var4 + 1; var8 <= 32; ++var8) { + var12 = var2[var8]; + if (var12 == var6) { + var2[var8] = var7; + } + } + } + } + + this.keys = new int[8]; + int var11 = 0; + + for (var3 = 0; var3 < this.entries; ++var3) { + var4 = this.lengthMap[var3]; + if (var4 != 0) { + var5 = var1[var3]; + var6 = 0; + + for (var7 = 0; var7 < var4; ++var7) { + var8 = Integer.MIN_VALUE >>> var7; + if ((var5 & var8) != 0) { + if (this.keys[var6] == 0) { + this.keys[var6] = var11; + } + + var6 = this.keys[var6]; + } else { + ++var6; + } + + if (var6 >= this.keys.length) { + int[] var9 = new int[this.keys.length * 2]; + + for (var10 = 0; var10 < this.keys.length; ++var10) { + var9[var10] = this.keys[var10]; + } + + this.keys = var9; + } + + var8 >>>= 1; + } + + this.keys[var6] = ~var3; + if (var6 >= var11) { + var11 = var6 + 1; + } + } + } + + } + + @ObfuscatedName("e") + int method2325() { + int var1; + for (var1 = 0; this.keys[var1] >= 0; var1 = VorbisSample.readBit() != 0 ? this.keys[var1] : var1 + 1) { + } + + return ~this.keys[var1]; + } + + @ObfuscatedName("p") + float[] method2318() { + return this.field1345[this.method2325()]; + } + + @ObfuscatedName("q") + @Export("mapType1QuantValues") + static int mapType1QuantValues(int var0, int var1) { + int var2; + for (var2 = (int)Math.pow((double)var0, 1.0D / (double)var1) + 1; MouseHandler.method1009(var2, var1) > var0; --var2) { + } + + return var2; + } +} diff --git a/runescape-client/src/main/java/VorbisFloor.java b/runescape-client/src/main/java/VorbisFloor.java new file mode 100644 index 0000000000..805f397d54 --- /dev/null +++ b/runescape-client/src/main/java/VorbisFloor.java @@ -0,0 +1,322 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("dr") +@Implements("VorbisFloor") +public class VorbisFloor { + @ObfuscatedName("q") + static final int[] field1402; + @ObfuscatedName("w") + @Export("VorbisFloor_decibelStatics") + static final float[] VorbisFloor_decibelStatics; + @ObfuscatedName("f") + static int[] field1403; + @ObfuscatedName("m") + static int[] field1404; + @ObfuscatedName("u") + static boolean[] field1405; + @ObfuscatedName("e") + int[] field1396; + @ObfuscatedName("p") + @Export("multiplier") + int multiplier; + @ObfuscatedName("k") + @Export("partitionClassList") + int[] partitionClassList; + @ObfuscatedName("l") + @Export("classDimensions") + int[] classDimensions; + @ObfuscatedName("b") + @Export("classSubClasses") + int[] classSubClasses; + @ObfuscatedName("i") + @Export("classMasterbooks") + int[] classMasterbooks; + @ObfuscatedName("c") + @Export("subclassBooks") + int[][] subclassBooks; + + static { + field1402 = new int[]{256, 128, 86, 64}; + VorbisFloor_decibelStatics = new float[]{1.0649863E-7F, 1.1341951E-7F, 1.2079015E-7F, 1.2863978E-7F, 1.369995E-7F, 1.459025E-7F, 1.5538409E-7F, 1.6548181E-7F, 1.7623574E-7F, 1.8768856E-7F, 1.998856E-7F, 2.128753E-7F, 2.2670913E-7F, 2.4144197E-7F, 2.5713223E-7F, 2.7384212E-7F, 2.9163792E-7F, 3.1059022E-7F, 3.307741E-7F, 3.5226967E-7F, 3.7516213E-7F, 3.995423E-7F, 4.255068E-7F, 4.5315863E-7F, 4.8260745E-7F, 5.1397E-7F, 5.4737063E-7F, 5.829419E-7F, 6.208247E-7F, 6.611694E-7F, 7.041359E-7F, 7.4989464E-7F, 7.98627E-7F, 8.505263E-7F, 9.057983E-7F, 9.646621E-7F, 1.0273513E-6F, 1.0941144E-6F, 1.1652161E-6F, 1.2409384E-6F, 1.3215816E-6F, 1.4074654E-6F, 1.4989305E-6F, 1.5963394E-6F, 1.7000785E-6F, 1.8105592E-6F, 1.9282195E-6F, 2.053526E-6F, 2.1869757E-6F, 2.3290977E-6F, 2.4804558E-6F, 2.6416496E-6F, 2.813319E-6F, 2.9961443E-6F, 3.1908505E-6F, 3.39821E-6F, 3.619045E-6F, 3.8542307E-6F, 4.1047006E-6F, 4.371447E-6F, 4.6555283E-6F, 4.958071E-6F, 5.280274E-6F, 5.623416E-6F, 5.988857E-6F, 6.3780467E-6F, 6.7925284E-6F, 7.2339453E-6F, 7.704048E-6F, 8.2047E-6F, 8.737888E-6F, 9.305725E-6F, 9.910464E-6F, 1.0554501E-5F, 1.1240392E-5F, 1.1970856E-5F, 1.2748789E-5F, 1.3577278E-5F, 1.4459606E-5F, 1.5399271E-5F, 1.6400005E-5F, 1.7465769E-5F, 1.8600793E-5F, 1.9809577E-5F, 2.1096914E-5F, 2.2467912E-5F, 2.3928002E-5F, 2.5482977E-5F, 2.7139005E-5F, 2.890265E-5F, 3.078091E-5F, 3.2781227E-5F, 3.4911533E-5F, 3.718028E-5F, 3.9596467E-5F, 4.2169668E-5F, 4.491009E-5F, 4.7828602E-5F, 5.0936775E-5F, 5.424693E-5F, 5.7772202E-5F, 6.152657E-5F, 6.552491E-5F, 6.9783084E-5F, 7.4317984E-5F, 7.914758E-5F, 8.429104E-5F, 8.976875E-5F, 9.560242E-5F, 1.0181521E-4F, 1.0843174E-4F, 1.1547824E-4F, 1.2298267E-4F, 1.3097477E-4F, 1.3948625E-4F, 1.4855085E-4F, 1.5820454E-4F, 1.6848555E-4F, 1.7943469E-4F, 1.9109536E-4F, 2.0351382E-4F, 2.167393E-4F, 2.3082423E-4F, 2.4582449E-4F, 2.6179955E-4F, 2.7881275E-4F, 2.9693157E-4F, 3.1622787E-4F, 3.3677815E-4F, 3.5866388E-4F, 3.8197188E-4F, 4.0679457E-4F, 4.3323037E-4F, 4.613841E-4F, 4.913675E-4F, 5.2329927E-4F, 5.573062E-4F, 5.935231E-4F, 6.320936E-4F, 6.731706E-4F, 7.16917E-4F, 7.635063E-4F, 8.1312325E-4F, 8.6596457E-4F, 9.2223985E-4F, 9.821722E-4F, 0.0010459992F, 0.0011139743F, 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, 0.0019632196F, 0.0020908006F, 0.0022266726F, 0.0023713743F, 0.0025254795F, 0.0026895993F, 0.0028643848F, 0.0030505287F, 0.003248769F, 0.0034598925F, 0.0036847359F, 0.0039241905F, 0.0041792067F, 0.004450795F, 0.004740033F, 0.005048067F, 0.0053761187F, 0.005725489F, 0.0060975635F, 0.0064938175F, 0.0069158226F, 0.0073652514F, 0.007843887F, 0.008353627F, 0.008896492F, 0.009474637F, 0.010090352F, 0.01074608F, 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, 0.014722068F, 0.015678791F, 0.016697686F, 0.017782796F, 0.018938422F, 0.020169148F, 0.021479854F, 0.022875736F, 0.02436233F, 0.025945531F, 0.027631618F, 0.029427277F, 0.031339627F, 0.03337625F, 0.035545226F, 0.037855156F, 0.0403152F, 0.042935107F, 0.045725275F, 0.048696756F, 0.05186135F, 0.05523159F, 0.05882085F, 0.062643364F, 0.06671428F, 0.07104975F, 0.075666964F, 0.08058423F, 0.08582105F, 0.09139818F, 0.097337745F, 0.1036633F, 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, 0.14201812F, 0.15124726F, 0.16107617F, 0.1715438F, 0.18269168F, 0.19456401F, 0.20720787F, 0.22067343F, 0.23501402F, 0.25028655F, 0.26655158F, 0.28387362F, 0.3023213F, 0.32196787F, 0.34289113F, 0.36517414F, 0.3889052F, 0.41417846F, 0.44109413F, 0.4697589F, 0.50028646F, 0.53279793F, 0.5674221F, 0.6042964F, 0.64356697F, 0.6853896F, 0.72993004F, 0.777365F, 0.8278826F, 0.88168305F, 0.9389798F, 1.0F}; + } + + VorbisFloor() { + int var1 = VorbisSample.readBits(16); + if (var1 != 1) { + throw new RuntimeException(); + } else { + int var2 = VorbisSample.readBits(5); + int var3 = 0; + this.partitionClassList = new int[var2]; + + int var4; + int var5; + for (var4 = 0; var4 < var2; ++var4) { + var5 = VorbisSample.readBits(4); + this.partitionClassList[var4] = var5; + if (var5 >= var3) { + var3 = var5 + 1; + } + } + + this.classDimensions = new int[var3]; + this.classSubClasses = new int[var3]; + this.classMasterbooks = new int[var3]; + this.subclassBooks = new int[var3][]; + + int var7; + for (var4 = 0; var4 < var3; ++var4) { + this.classDimensions[var4] = VorbisSample.readBits(3) + 1; + var5 = this.classSubClasses[var4] = VorbisSample.readBits(2); + if (var5 != 0) { + this.classMasterbooks[var4] = VorbisSample.readBits(8); + } + + var5 = 1 << var5; + int[] var6 = new int[var5]; + this.subclassBooks[var4] = var6; + + for (var7 = 0; var7 < var5; ++var7) { + var6[var7] = VorbisSample.readBits(8) - 1; + } + } + + this.multiplier = VorbisSample.readBits(2) + 1; + var4 = VorbisSample.readBits(4); + var5 = 2; + + int var9; + for (var9 = 0; var9 < var2; ++var9) { + var5 += this.classDimensions[this.partitionClassList[var9]]; + } + + this.field1396 = new int[var5]; + this.field1396[0] = 0; + this.field1396[1] = 1 << var4; + var5 = 2; + + for (var9 = 0; var9 < var2; ++var9) { + var7 = this.partitionClassList[var9]; + + for (int var8 = 0; var8 < this.classDimensions[var7]; ++var8) { + this.field1396[var5++] = VorbisSample.readBits(var4); + } + } + + if (field1403 == null || field1403.length < var5) { + field1403 = new int[var5]; + field1404 = new int[var5]; + field1405 = new boolean[var5]; + } + + } + } + + @ObfuscatedName("e") + int method2379(int var1, int var2, int var3, int var4, int var5) { + int var6 = var4 - var2; + int var7 = var3 - var1; + int var8 = var6 < 0 ? -var6 : var6; + int var9 = (var5 - var1) * var8; + int var10 = var9 / var7; + return var6 < 0 ? var2 - var10 : var10 + var2; + } + + @ObfuscatedName("p") + void method2380(int var1, int var2, int var3, int var4, float[] var5, int var6) { + int var7 = var4 - var2; + int var8 = var3 - var1; + int var9 = var7 < 0 ? -var7 : var7; + int var10 = var7 / var8; + int var11 = var2; + int var12 = 0; + int var13 = var7 < 0 ? var10 - 1 : var10 + 1; + var9 -= (var10 < 0 ? -var10 : var10) * var8; + var5[var1] *= VorbisFloor_decibelStatics[var2]; + if (var3 > var6) { + var3 = var6; + } + + for (int var14 = var1 + 1; var14 < var3; ++var14) { + var12 += var9; + if (var12 >= var8) { + var12 -= var8; + var11 += var13; + } else { + var11 += var10; + } + + var5[var14] *= VorbisFloor_decibelStatics[var11]; + } + + } + + @ObfuscatedName("k") + @Export("VarbisFloor_sort") + void VarbisFloor_sort(int var1, int var2) { + if (var1 < var2) { + int var3 = var1; + int var4 = field1403[var1]; + int var5 = field1404[var1]; + boolean var6 = field1405[var1]; + + for (int var7 = var1 + 1; var7 <= var2; ++var7) { + int var8 = field1403[var7]; + if (var8 < var4) { + field1403[var3] = var8; + field1404[var3] = field1404[var7]; + field1405[var3] = field1405[var7]; + ++var3; + field1403[var7] = field1403[var3]; + field1404[var7] = field1404[var3]; + field1405[var7] = field1405[var3]; + } + } + + field1403[var3] = var4; + field1404[var3] = var5; + field1405[var3] = var6; + this.VarbisFloor_sort(var1, var3 - 1); + this.VarbisFloor_sort(var3 + 1, var2); + } + } + + @ObfuscatedName("l") + @Export("readSubmapFloor") + boolean readSubmapFloor() { + boolean var1 = VorbisSample.readBit() != 0; + if (!var1) { + return false; + } else { + int var2 = this.field1396.length; + + int var3; + for (var3 = 0; var3 < var2; ++var3) { + field1403[var3] = this.field1396[var3]; + } + + var3 = field1402[this.multiplier - 1]; + int var4 = UrlRequest.iLog(var3 - 1); + field1404[0] = VorbisSample.readBits(var4); + field1404[1] = VorbisSample.readBits(var4); + int var5 = 2; + + for (int var6 = 0; var6 < this.partitionClassList.length; ++var6) { + int var7 = this.partitionClassList[var6]; + int var8 = this.classDimensions[var7]; + int var9 = this.classSubClasses[var7]; + int var10 = (1 << var9) - 1; + int var11 = 0; + if (var9 > 0) { + var11 = VorbisSample.VorbisSample_codebooks[this.classMasterbooks[var7]].method2325(); + } + + for (int var12 = 0; var12 < var8; ++var12) { + int var13 = this.subclassBooks[var7][var11 & var10]; + var11 >>>= var9; + field1404[var5++] = var13 >= 0 ? VorbisSample.VorbisSample_codebooks[var13].method2325() : 0; + } + } + + return true; + } + } + + @ObfuscatedName("b") + void method2389(float[] var1, int var2) { + int var3 = this.field1396.length; + int var4 = field1402[this.multiplier - 1]; + boolean[] var5 = field1405; + field1405[1] = true; + var5[0] = true; + + int var6; + int var7; + int var8; + int var9; + int var10; + for (var6 = 2; var6 < var3; ++var6) { + var7 = method2383(field1403, var6); + var8 = method2402(field1403, var6); + var9 = this.method2379(field1403[var7], field1404[var7], field1403[var8], field1404[var8], field1403[var6]); + var10 = field1404[var6]; + int var11 = var4 - var9; + int var13 = (var11 < var9 ? var11 : var9) << 1; + if (var10 != 0) { + boolean[] var14 = field1405; + field1405[var8] = true; + var14[var7] = true; + field1405[var6] = true; + if (var10 >= var13) { + field1404[var6] = var11 > var9 ? var9 + (var10 - var9) : var11 + (var9 - var10) - 1; + } else { + field1404[var6] = (var10 & 1) != 0 ? var9 - (var10 + 1) / 2 : var10 / 2 + var9; + } + } else { + field1405[var6] = false; + field1404[var6] = var9; + } + } + + this.VarbisFloor_sort(0, var3 - 1); + var6 = 0; + var7 = field1404[0] * this.multiplier; + + for (var8 = 1; var8 < var3; ++var8) { + if (field1405[var8]) { + var9 = field1403[var8]; + var10 = field1404[var8] * this.multiplier; + this.method2380(var6, var7, var9, var10, var1, var2); + if (var9 >= var2) { + return; + } + + var6 = var9; + var7 = var10; + } + } + + float var16 = VorbisFloor_decibelStatics[var7]; + + for (var9 = var6; var9 < var2; ++var9) { + var1[var9] *= var16; + } + + } + + @ObfuscatedName("q") + static int method2383(int[] var0, int var1) { + int var2 = var0[var1]; + int var3 = -1; + int var4 = Integer.MIN_VALUE; + + for (int var5 = 0; var5 < var1; ++var5) { + int var6 = var0[var5]; + if (var6 < var2 && var6 > var4) { + var3 = var5; + var4 = var6; + } + } + + return var3; + } + + @ObfuscatedName("w") + static int method2402(int[] var0, int var1) { + int var2 = var0[var1]; + int var3 = -1; + int var4 = Integer.MAX_VALUE; + + for (int var5 = 0; var5 < var1; ++var5) { + int var6 = var0[var5]; + if (var6 > var2 && var6 < var4) { + var3 = var5; + var4 = var6; + } + } + + return var3; + } +} diff --git a/runescape-client/src/main/java/VorbisMapping.java b/runescape-client/src/main/java/VorbisMapping.java new file mode 100644 index 0000000000..f15a7c0dc7 --- /dev/null +++ b/runescape-client/src/main/java/VorbisMapping.java @@ -0,0 +1,43 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("dp") +@Implements("VorbisMapping") +public class VorbisMapping { + @ObfuscatedName("q") + @Export("submaps") + int submaps; + @ObfuscatedName("w") + @Export("mappingMux") + int mappingMux; + @ObfuscatedName("e") + @Export("submapFloor") + int[] submapFloor; + @ObfuscatedName("p") + @Export("submapResidue") + int[] submapResidue; + + VorbisMapping() { + VorbisSample.readBits(16); + this.submaps = VorbisSample.readBit() != 0 ? VorbisSample.readBits(4) + 1 : 1; + if (VorbisSample.readBit() != 0) { + VorbisSample.readBits(8); + } + + VorbisSample.readBits(2); + if (this.submaps > 1) { + this.mappingMux = VorbisSample.readBits(4); + } + + this.submapFloor = new int[this.submaps]; + this.submapResidue = new int[this.submaps]; + + for (int var1 = 0; var1 < this.submaps; ++var1) { + VorbisSample.readBits(8); + this.submapFloor[var1] = VorbisSample.readBits(8); + this.submapResidue[var1] = VorbisSample.readBits(8); + } + + } +} diff --git a/runescape-client/src/main/java/VorbisResidue.java b/runescape-client/src/main/java/VorbisResidue.java new file mode 100644 index 0000000000..aad2b87b3f --- /dev/null +++ b/runescape-client/src/main/java/VorbisResidue.java @@ -0,0 +1,131 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("dl") +@Implements("VorbisResidue") +public class VorbisResidue { + @ObfuscatedName("q") + @Export("residueType") + int residueType; + @ObfuscatedName("w") + @Export("begin") + int begin; + @ObfuscatedName("e") + @Export("end") + int end; + @ObfuscatedName("p") + @Export("partitionSize") + int partitionSize; + @ObfuscatedName("k") + @Export("classifications") + int classifications; + @ObfuscatedName("l") + @Export("classbook") + int classbook; + @ObfuscatedName("b") + @Export("cascade") + int[] cascade; + + VorbisResidue() { + this.residueType = VorbisSample.readBits(16); + this.begin = VorbisSample.readBits(24); + this.end = VorbisSample.readBits(24); + this.partitionSize = VorbisSample.readBits(24) + 1; + this.classifications = VorbisSample.readBits(6) + 1; + this.classbook = VorbisSample.readBits(8); + int[] var1 = new int[this.classifications]; + + int var2; + for (var2 = 0; var2 < this.classifications; ++var2) { + int var3 = 0; + int var4 = VorbisSample.readBits(3); + boolean var5 = VorbisSample.readBit() != 0; + if (var5) { + var3 = VorbisSample.readBits(5); + } + + var1[var2] = var3 << 3 | var4; + } + + this.cascade = new int[this.classifications * 8]; + + for (var2 = 0; var2 < this.classifications * 8; ++var2) { + this.cascade[var2] = (var1[var2 >> 3] & 1 << (var2 & 7)) != 0 ? VorbisSample.readBits(8) : -1; + } + + } + + @ObfuscatedName("q") + void method2499(float[] var1, int var2, boolean var3) { + int var4; + for (var4 = 0; var4 < var2; ++var4) { + var1[var4] = 0.0F; + } + + if (!var3) { + var4 = VorbisSample.VorbisSample_codebooks[this.classbook].dimensions; + int var5 = this.end - this.begin; + int var6 = var5 / this.partitionSize; + int[] var7 = new int[var6]; + + for (int var8 = 0; var8 < 8; ++var8) { + int var9 = 0; + + while (var9 < var6) { + int var10; + int var11; + if (var8 == 0) { + var10 = VorbisSample.VorbisSample_codebooks[this.classbook].method2325(); + + for (var11 = var4 - 1; var11 >= 0; --var11) { + if (var9 + var11 < var6) { + var7[var9 + var11] = var10 % this.classifications; + } + + var10 /= this.classifications; + } + } + + for (var10 = 0; var10 < var4; ++var10) { + var11 = var7[var9]; + int var12 = this.cascade[var8 + var11 * 8]; + if (var12 >= 0) { + int var13 = var9 * this.partitionSize + this.begin; + VorbisCodebook var14 = VorbisSample.VorbisSample_codebooks[var12]; + int var15; + if (this.residueType == 0) { + var15 = this.partitionSize / var14.dimensions; + + for (int var16 = 0; var16 < var15; ++var16) { + float[] var17 = var14.method2318(); + + for (int var18 = 0; var18 < var14.dimensions; ++var18) { + var1[var13 + var16 + var18 * var15] += var17[var18]; + } + } + } else { + var15 = 0; + + while (var15 < this.partitionSize) { + float[] var19 = var14.method2318(); + + for (int var20 = 0; var20 < var14.dimensions; ++var20) { + var1[var13 + var15] += var19[var20]; + ++var15; + } + } + } + } + + ++var9; + if (var9 >= var6) { + break; + } + } + } + } + + } + } +} diff --git a/runescape-client/src/main/java/VorbisSample.java b/runescape-client/src/main/java/VorbisSample.java new file mode 100644 index 0000000000..ef3442810d --- /dev/null +++ b/runescape-client/src/main/java/VorbisSample.java @@ -0,0 +1,647 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ci") +@Implements("VorbisSample") +public class VorbisSample extends Node { + @ObfuscatedName("b") + @Export("VorbisSample_bytes") + static byte[] VorbisSample_bytes; + @ObfuscatedName("i") + @Export("VorbisSample_byteOffset") + static int VorbisSample_byteOffset; + @ObfuscatedName("c") + @Export("VorbisSample_bitOffset") + static int VorbisSample_bitOffset; + @ObfuscatedName("f") + @Export("VorbisSample_blockSize0") + static int VorbisSample_blockSize0; + @ObfuscatedName("m") + @Export("VorbisSample_blockSize1") + static int VorbisSample_blockSize1; + @ObfuscatedName("u") + @ObfuscatedSignature( + signature = "[Lck;" + ) + @Export("VorbisSample_codebooks") + static VorbisCodebook[] VorbisSample_codebooks; + @ObfuscatedName("x") + @ObfuscatedSignature( + signature = "[Ldr;" + ) + @Export("VorbisSample_floors") + static VorbisFloor[] VorbisSample_floors; + @ObfuscatedName("r") + @ObfuscatedSignature( + signature = "[Ldl;" + ) + @Export("VorbisSample_residues") + static VorbisResidue[] VorbisSample_residues; + @ObfuscatedName("v") + @ObfuscatedSignature( + signature = "[Ldp;" + ) + @Export("VorbisSample_mappings") + static VorbisMapping[] VorbisSample_mappings; + @ObfuscatedName("y") + @Export("VorbisSample_blockFlags") + static boolean[] VorbisSample_blockFlags; + @ObfuscatedName("g") + @Export("VorbisSample_mapping") + static int[] VorbisSample_mapping; + @ObfuscatedName("a") + static boolean field1372; + @ObfuscatedName("n") + static float[] field1378; + @ObfuscatedName("d") + static float[] field1355; + @ObfuscatedName("s") + static float[] field1379; + @ObfuscatedName("z") + static float[] field1380; + @ObfuscatedName("al") + static float[] field1377; + @ObfuscatedName("av") + static float[] field1373; + @ObfuscatedName("as") + static float[] field1383; + @ObfuscatedName("aw") + static int[] field1384; + @ObfuscatedName("ad") + static int[] field1385; + @ObfuscatedName("q") + byte[][] field1366; + @ObfuscatedName("w") + @Export("sampleRate") + int sampleRate; + @ObfuscatedName("e") + @Export("sampleCount") + int sampleCount; + @ObfuscatedName("p") + @Export("start") + int start; + @ObfuscatedName("k") + @Export("end") + int end; + @ObfuscatedName("l") + boolean field1364; + @ObfuscatedName("j") + float[] field1382; + @ObfuscatedName("t") + int field1374; + @ObfuscatedName("h") + int field1388; + @ObfuscatedName("o") + boolean field1370; + @ObfuscatedName("ag") + @Export("samples") + byte[] samples; + @ObfuscatedName("ar") + int field1387; + @ObfuscatedName("ax") + int field1381; + + static { + field1372 = false; + } + + VorbisSample(byte[] var1) { + this.read(var1); + } + + @ObfuscatedName("k") + @Export("read") + void read(byte[] var1) { + Buffer var2 = new Buffer(var1); + this.sampleRate = var2.readInt(); + this.sampleCount = var2.readInt(); + this.start = var2.readInt(); + this.end = var2.readInt(); + if (this.end < 0) { + this.end = ~this.end; + this.field1364 = true; + } + + int var3 = var2.readInt(); + this.field1366 = new byte[var3][]; + + for (int var4 = 0; var4 < var3; ++var4) { + int var5 = 0; + + int var6; + do { + var6 = var2.readUnsignedByte(); + var5 += var6; + } while(var6 >= 255); + + byte[] var7 = new byte[var5]; + var2.readBytes(var7, 0, var5); + this.field1366[var4] = var7; + } + + } + + @ObfuscatedName("b") + float[] method2348(int var1) { + VorbisSample_setData(this.field1366[var1], 0); + readBit(); + int var2 = readBits(UrlRequest.iLog(VorbisSample_mapping.length - 1)); + boolean var3 = VorbisSample_blockFlags[var2]; + int var4 = var3 ? VorbisSample_blockSize1 : VorbisSample_blockSize0; + boolean var5 = false; + boolean var6 = false; + if (var3) { + var5 = readBit() != 0; + var6 = readBit() != 0; + } + + int var7 = var4 >> 1; + int var8; + int var9; + int var10; + if (var3 && !var5) { + var8 = (var4 >> 2) - (VorbisSample_blockSize0 >> 2); + var9 = (VorbisSample_blockSize0 >> 2) + (var4 >> 2); + var10 = VorbisSample_blockSize0 >> 1; + } else { + var8 = 0; + var9 = var7; + var10 = var4 >> 1; + } + + int var11; + int var12; + int var13; + if (var3 && !var6) { + var11 = var4 - (var4 >> 2) - (VorbisSample_blockSize0 >> 2); + var12 = (VorbisSample_blockSize0 >> 2) + (var4 - (var4 >> 2)); + var13 = VorbisSample_blockSize0 >> 1; + } else { + var11 = var7; + var12 = var4; + var13 = var4 >> 1; + } + + VorbisMapping var14 = VorbisSample_mappings[VorbisSample_mapping[var2]]; + int var16 = var14.mappingMux; + int var17 = var14.submapFloor[var16]; + boolean var15 = !VorbisSample_floors[var17].readSubmapFloor(); + boolean var45 = var15; + + for (var17 = 0; var17 < var14.submaps; ++var17) { + VorbisResidue var18 = VorbisSample_residues[var14.submapResidue[var17]]; + float[] var19 = field1378; + var18.method2499(var19, var4 >> 1, var45); + } + + int var40; + if (!var15) { + var17 = var14.mappingMux; + var40 = var14.submapFloor[var17]; + VorbisSample_floors[var40].method2389(field1378, var4 >> 1); + } + + int var42; + if (var15) { + for (var17 = var4 >> 1; var17 < var4; ++var17) { + field1378[var17] = 0.0F; + } + } else { + var17 = var4 >> 1; + var40 = var4 >> 2; + var42 = var4 >> 3; + float[] var43 = field1378; + + int var21; + for (var21 = 0; var21 < var17; ++var21) { + var43[var21] *= 0.5F; + } + + for (var21 = var17; var21 < var4; ++var21) { + var43[var21] = -var43[var4 - var21 - 1]; + } + + float[] var44 = var3 ? field1377 : field1355; + float[] var22 = var3 ? field1373 : field1379; + float[] var23 = var3 ? field1383 : field1380; + int[] var24 = var3 ? field1385 : field1384; + + int var25; + float var26; + float var27; + float var28; + float var29; + for (var25 = 0; var25 < var40; ++var25) { + var26 = var43[var25 * 4] - var43[var4 - var25 * 4 - 1]; + var27 = var43[var25 * 4 + 2] - var43[var4 - var25 * 4 - 3]; + var28 = var44[var25 * 2]; + var29 = var44[var25 * 2 + 1]; + var43[var4 - var25 * 4 - 1] = var26 * var28 - var27 * var29; + var43[var4 - var25 * 4 - 3] = var26 * var29 + var27 * var28; + } + + float var30; + float var31; + for (var25 = 0; var25 < var42; ++var25) { + var26 = var43[var17 + var25 * 4 + 3]; + var27 = var43[var17 + var25 * 4 + 1]; + var28 = var43[var25 * 4 + 3]; + var29 = var43[var25 * 4 + 1]; + var43[var17 + var25 * 4 + 3] = var26 + var28; + var43[var17 + var25 * 4 + 1] = var27 + var29; + var30 = var44[var17 - 4 - var25 * 4]; + var31 = var44[var17 - 3 - var25 * 4]; + var43[var25 * 4 + 3] = (var26 - var28) * var30 - (var27 - var29) * var31; + var43[var25 * 4 + 1] = (var27 - var29) * var30 + (var26 - var28) * var31; + } + + var25 = UrlRequest.iLog(var4 - 1); + + int var47; + int var48; + int var49; + int var50; + for (var47 = 0; var47 < var25 - 3; ++var47) { + var48 = var4 >> var47 + 2; + var49 = 8 << var47; + + for (var50 = 0; var50 < 2 << var47; ++var50) { + int var51 = var4 - var48 * var50 * 2; + int var52 = var4 - var48 * (var50 * 2 + 1); + + for (int var32 = 0; var32 < var4 >> var47 + 4; ++var32) { + int var33 = var32 * 4; + float var34 = var43[var51 - 1 - var33]; + float var35 = var43[var51 - 3 - var33]; + float var36 = var43[var52 - 1 - var33]; + float var37 = var43[var52 - 3 - var33]; + var43[var51 - 1 - var33] = var34 + var36; + var43[var51 - 3 - var33] = var35 + var37; + float var38 = var44[var32 * var49]; + float var39 = var44[var32 * var49 + 1]; + var43[var52 - 1 - var33] = (var34 - var36) * var38 - (var35 - var37) * var39; + var43[var52 - 3 - var33] = (var35 - var37) * var38 + (var34 - var36) * var39; + } + } + } + + for (var47 = 1; var47 < var42 - 1; ++var47) { + var48 = var24[var47]; + if (var47 < var48) { + var49 = var47 * 8; + var50 = var48 * 8; + var30 = var43[var49 + 1]; + var43[var49 + 1] = var43[var50 + 1]; + var43[var50 + 1] = var30; + var30 = var43[var49 + 3]; + var43[var49 + 3] = var43[var50 + 3]; + var43[var50 + 3] = var30; + var30 = var43[var49 + 5]; + var43[var49 + 5] = var43[var50 + 5]; + var43[var50 + 5] = var30; + var30 = var43[var49 + 7]; + var43[var49 + 7] = var43[var50 + 7]; + var43[var50 + 7] = var30; + } + } + + for (var47 = 0; var47 < var17; ++var47) { + var43[var47] = var43[var47 * 2 + 1]; + } + + for (var47 = 0; var47 < var42; ++var47) { + var43[var4 - 1 - var47 * 2] = var43[var47 * 4]; + var43[var4 - 2 - var47 * 2] = var43[var47 * 4 + 1]; + var43[var4 - var40 - 1 - var47 * 2] = var43[var47 * 4 + 2]; + var43[var4 - var40 - 2 - var47 * 2] = var43[var47 * 4 + 3]; + } + + for (var47 = 0; var47 < var42; ++var47) { + var27 = var23[var47 * 2]; + var28 = var23[var47 * 2 + 1]; + var29 = var43[var17 + var47 * 2]; + var30 = var43[var17 + var47 * 2 + 1]; + var31 = var43[var4 - 2 - var47 * 2]; + float var53 = var43[var4 - 1 - var47 * 2]; + float var54 = var28 * (var29 - var31) + var27 * (var30 + var53); + var43[var17 + var47 * 2] = (var29 + var31 + var54) * 0.5F; + var43[var4 - 2 - var47 * 2] = (var29 + var31 - var54) * 0.5F; + var54 = var28 * (var30 + var53) - var27 * (var29 - var31); + var43[var17 + var47 * 2 + 1] = (var30 - var53 + var54) * 0.5F; + var43[var4 - 1 - var47 * 2] = (-var30 + var53 + var54) * 0.5F; + } + + for (var47 = 0; var47 < var40; ++var47) { + var43[var47] = var43[var17 + var47 * 2] * var22[var47 * 2] + var43[var17 + var47 * 2 + 1] * var22[var47 * 2 + 1]; + var43[var17 - 1 - var47] = var43[var17 + var47 * 2] * var22[var47 * 2 + 1] - var43[var17 + var47 * 2 + 1] * var22[var47 * 2]; + } + + for (var47 = 0; var47 < var40; ++var47) { + var43[var47 + (var4 - var40)] = -var43[var47]; + } + + for (var47 = 0; var47 < var40; ++var47) { + var43[var47] = var43[var40 + var47]; + } + + for (var47 = 0; var47 < var40; ++var47) { + var43[var40 + var47] = -var43[var40 - var47 - 1]; + } + + for (var47 = 0; var47 < var40; ++var47) { + var43[var17 + var47] = var43[var4 - var47 - 1]; + } + + float[] var10000; + for (var47 = var8; var47 < var9; ++var47) { + var27 = (float)Math.sin(((double)(var47 - var8) + 0.5D) / (double)var10 * 0.5D * 3.141592653589793D); + var10000 = field1378; + var10000[var47] *= (float)Math.sin(1.5707963267948966D * (double)var27 * (double)var27); + } + + for (var47 = var11; var47 < var12; ++var47) { + var27 = (float)Math.sin(((double)(var47 - var11) + 0.5D) / (double)var13 * 0.5D * 3.141592653589793D + 1.5707963267948966D); + var10000 = field1378; + var10000[var47] *= (float)Math.sin(1.5707963267948966D * (double)var27 * (double)var27); + } + } + + float[] var41 = null; + if (this.field1374 > 0) { + var40 = var4 + this.field1374 >> 2; + var41 = new float[var40]; + int var20; + if (!this.field1370) { + for (var42 = 0; var42 < this.field1388; ++var42) { + var20 = var42 + (this.field1374 >> 1); + var41[var42] += this.field1382[var20]; + } + } + + if (!var15) { + for (var42 = var8; var42 < var4 >> 1; ++var42) { + var20 = var41.length - (var4 >> 1) + var42; + var41[var20] += field1378[var42]; + } + } + } + + float[] var46 = this.field1382; + this.field1382 = field1378; + field1378 = var46; + this.field1374 = var4; + this.field1388 = var12 - (var4 >> 1); + this.field1370 = var15; + return var41; + } + + @ObfuscatedName("u") + @ObfuscatedSignature( + signature = "([I)Lcd;" + ) + @Export("toRawSound") + RawSound toRawSound(int[] var1) { + if (var1 != null && var1[0] <= 0) { + return null; + } else { + if (this.samples == null) { + this.field1374 = 0; + this.field1382 = new float[VorbisSample_blockSize1]; + this.samples = new byte[this.sampleCount]; + this.field1387 = 0; + this.field1381 = 0; + } + + for (; this.field1381 < this.field1366.length; ++this.field1381) { + if (var1 != null && var1[0] <= 0) { + return null; + } + + float[] var2 = this.method2348(this.field1381); + if (var2 != null) { + int var3 = this.field1387; + int var4 = var2.length; + if (var4 > this.sampleCount - var3) { + var4 = this.sampleCount - var3; + } + + for (int var5 = 0; var5 < var4; ++var5) { + int var6 = (int)(128.0F + var2[var5] * 128.0F); + if ((var6 & -256) != 0) { + var6 = ~var6 >> 31; + } + + this.samples[var3++] = (byte)(var6 - 128); + } + + if (var1 != null) { + var1[0] -= var3 - this.field1387; + } + + this.field1387 = var3; + } + } + + this.field1382 = null; + byte[] var7 = this.samples; + this.samples = null; + return new RawSound(this.sampleRate, var7, this.start, this.end, this.field1364); + } + } + + @ObfuscatedName("q") + @Export("float32Unpack") + static float float32Unpack(int var0) { + int var1 = var0 & 2097151; + int var2 = var0 & Integer.MIN_VALUE; + int var3 = (var0 & 2145386496) >> 21; + if (var2 != 0) { + var1 = -var1; + } + + return (float)((double)var1 * Math.pow(2.0D, (double)(var3 - 788))); + } + + @ObfuscatedName("w") + @Export("VorbisSample_setData") + static void VorbisSample_setData(byte[] var0, int var1) { + VorbisSample_bytes = var0; + VorbisSample_byteOffset = var1; + VorbisSample_bitOffset = 0; + } + + @ObfuscatedName("e") + @Export("readBit") + static int readBit() { + int var0 = VorbisSample_bytes[VorbisSample_byteOffset] >> VorbisSample_bitOffset & 1; + ++VorbisSample_bitOffset; + VorbisSample_byteOffset += VorbisSample_bitOffset >> 3; + VorbisSample_bitOffset &= 7; + return var0; + } + + @ObfuscatedName("p") + @Export("readBits") + static int readBits(int var0) { + int var1 = 0; + + int var2; + int var3; + for (var2 = 0; var0 >= 8 - VorbisSample_bitOffset; var0 -= var3) { + var3 = 8 - VorbisSample_bitOffset; + int var4 = (1 << var3) - 1; + var1 += (VorbisSample_bytes[VorbisSample_byteOffset] >> VorbisSample_bitOffset & var4) << var2; + VorbisSample_bitOffset = 0; + ++VorbisSample_byteOffset; + var2 += var3; + } + + if (var0 > 0) { + var3 = (1 << var0) - 1; + var1 += (VorbisSample_bytes[VorbisSample_byteOffset] >> VorbisSample_bitOffset & var3) << var2; + VorbisSample_bitOffset += var0; + } + + return var1; + } + + @ObfuscatedName("l") + static void method2351(byte[] var0) { + VorbisSample_setData(var0, 0); + VorbisSample_blockSize0 = 1 << readBits(4); + VorbisSample_blockSize1 = 1 << readBits(4); + field1378 = new float[VorbisSample_blockSize1]; + + int var1; + int var2; + int var3; + int var4; + int var5; + for (var1 = 0; var1 < 2; ++var1) { + var2 = var1 != 0 ? VorbisSample_blockSize1 : VorbisSample_blockSize0; + var3 = var2 >> 1; + var4 = var2 >> 2; + var5 = var2 >> 3; + float[] var6 = new float[var3]; + + for (int var7 = 0; var7 < var4; ++var7) { + var6[var7 * 2] = (float)Math.cos((double)(var7 * 4) * 3.141592653589793D / (double)var2); + var6[var7 * 2 + 1] = -((float)Math.sin((double)(var7 * 4) * 3.141592653589793D / (double)var2)); + } + + float[] var12 = new float[var3]; + + for (int var8 = 0; var8 < var4; ++var8) { + var12[var8 * 2] = (float)Math.cos((double)(var8 * 2 + 1) * 3.141592653589793D / (double)(var2 * 2)); + var12[var8 * 2 + 1] = (float)Math.sin((double)(var8 * 2 + 1) * 3.141592653589793D / (double)(var2 * 2)); + } + + float[] var13 = new float[var4]; + + for (int var9 = 0; var9 < var5; ++var9) { + var13[var9 * 2] = (float)Math.cos((double)(var9 * 4 + 2) * 3.141592653589793D / (double)var2); + var13[var9 * 2 + 1] = -((float)Math.sin((double)(var9 * 4 + 2) * 3.141592653589793D / (double)var2)); + } + + int[] var14 = new int[var5]; + int var10 = UrlRequest.iLog(var5 - 1); + + for (int var11 = 0; var11 < var5; ++var11) { + var14[var11] = ClientPreferences.method1757(var11, var10); + } + + if (var1 != 0) { + field1377 = var6; + field1373 = var12; + field1383 = var13; + field1385 = var14; + } else { + field1355 = var6; + field1379 = var12; + field1380 = var13; + field1384 = var14; + } + } + + var1 = readBits(8) + 1; + VorbisSample_codebooks = new VorbisCodebook[var1]; + + for (var2 = 0; var2 < var1; ++var2) { + VorbisSample_codebooks[var2] = new VorbisCodebook(); + } + + var2 = readBits(6) + 1; + + for (var3 = 0; var3 < var2; ++var3) { + readBits(16); + } + + var2 = readBits(6) + 1; + VorbisSample_floors = new VorbisFloor[var2]; + + for (var3 = 0; var3 < var2; ++var3) { + VorbisSample_floors[var3] = new VorbisFloor(); + } + + var3 = readBits(6) + 1; + VorbisSample_residues = new VorbisResidue[var3]; + + for (var4 = 0; var4 < var3; ++var4) { + VorbisSample_residues[var4] = new VorbisResidue(); + } + + var4 = readBits(6) + 1; + VorbisSample_mappings = new VorbisMapping[var4]; + + for (var5 = 0; var5 < var4; ++var5) { + VorbisSample_mappings[var5] = new VorbisMapping(); + } + + var5 = readBits(6) + 1; + VorbisSample_blockFlags = new boolean[var5]; + VorbisSample_mapping = new int[var5]; + + for (int var15 = 0; var15 < var5; ++var15) { + VorbisSample_blockFlags[var15] = readBit() != 0; + readBits(16); + readBits(16); + VorbisSample_mapping[var15] = readBits(8); + } + + } + + @ObfuscatedName("i") + @ObfuscatedSignature( + signature = "(Lhp;)Z" + ) + static boolean method2349(AbstractArchive var0) { + if (!field1372) { + byte[] var1 = var0.takeFile(0, 0); + if (var1 == null) { + return false; + } + + method2351(var1); + field1372 = true; + } + + return true; + } + + @ObfuscatedName("c") + @ObfuscatedSignature( + signature = "(Lhp;II)Lci;" + ) + @Export("readMusicSample") + static VorbisSample readMusicSample(AbstractArchive var0, int var1, int var2) { + if (!method2349(var0)) { + var0.tryLoadFile(var1, var2); + return null; + } else { + byte[] var3 = var0.takeFile(var1, var2); + return var3 == null ? null : new VorbisSample(var3); + } + } +} diff --git a/runescape-client/src/main/java/WorldMapData_0.java b/runescape-client/src/main/java/WorldMapData_0.java new file mode 100644 index 0000000000..d43de4aa00 --- /dev/null +++ b/runescape-client/src/main/java/WorldMapData_0.java @@ -0,0 +1,87 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("y") +@Implements("WorldMapData_0") +public class WorldMapData_0 extends AbstractWorldMapData { + WorldMapData_0() { + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Lkf;I)V", + garbageValue = "1977594384" + ) + @Export("init") + void init(Buffer var1) { + int var2 = var1.readUnsignedByte(); + if (var2 != WorldMapID.field272.value) { + throw new IllegalStateException(""); + } else { + super.minPlane = var1.readUnsignedByte(); + super.planes = var1.readUnsignedByte(); + super.regionXLow = var1.readUnsignedShort() * 4096; + super.regionYLow = var1.readUnsignedShort() * 4096; + super.regionX = var1.readUnsignedShort(); + super.regionY = var1.readUnsignedShort(); + super.groupId = var1.method5511(); + super.fileId = var1.method5511(); + } + } + + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "(Lkf;I)V", + garbageValue = "-1951934103" + ) + @Export("readGeography") + void readGeography(Buffer var1) { + super.planes = Math.min(super.planes, 4); + super.floorUnderlayIds = new short[1][64][64]; + super.floorOverlayIds = new short[super.planes][64][64]; + super.field165 = new byte[super.planes][64][64]; + super.field166 = new byte[super.planes][64][64]; + super.decorations = new WorldMapDecoration[super.planes][64][64][]; + int var2 = var1.readUnsignedByte(); + if (var2 != class30.field262.value) { + throw new IllegalStateException(""); + } else { + int var3 = var1.readUnsignedByte(); + int var4 = var1.readUnsignedByte(); + if (var3 == super.regionX && var4 == super.regionY) { + for (int var5 = 0; var5 < 64; ++var5) { + for (int var6 = 0; var6 < 64; ++var6) { + this.readTile(var5, var6, var1); + } + } + + } else { + throw new IllegalStateException(""); + } + } + } + + public boolean equals(Object var1) { + if (!(var1 instanceof WorldMapData_0)) { + return false; + } else { + WorldMapData_0 var2 = (WorldMapData_0)var1; + return var2.regionX == super.regionX && super.regionY == var2.regionY; + } + } + + public int hashCode() { + return super.regionX | super.regionY << 8; + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Lhp;I)V", + garbageValue = "-1590503408" + ) + public static void method173(AbstractArchive var0) { + InvDefinition.InvDefinition_archive = var0; + } +} diff --git a/runescape-client/src/main/java/WorldMapData_1.java b/runescape-client/src/main/java/WorldMapData_1.java new file mode 100644 index 0000000000..ed6f9ddd91 --- /dev/null +++ b/runescape-client/src/main/java/WorldMapData_1.java @@ -0,0 +1,178 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; +import net.runelite.rs.ScriptOpcodes; + +@ObfuscatedName("ac") +@Implements("WorldMapData_1") +public class WorldMapData_1 extends AbstractWorldMapData { + @ObfuscatedName("sk") + @Export("foundItemIds") + static short[] foundItemIds; + @ObfuscatedName("gl") + @ObfuscatedSignature( + signature = "[Lly;" + ) + @Export("mapMarkerSprites") + static Sprite[] mapMarkerSprites; + @ObfuscatedName("y") + @ObfuscatedGetter( + intValue = 234280421 + ) + @Export("chunkXLow") + int chunkXLow; + @ObfuscatedName("g") + @ObfuscatedGetter( + intValue = -1310278341 + ) + @Export("chunkYLow") + int chunkYLow; + @ObfuscatedName("a") + @ObfuscatedGetter( + intValue = 1872036801 + ) + @Export("chunkX") + int chunkX; + @ObfuscatedName("j") + @ObfuscatedGetter( + intValue = 1949711027 + ) + @Export("chunkY") + int chunkY; + + WorldMapData_1() { + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Lkf;I)V", + garbageValue = "1442686433" + ) + @Export("init") + void init(Buffer var1) { + int var2 = var1.readUnsignedByte(); + if (var2 != WorldMapID.field269.value) { + throw new IllegalStateException(""); + } else { + super.minPlane = var1.readUnsignedByte(); + super.planes = var1.readUnsignedByte(); + super.regionXLow = var1.readUnsignedShort() * 4096; + super.regionYLow = var1.readUnsignedShort() * 4096; + this.chunkXLow = var1.readUnsignedByte(); + this.chunkYLow = var1.readUnsignedByte(); + super.regionX = var1.readUnsignedShort(); + super.regionY = var1.readUnsignedShort(); + this.chunkX = var1.readUnsignedByte(); + this.chunkY = var1.readUnsignedByte(); + super.groupId = var1.method5511(); + super.fileId = var1.method5511(); + } + } + + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "(Lkf;I)V", + garbageValue = "-1951934103" + ) + @Export("readGeography") + void readGeography(Buffer var1) { + super.planes = Math.min(super.planes, 4); + super.floorUnderlayIds = new short[1][64][64]; + super.floorOverlayIds = new short[super.planes][64][64]; + super.field165 = new byte[super.planes][64][64]; + super.field166 = new byte[super.planes][64][64]; + super.decorations = new WorldMapDecoration[super.planes][64][64][]; + int var2 = var1.readUnsignedByte(); + if (var2 != class30.field258.value) { + throw new IllegalStateException(""); + } else { + int var3 = var1.readUnsignedByte(); + int var4 = var1.readUnsignedByte(); + int var5 = var1.readUnsignedByte(); + int var6 = var1.readUnsignedByte(); + if (var3 == super.regionX && var4 == super.regionY && var5 == this.chunkX && var6 == this.chunkY) { + for (int var7 = 0; var7 < 8; ++var7) { + for (int var8 = 0; var8 < 8; ++var8) { + this.readTile(var7 + this.chunkX * 8, var8 + this.chunkY * 8, var1); + } + } + + } else { + throw new IllegalStateException(""); + } + } + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "2082336179" + ) + @Export("getChunkXLow") + int getChunkXLow() { + return this.chunkXLow; + } + + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "-521684078" + ) + @Export("getChunkYLow") + int getChunkYLow() { + return this.chunkYLow; + } + + @ObfuscatedName("k") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "-1825008967" + ) + @Export("getChunkX") + int getChunkX() { + return this.chunkX; + } + + @ObfuscatedName("at") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "-1471448055" + ) + @Export("getChunkY") + int getChunkY() { + return this.chunkY; + } + + public boolean equals(Object var1) { + if (!(var1 instanceof WorldMapData_1)) { + return false; + } else { + WorldMapData_1 var2 = (WorldMapData_1)var1; + if (var2.regionX == super.regionX && super.regionY == var2.regionY) { + return var2.chunkX == this.chunkX && var2.chunkY == this.chunkY; + } else { + return false; + } + } + } + + public int hashCode() { + return super.regionX | super.regionY << 8 | this.chunkX << 16 | this.chunkY << 24; + } + + @ObfuscatedName("at") + @ObfuscatedSignature( + signature = "(ILcx;ZI)I", + garbageValue = "-878316811" + ) + static int method696(int var0, Script var1, boolean var2) { + if (var0 == ScriptOpcodes.LOGOUT) { + Client.field700 = 250; + return 1; + } else { + return 2; + } + } +} diff --git a/runescape-client/src/main/java/WorldMapID.java b/runescape-client/src/main/java/WorldMapID.java new file mode 100644 index 0000000000..d7989644c4 --- /dev/null +++ b/runescape-client/src/main/java/WorldMapID.java @@ -0,0 +1,273 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; +import net.runelite.rs.ScriptOpcodes; + +@ObfuscatedName("ag") +@Implements("WorldMapID") +public class WorldMapID { + @ObfuscatedName("rx") + @ObfuscatedGetter( + intValue = -1345253721 + ) + static int field268; + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "Lag;" + ) + static final WorldMapID field272; + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "Lag;" + ) + static final WorldMapID field269; + @ObfuscatedName("bc") + @ObfuscatedSignature( + signature = "[Lly;" + ) + @Export("worldSelectBackSprites") + static Sprite[] worldSelectBackSprites; + @ObfuscatedName("e") + @ObfuscatedGetter( + intValue = -976208545 + ) + @Export("value") + final int value; + + static { + field272 = new WorldMapID(0); + field269 = new WorldMapID(1); + } + + WorldMapID(int var1) { + this.value = var1; + } + + @ObfuscatedName("y") + @ObfuscatedSignature( + signature = "(Ljava/lang/String;B)V", + garbageValue = "-37" + ) + static final void method541(String var0) { + StringBuilder var10000 = new StringBuilder(); + Object var10001 = null; + var10000 = var10000.append("Please remove ").append(var0); + var10001 = null; + String var1 = var10000.append(" from your friend list first").toString(); + ScriptEvent.addGameMessage(30, "", var1); + } + + @ObfuscatedName("as") + @ObfuscatedSignature( + signature = "(ILcx;ZI)I", + garbageValue = "-216787124" + ) + static int method540(int var0, Script var1, boolean var2) { + if (var0 == ScriptOpcodes.CLIENTCLOCK) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.cycle; + return 1; + } else { + int var3; + int var4; + if (var0 == ScriptOpcodes.INV_GETOBJ) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + var3 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = AbstractWorldMapData.method274(var3, var4); + return 1; + } else if (var0 == ScriptOpcodes.INV_GETNUM) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + var3 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = class2.method27(var3, var4); + return 1; + } else if (var0 == ScriptOpcodes.INV_TOTAL) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + var3 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = BufferedFile.method6528(var3, var4); + return 1; + } else if (var0 == ScriptOpcodes.INV_SIZE) { + var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = NetSocket.getInvDefinition(var3).size; + return 1; + } else if (var0 == ScriptOpcodes.STAT) { + var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.currentLevels[var3]; + return 1; + } else if (var0 == ScriptOpcodes.STAT_BASE) { + var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.levels[var3]; + return 1; + } else if (var0 == ScriptOpcodes.STAT_XP) { + var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.experience[var3]; + return 1; + } else { + int var5; + if (var0 == ScriptOpcodes.COORD) { + var3 = class42.plane; + var4 = MusicPatchNode2.baseX * 64 + (Client.localPlayer.x >> 7); + var5 = class1.baseY * 64 + (Client.localPlayer.y >> 7); + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = (var4 << 14) + var5 + (var3 << 28); + return 1; + } else if (var0 == ScriptOpcodes.COORDX) { + var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3 >> 14 & 16383; + return 1; + } else if (var0 == ScriptOpcodes.COORDZ) { + var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3 >> 28; + return 1; + } else if (var0 == ScriptOpcodes.COORDY) { + var3 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3 & 16383; + return 1; + } else if (var0 == ScriptOpcodes.MAP_MEMBERS) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.isMembersWorld ? 1 : 0; + return 1; + } else if (var0 == ScriptOpcodes.INVOTHER_GETOBJ) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + var3 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] + 32768; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = AbstractWorldMapData.method274(var3, var4); + return 1; + } else if (var0 == ScriptOpcodes.INVOTHER_GETNUM) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + var3 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] + 32768; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = class2.method27(var3, var4); + return 1; + } else if (var0 == ScriptOpcodes.INVOTHER_TOTAL) { + HealthBarUpdate.Interpreter_intStackSize -= 2; + var3 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize] + 32768; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = BufferedFile.method6528(var3, var4); + return 1; + } else if (var0 == ScriptOpcodes.STAFFMODLEVEL) { + if (Client.staffModLevel >= 2) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.staffModLevel; + } else { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = 0; + } + + return 1; + } else if (var0 == ScriptOpcodes.REBOOTTIMER) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.rebootTimer; + return 1; + } else if (var0 == ScriptOpcodes.MAP_WORLD) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.worldId; + return 1; + } else if (var0 == ScriptOpcodes.RUNENERGY_VISIBLE) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.runEnergy; + return 1; + } else if (var0 == ScriptOpcodes.RUNWEIGHT_VISIBLE) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.weight; + return 1; + } else if (var0 == ScriptOpcodes.PLAYERMOD) { + if (Client.playerMod) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = 1; + } else { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = 0; + } + + return 1; + } else if (var0 == ScriptOpcodes.WORLDFLAGS) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Client.worldProperties; + return 1; + } else if (var0 == ScriptOpcodes.MOVECOORD) { + HealthBarUpdate.Interpreter_intStackSize -= 4; + var3 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + var5 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 2]; + int var6 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 3]; + var3 += var4 << 14; + var3 += var5 << 28; + var3 += var6; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3; + return 1; + } else { + return 2; + } + } + } + } + + @ObfuscatedName("ek") + @ObfuscatedSignature( + signature = "(I)Llw;", + garbageValue = "-1838562089" + ) + @Export("getWorldMap") + static WorldMap getWorldMap() { + return BoundaryObject.worldMap; + } + + @ObfuscatedName("hx") + @ObfuscatedSignature( + signature = "(I)V", + garbageValue = "-456020317" + ) + static void method542() { + if (Client.isSpellSelected) { + Widget var0 = Client.getWidgetChild(WorldMapEvent.field359, Client.field848); + if (var0 != null && var0.onTargetLeave != null) { + ScriptEvent var1 = new ScriptEvent(); + var1.widget = var0; + var1.args = var0.onTargetLeave; + LoginPacket.runScriptEvent(var1); + } + + Client.isSpellSelected = false; + Strings.method4120(var0); + } + } + + @ObfuscatedName("ix") + @ObfuscatedSignature( + signature = "([Lhj;IS)V", + garbageValue = "28886" + ) + static final void method539(Widget[] var0, int var1) { + for (int var2 = 0; var2 < var0.length; ++var2) { + Widget var3 = var0[var2]; + if (var3 != null) { + if (var3.type == 0) { + if (var3.children != null) { + method539(var3.children, var1); + } + + InterfaceParent var4 = (InterfaceParent)Client.interfaceParents.get((long)var3.id); + if (var4 != null) { + WorldMapLabelSize.method175(var4.group, var1); + } + } + + ScriptEvent var5; + if (var1 == 0 && var3.onDialogAbort != null) { + var5 = new ScriptEvent(); + var5.widget = var3; + var5.args = var3.onDialogAbort; + LoginPacket.runScriptEvent(var5); + } + + if (var1 == 1 && var3.onSubChange != null) { + if (var3.childIndex >= 0) { + Widget var6 = class80.getWidget(var3.id); + if (var6 == null || var6.children == null || var3.childIndex >= var6.children.length || var3 != var6.children[var3.childIndex]) { + continue; + } + } + + var5 = new ScriptEvent(); + var5.widget = var3; + var5.args = var3.onSubChange; + LoginPacket.runScriptEvent(var5); + } + } + } + + } +} diff --git a/runescape-client/src/main/java/WorldMapIcon_0.java b/runescape-client/src/main/java/WorldMapIcon_0.java new file mode 100644 index 0000000000..fc0c6c769b --- /dev/null +++ b/runescape-client/src/main/java/WorldMapIcon_0.java @@ -0,0 +1,475 @@ +import java.awt.Component; +import java.io.File; +import java.io.IOException; +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("j") +@Implements("WorldMapIcon_0") +public class WorldMapIcon_0 extends AbstractWorldMapIcon { + @ObfuscatedName("g") + @ObfuscatedSignature( + signature = "Laq;" + ) + @Export("worldMapEvent") + static WorldMapEvent worldMapEvent; + @ObfuscatedName("ji") + @ObfuscatedSignature( + signature = "Lhj;" + ) + @Export("dragInventoryWidget") + static Widget dragInventoryWidget; + @ObfuscatedName("q") + @ObfuscatedGetter( + intValue = -548504739 + ) + @Export("element") + final int element; + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "Las;" + ) + @Export("label") + final WorldMapLabel label; + @ObfuscatedName("e") + @ObfuscatedGetter( + intValue = -1510393047 + ) + @Export("subWidth") + final int subWidth; + @ObfuscatedName("p") + @ObfuscatedGetter( + intValue = -861778951 + ) + @Export("subHeight") + final int subHeight; + + @ObfuscatedSignature( + signature = "(Lhv;Lhv;ILas;)V" + ) + WorldMapIcon_0(Coord var1, Coord var2, int var3, WorldMapLabel var4) { + super(var1, var2); + this.element = var3; + this.label = var4; + WorldMapElement var5 = class222.getWorldMapElement(this.getElement()); + Sprite var6 = var5.getSpriteBool(false); + if (var6 != null) { + this.subWidth = var6.subWidth; + this.subHeight = var6.subHeight; + } else { + this.subWidth = 0; + this.subHeight = 0; + } + + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "-229566020" + ) + public int getElement() { + return this.element; + } + + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "(I)Las;", + garbageValue = "1426074195" + ) + @Export("getLabel") + WorldMapLabel getLabel() { + return this.label; + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(B)I", + garbageValue = "14" + ) + int getSubWidth() { + return this.subWidth; + } + + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "(B)I", + garbageValue = "1" + ) + int getSubHeight() { + return this.subHeight; + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Ljava/awt/Component;B)V", + garbageValue = "103" + ) + static void method200(Component var0) { + var0.addMouseListener(MouseHandler.MouseHandler_instance); + var0.addMouseMotionListener(MouseHandler.MouseHandler_instance); + var0.addFocusListener(MouseHandler.MouseHandler_instance); + } + + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "(IB)Lie;", + garbageValue = "4" + ) + @Export("getParamDefinition") + public static ParamDefinition getParamDefinition(int var0) { + ParamDefinition var1 = (ParamDefinition)ParamDefinition.ParamDefinition_cached.get((long)var0); + if (var1 != null) { + return var1; + } else { + byte[] var2 = ParamDefinition.ParamDefinition_archive.takeFile(11, var0); + var1 = new ParamDefinition(); + if (var2 != null) { + var1.decode(new Buffer(var2)); + } + + var1.postDecode(); + ParamDefinition.ParamDefinition_cached.put(var1, (long)var0); + return var1; + } + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(Lkf;II)Ljava/lang/String;", + garbageValue = "-1883574782" + ) + static String method194(Buffer var0, int var1) { + try { + int var2 = var0.readUShortSmart(); + if (var2 > var1) { + var2 = var1; + } + + byte[] var3 = new byte[var2]; + var0.offset += class210.huffman.decompress(var0.array, var0.offset, var3, 0, var2); + String var4 = FriendSystem.decodeStringCp1252(var3, 0, var2); + return var4; + } catch (Exception var6) { + return "Cabbage"; + } + } + + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "(Ljava/lang/String;Ljava/lang/String;ZI)Lma;", + garbageValue = "403925175" + ) + @Export("getPreferencesFile") + public static AccessFile getPreferencesFile(String var0, String var1, boolean var2) { + File var3 = new File(class1.field2, "preferences" + var0 + ".dat"); + if (var3.exists()) { + try { + AccessFile var10 = new AccessFile(var3, "rw", 10000L); + return var10; + } catch (IOException var9) { + } + } + + String var4 = ""; + if (TextureProvider.field1539 == 33) { + var4 = "_rc"; + } else if (TextureProvider.field1539 == 34) { + var4 = "_wip"; + } + + File var5 = new File(PlayerType.userHomeDirectory, "jagex_" + var1 + "_preferences" + var0 + var4 + ".dat"); + AccessFile var6; + if (!var2 && var5.exists()) { + try { + var6 = new AccessFile(var5, "rw", 10000L); + return var6; + } catch (IOException var8) { + } + } + + try { + var6 = new AccessFile(var3, "rw", 10000L); + return var6; + } catch (IOException var7) { + throw new RuntimeException(); + } + } + + @ObfuscatedName("k") + @ObfuscatedSignature( + signature = "(Lkx;II)V", + garbageValue = "164873785" + ) + static void method210(PacketBuffer var0, int var1) { + boolean var2 = var0.readBits(1) == 1; + if (var2) { + Players.Players_pendingUpdateIndices[++Players.Players_pendingUpdateCount - 1] = var1; + } + + int var3 = var0.readBits(2); + Player var4 = Client.players[var1]; + if (var3 == 0) { + if (var2) { + var4.field638 = false; + } else if (Client.localPlayerIndex == var1) { + throw new RuntimeException(); + } else { + Players.Players_regions[var1] = (var4.plane << 28) + (MusicPatchNode2.baseX * 64 + var4.pathX[0] >> 13 << 14) + (class1.baseY * 64 + var4.pathY[0] >> 13); + if (var4.field976 != -1) { + Players.Players_orientations[var1] = var4.field976; + } else { + Players.Players_orientations[var1] = var4.orientation; + } + + Players.Players_targetIndices[var1] = var4.targetIndex; + Client.players[var1] = null; + if (var0.readBits(1) != 0) { + class226.updateExternalPlayer(var0, var1); + } + + } + } else { + int var5; + int var6; + int var7; + if (var3 == 1) { + var5 = var0.readBits(3); + var6 = var4.pathX[0]; + var7 = var4.pathY[0]; + if (var5 == 0) { + --var6; + --var7; + } else if (var5 == 1) { + --var7; + } else if (var5 == 2) { + ++var6; + --var7; + } else if (var5 == 3) { + --var6; + } else if (var5 == 4) { + ++var6; + } else if (var5 == 5) { + --var6; + ++var7; + } else if (var5 == 6) { + ++var7; + } else if (var5 == 7) { + ++var6; + ++var7; + } + + if (Client.localPlayerIndex == var1 && (var4.x < 1536 || var4.y < 1536 || var4.x >= 11776 || var4.y >= 11776)) { + var4.resetPath(var6, var7); + var4.field638 = false; + } else if (var2) { + var4.field638 = true; + var4.tileX = var6; + var4.tileY = var7; + } else { + var4.field638 = false; + var4.method1189(var6, var7, Players.field1250[var1]); + } + + } else if (var3 == 2) { + var5 = var0.readBits(4); + var6 = var4.pathX[0]; + var7 = var4.pathY[0]; + if (var5 == 0) { + var6 -= 2; + var7 -= 2; + } else if (var5 == 1) { + --var6; + var7 -= 2; + } else if (var5 == 2) { + var7 -= 2; + } else if (var5 == 3) { + ++var6; + var7 -= 2; + } else if (var5 == 4) { + var6 += 2; + var7 -= 2; + } else if (var5 == 5) { + var6 -= 2; + --var7; + } else if (var5 == 6) { + var6 += 2; + --var7; + } else if (var5 == 7) { + var6 -= 2; + } else if (var5 == 8) { + var6 += 2; + } else if (var5 == 9) { + var6 -= 2; + ++var7; + } else if (var5 == 10) { + var6 += 2; + ++var7; + } else if (var5 == 11) { + var6 -= 2; + var7 += 2; + } else if (var5 == 12) { + --var6; + var7 += 2; + } else if (var5 == 13) { + var7 += 2; + } else if (var5 == 14) { + ++var6; + var7 += 2; + } else if (var5 == 15) { + var6 += 2; + var7 += 2; + } + + if (Client.localPlayerIndex != var1 || var4.x >= 1536 && var4.y >= 1536 && var4.x < 11776 && var4.y < 11776) { + if (var2) { + var4.field638 = true; + var4.tileX = var6; + var4.tileY = var7; + } else { + var4.field638 = false; + var4.method1189(var6, var7, Players.field1250[var1]); + } + } else { + var4.resetPath(var6, var7); + var4.field638 = false; + } + + } else { + var5 = var0.readBits(1); + int var8; + int var9; + int var10; + int var11; + if (var5 == 0) { + var6 = var0.readBits(12); + var7 = var6 >> 10; + var8 = var6 >> 5 & 31; + if (var8 > 15) { + var8 -= 32; + } + + var9 = var6 & 31; + if (var9 > 15) { + var9 -= 32; + } + + var10 = var8 + var4.pathX[0]; + var11 = var9 + var4.pathY[0]; + if (Client.localPlayerIndex == var1 && (var4.x < 1536 || var4.y < 1536 || var4.x >= 11776 || var4.y >= 11776)) { + var4.resetPath(var10, var11); + var4.field638 = false; + } else if (var2) { + var4.field638 = true; + var4.tileX = var10; + var4.tileY = var11; + } else { + var4.field638 = false; + var4.method1189(var10, var11, Players.field1250[var1]); + } + + var4.plane = (byte)(var7 + var4.plane & 3); + if (Client.localPlayerIndex == var1) { + class42.plane = var4.plane; + } + + } else { + var6 = var0.readBits(30); + var7 = var6 >> 28; + var8 = var6 >> 14 & 16383; + var9 = var6 & 16383; + var10 = (MusicPatchNode2.baseX * 64 + var8 + var4.pathX[0] & 16383) - MusicPatchNode2.baseX * 64; + var11 = (class1.baseY * 64 + var9 + var4.pathY[0] & 16383) - class1.baseY * 64; + if (Client.localPlayerIndex == var1 && (var4.x < 1536 || var4.y < 1536 || var4.x >= 11776 || var4.y >= 11776)) { + var4.resetPath(var10, var11); + var4.field638 = false; + } else if (var2) { + var4.field638 = true; + var4.tileX = var10; + var4.tileY = var11; + } else { + var4.field638 = false; + var4.method1189(var10, var11, Players.field1250[var1]); + } + + var4.plane = (byte)(var7 + var4.plane & 3); + if (Client.localPlayerIndex == var1) { + class42.plane = var4.plane; + } + + } + } + } + } + + @ObfuscatedName("fs") + @ObfuscatedSignature( + signature = "(Lhj;III)V", + garbageValue = "1919867373" + ) + @Export("checkIfMinimapClicked") + static final void checkIfMinimapClicked(Widget var0, int var1, int var2) { + if (Client.minimapState == 0 || Client.minimapState == 3) { + if (!Client.isMenuOpen && (MouseHandler.MouseHandler_lastButton == 1 || !DevicePcmPlayerProvider.mouseCam && MouseHandler.MouseHandler_lastButton == 4)) { + SpriteMask var3 = var0.getSpriteMask(true); + if (var3 == null) { + return; + } + + int var4 = MouseHandler.MouseHandler_lastPressedX - var1; + int var5 = MouseHandler.MouseHandler_lastPressedY - var2; + if (var3.contains(var4, var5)) { + var4 -= var3.width / 2; + var5 -= var3.height / 2; + int var6 = Client.camAngleY & 2047; + int var7 = Rasterizer3D.Rasterizer3D_sine[var6]; + int var8 = Rasterizer3D.Rasterizer3D_cosine[var6]; + int var9 = var4 * var8 + var5 * var7 >> 11; + int var10 = var5 * var8 - var7 * var4 >> 11; + int var11 = var9 + Client.localPlayer.x >> 7; + int var12 = Client.localPlayer.y - var10 >> 7; + PacketBufferNode var13 = Archive.method4265(ClientPacket.field2262, Client.packetWriter.isaacCipher); + var13.packetBuffer.writeByte(18); + var13.packetBuffer.method5530(class1.baseY * 64 + var12); + var13.packetBuffer.method5530(MusicPatchNode2.baseX * 64 + var11); + var13.packetBuffer.method5520(KeyHandler.KeyHandler_pressedKeys[82] ? (KeyHandler.KeyHandler_pressedKeys[81] ? 2 : 1) : 0); + var13.packetBuffer.writeByte(var4); + var13.packetBuffer.writeByte(var5); + var13.packetBuffer.writeShort(Client.camAngleY); + var13.packetBuffer.writeByte(57); + var13.packetBuffer.writeByte(0); + var13.packetBuffer.writeByte(0); + var13.packetBuffer.writeByte(89); + var13.packetBuffer.writeShort(Client.localPlayer.x); + var13.packetBuffer.writeShort(Client.localPlayer.y); + var13.packetBuffer.writeByte(63); + Client.packetWriter.method2219(var13); + Client.destinationX = var11; + Client.destinationY = var12; + } + } + + } + } + + @ObfuscatedName("jf") + @ObfuscatedSignature( + signature = "(Lhj;IIIB)V", + garbageValue = "61" + ) + @Export("drawCompass") + static final void drawCompass(Widget var0, int var1, int var2, int var3) { + SpriteMask var4 = var0.getSpriteMask(false); + if (var4 != null) { + if (Client.minimapState < 3) { + Message.compass.drawRotatedMaskedCenteredAround(var1, var2, var4.width, var4.height, 25, 25, Client.camAngleY, 256, var4.xStarts, var4.xWidths); + } else { + Rasterizer2D.Rasterizer2D_fillMaskedRectangle(var1, var2, 0, var4.xStarts, var4.xWidths); + } + + } + } +} diff --git a/runescape-client/src/main/java/WorldMapIcon_1.java b/runescape-client/src/main/java/WorldMapIcon_1.java new file mode 100644 index 0000000000..e8ee66d51c --- /dev/null +++ b/runescape-client/src/main/java/WorldMapIcon_1.java @@ -0,0 +1,257 @@ +import java.security.SecureRandom; +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("d") +@Implements("WorldMapIcon_1") +public class WorldMapIcon_1 extends AbstractWorldMapIcon { + @ObfuscatedName("nc") + @ObfuscatedSignature( + signature = "[Lhj;" + ) + static Widget[] field188; + @ObfuscatedName("ew") + @Export("secureRandom") + static SecureRandom secureRandom; + @ObfuscatedName("fp") + @ObfuscatedSignature( + signature = "Lke;" + ) + @Export("fontBold12") + static Font fontBold12; + @ObfuscatedName("ld") + @ObfuscatedGetter( + intValue = 1201486385 + ) + @Export("selectedItemSlot") + static int selectedItemSlot; + @ObfuscatedName("q") + @ObfuscatedGetter( + intValue = -2025919285 + ) + @Export("objectDefId") + final int objectDefId; + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "Law;" + ) + @Export("region") + final WorldMapRegion region; + @ObfuscatedName("e") + @ObfuscatedGetter( + intValue = 1988411639 + ) + @Export("element") + int element; + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "Las;" + ) + @Export("label") + WorldMapLabel label; + @ObfuscatedName("k") + @ObfuscatedGetter( + intValue = -727022115 + ) + @Export("subWidth") + int subWidth; + @ObfuscatedName("l") + @ObfuscatedGetter( + intValue = -119069051 + ) + @Export("subHeight") + int subHeight; + + @ObfuscatedSignature( + signature = "(Lhv;Lhv;ILaw;)V" + ) + WorldMapIcon_1(Coord var1, Coord var2, int var3, WorldMapRegion var4) { + super(var1, var2); + this.objectDefId = var3; + this.region = var4; + this.init(); + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "-229566020" + ) + public int getElement() { + return this.element; + } + + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "(I)Las;", + garbageValue = "1426074195" + ) + @Export("getLabel") + WorldMapLabel getLabel() { + return this.label; + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(B)I", + garbageValue = "14" + ) + int getSubWidth() { + return this.subWidth; + } + + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "(B)I", + garbageValue = "1" + ) + int getSubHeight() { + return this.subHeight; + } + + @ObfuscatedName("a") + @ObfuscatedSignature( + signature = "(B)V", + garbageValue = "1" + ) + @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()); + Sprite var2 = var1.getSpriteBool(false); + if (var2 != null) { + this.subWidth = var2.subWidth; + this.subHeight = var2.subHeight; + } else { + this.subWidth = 0; + this.subHeight = 0; + } + + } + + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "(II)Z", + garbageValue = "1515733926" + ) + public static boolean method295(int var0) { + return (var0 >> 20 & 1) != 0; + } + + @ObfuscatedName("k") + @ObfuscatedSignature( + signature = "(II)Lbj;", + garbageValue = "377219115" + ) + static Message method297(int var0) { + return (Message)Messages.Messages_hashTable.get((long)var0); + } + + @ObfuscatedName("l") + @ObfuscatedSignature( + signature = "(I)V", + garbageValue = "536238322" + ) + @Export("HealthBarDefinition_clearCached") + public static void HealthBarDefinition_clearCached() { + HealthBarDefinition.HealthBarDefinition_cached.clear(); + HealthBarDefinition.HealthBarDefinition_cachedSprites.clear(); + } + + @ObfuscatedName("ey") + @ObfuscatedSignature( + signature = "(IB)V", + garbageValue = "-42" + ) + static void method296(int var0) { + if (var0 == -3) { + class268.setLoginResponseString("Connection timed out.", "Please try using a different world.", ""); + } else if (var0 == -2) { + class268.setLoginResponseString("", "Error connecting to server.", ""); + } else if (var0 == -1) { + class268.setLoginResponseString("No response from server.", "Please try using a different world.", ""); + } else if (var0 == 3) { + Login.loginIndex = 3; + Login.field1212 = 1; + } else if (var0 == 4) { + MouseRecorder.method1137(0); + } else if (var0 == 5) { + Login.field1212 = 2; + class268.setLoginResponseString("Your account has not logged out from its last", "session or the server is too busy right now.", "Please try again in a few minutes."); + } else if (var0 == 68 || !Client.onMobile && var0 == 6) { + class268.setLoginResponseString("RuneScape has been updated!", "Please reload this page.", ""); + } else if (var0 == 7) { + class268.setLoginResponseString("This world is full.", "Please use a different world.", ""); + } else if (var0 == 8) { + class268.setLoginResponseString("Unable to connect.", "Login server offline.", ""); + } else if (var0 == 9) { + class268.setLoginResponseString("Login limit exceeded.", "Too many connections from your address.", ""); + } else if (var0 == 10) { + class268.setLoginResponseString("Unable to connect.", "Bad session id.", ""); + } else if (var0 == 11) { + class268.setLoginResponseString("We suspect someone knows your password.", "Press 'change your password' on front page.", ""); + } else if (var0 == 12) { + class268.setLoginResponseString("You need a members account to login to this world.", "Please subscribe, or use a different world.", ""); + } else if (var0 == 13) { + class268.setLoginResponseString("Could not complete login.", "Please try using a different world.", ""); + } else if (var0 == 14) { + class268.setLoginResponseString("The server is being updated.", "Please wait 1 minute and try again.", ""); + } else if (var0 == 16) { + class268.setLoginResponseString("Too many login attempts.", "Please wait a few minutes before trying again.", ""); + } else if (var0 == 17) { + class268.setLoginResponseString("You are standing in a members-only area.", "To play on this world move to a free area first", ""); + } else if (var0 == 18) { + MouseRecorder.method1137(1); + } else if (var0 == 19) { + class268.setLoginResponseString("This world is running a closed Beta.", "Sorry invited players only.", "Please use a different world."); + } else if (var0 == 20) { + class268.setLoginResponseString("Invalid loginserver requested.", "Please try using a different world.", ""); + } else if (var0 == 22) { + class268.setLoginResponseString("Malformed login packet.", "Please try again.", ""); + } else if (var0 == 23) { + class268.setLoginResponseString("No reply from loginserver.", "Please wait 1 minute and try again.", ""); + } else if (var0 == 24) { + class268.setLoginResponseString("Error loading your profile.", "Please contact customer support.", ""); + } else if (var0 == 25) { + class268.setLoginResponseString("Unexpected loginserver response.", "Please try using a different world.", ""); + } else if (var0 == 26) { + class268.setLoginResponseString("This computers address has been blocked", "as it was used to break our rules.", ""); + } else if (var0 == 27) { + class268.setLoginResponseString("", "Service unavailable.", ""); + } else if (var0 == 31) { + class268.setLoginResponseString("Your account must have a displayname set", "in order to play the game. Please set it", "via the website, or the main game."); + } else if (var0 == 32) { + class268.setLoginResponseString("Your attempt to log into your account was", "unsuccessful. Don't worry, you can sort", "this out by visiting the billing system."); + } else if (var0 == 37) { + class268.setLoginResponseString("Your account is currently inaccessible.", "Please try again in a few minutes.", ""); + } else if (var0 == 38) { + class268.setLoginResponseString("You need to vote to play!", "Visit runescape.com and vote,", "and then come back here!"); + } else if (var0 == 55) { + Login.loginIndex = 8; + } else { + if (var0 == 56) { + class268.setLoginResponseString("Enter the 6-digit code generated by your", "authenticator app.", ""); + class96.updateGameState(11); + return; + } + + if (var0 == 57) { + class268.setLoginResponseString("The code you entered was incorrect.", "Please try again.", ""); + class96.updateGameState(11); + return; + } + + if (var0 == 61) { + Login.loginIndex = 7; + } else { + class268.setLoginResponseString("Unexpected server response", "Please try using a different world.", ""); + } + } + + class96.updateGameState(10); + } +} diff --git a/runescape-client/src/main/java/WorldMapSprite.java b/runescape-client/src/main/java/WorldMapSprite.java new file mode 100644 index 0000000000..610f4d62f3 --- /dev/null +++ b/runescape-client/src/main/java/WorldMapSprite.java @@ -0,0 +1,137 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.Implements; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("av") +@Implements("WorldMapSprite") +public final class WorldMapSprite { + @ObfuscatedName("af") + @Export("client") + @ObfuscatedSignature( + signature = "Lclient;" + ) + static Client client; + @ObfuscatedName("et") + @ObfuscatedSignature( + signature = "Liu;" + ) + @Export("archive17") + static Archive archive17; + @ObfuscatedName("w") + @Export("tileColors") + final int[] tileColors; + + WorldMapSprite() { + this.tileColors = new int[4096]; + } + + WorldMapSprite(int[] var1) { + this.tileColors = var1; + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(IIB)I", + garbageValue = "-97" + ) + @Export("getTileColor") + final int getTileColor(int var1, int var2) { + return this.tileColors[var2 * 64 + var1]; + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Lhp;I)V", + garbageValue = "-2096884458" + ) + @Export("setFloorUnderlayDefinitionArchive") + public static void setFloorUnderlayDefinitionArchive(AbstractArchive var0) { + FloorUnderlayDefinition.FloorUnderlayDefinition_archive = var0; + } + + @ObfuscatedName("hv") + @ObfuscatedSignature( + signature = "(III)V", + garbageValue = "1522656478" + ) + @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); + } + } + } + + @ObfuscatedName("id") + @ObfuscatedSignature( + signature = "([Lhj;Lhj;ZI)V", + garbageValue = "280712117" + ) + @Export("revalidateWidgetScroll") + 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); + if (var1.children != null) { + class13.resizeWidget(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); + } + + if (var1.contentType == 1337) { + } + + } + + @ObfuscatedName("ib") + @ObfuscatedSignature( + signature = "(IIIZI)V", + garbageValue = "-2115353122" + ) + static final void method416(int var0, int var1, int var2, boolean var3) { + if (class162.loadInterface(var0)) { + class13.resizeWidget(Widget.Widget_interfaceComponents[var0], -1, var1, var2, var3); + } + } + + @ObfuscatedName("kd") + @ObfuscatedSignature( + signature = "(Lkf;II)V", + garbageValue = "291436994" + ) + static void method407(Buffer var0, int var1) { + byte[] var2 = var0.array; + if (Client.field693 == null) { + Client.field693 = new byte[24]; + } + + class301.method5752(var2, var1, Client.field693, 0, 24); + if (class167.randomDat != null) { + try { + class167.randomDat.seek(0L); + class167.randomDat.write(var0.array, var1, 24); + } catch (Exception var4) { + } + } + + } +} diff --git a/runescape-client/src/main/java/class146.java b/runescape-client/src/main/java/class146.java new file mode 100644 index 0000000000..bc1f274e98 --- /dev/null +++ b/runescape-client/src/main/java/class146.java @@ -0,0 +1,7 @@ +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("ep") +public interface class146 { + @ObfuscatedName("q") + void method3338(Object var1); +} diff --git a/runescape-client/src/main/java/class162.java b/runescape-client/src/main/java/class162.java new file mode 100644 index 0000000000..18b9b6957c --- /dev/null +++ b/runescape-client/src/main/java/class162.java @@ -0,0 +1,48 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("fm") +public class class162 implements class161 { + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "(II)Z", + garbageValue = "1772418873" + ) + @Export("loadInterface") + public static boolean loadInterface(int var0) { + if (ViewportMouse.loadedInterfaces[var0]) { + return true; + } else if (!Widget.Widget_archive.tryLoadGroup(var0)) { + return false; + } else { + int var1 = Widget.Widget_archive.getGroupFileCount(var0); + if (var1 == 0) { + ViewportMouse.loadedInterfaces[var0] = true; + return true; + } else { + if (Widget.Widget_interfaceComponents[var0] == null) { + Widget.Widget_interfaceComponents[var0] = new Widget[var1]; + } + + 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)); + } + } + } + } + + ViewportMouse.loadedInterfaces[var0] = true; + return true; + } + } + } +} diff --git a/runescape-client/src/main/java/class167.java b/runescape-client/src/main/java/class167.java new file mode 100644 index 0000000000..00cfe9e96f --- /dev/null +++ b/runescape-client/src/main/java/class167.java @@ -0,0 +1,48 @@ +import java.io.File; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ff") +public class class167 { + @ObfuscatedName("p") + static File field2038; + @ObfuscatedName("u") + @ObfuscatedSignature( + signature = "Lmn;" + ) + @Export("randomDat") + public static BufferedFile randomDat; + @ObfuscatedName("x") + @ObfuscatedSignature( + signature = "Lmn;" + ) + @Export("dat2File") + public static BufferedFile dat2File; + @ObfuscatedName("r") + @ObfuscatedSignature( + signature = "Lmn;" + ) + @Export("idx255File") + public static BufferedFile idx255File; + @ObfuscatedName("v") + @ObfuscatedSignature( + signature = "[Lmn;" + ) + @Export("idxFiles") + public static BufferedFile[] idxFiles; + @ObfuscatedName("g") + static String[] field2043; + @ObfuscatedName("dh") + @ObfuscatedSignature( + signature = "Liu;" + ) + @Export("archive1") + static Archive archive1; + + static { + randomDat = null; + dat2File = null; + idx255File = null; + } +} diff --git a/runescape-client/src/main/java/class169.java b/runescape-client/src/main/java/class169.java new file mode 100644 index 0000000000..aab8837352 --- /dev/null +++ b/runescape-client/src/main/java/class169.java @@ -0,0 +1,77 @@ +import java.io.File; +import java.util.Hashtable; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; +import net.runelite.rs.ScriptOpcodes; + +@ObfuscatedName("fy") +public class class169 { + @ObfuscatedName("q") + static boolean field2055; + @ObfuscatedName("w") + static File field2050; + @ObfuscatedName("e") + static Hashtable field2052; + @ObfuscatedName("l") + @Export("isStereo") + protected static boolean isStereo; + @ObfuscatedName("fj") + @ObfuscatedSignature( + signature = "Lku;" + ) + @Export("WorldMapElement_fonts") + static Fonts WorldMapElement_fonts; + @ObfuscatedName("fu") + @ObfuscatedSignature( + signature = "Lke;" + ) + @Export("fontPlain12") + static Font fontPlain12; + + static { + field2055 = false; + field2052 = new Hashtable(16); + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(Lhp;IIIZI)V", + garbageValue = "1090882543" + ) + public static void method3503(AbstractArchive var0, int var1, int var2, int var3, boolean var4) { + class197.field2402 = 1; + GrandExchangeOfferNameComparator.musicTrackArchive = var0; + class197.musicTrackGroupId = var1; + class197.musicTrackFileId = var2; + ScriptFrame.field529 = var3; + BuddyRankComparator.musicTrackBoolean = var4; + class197.field2404 = 10000; + } + + @ObfuscatedName("g") + @ObfuscatedSignature( + signature = "(ILcx;ZI)I", + garbageValue = "-786180451" + ) + static int method3501(int var0, Script var1, boolean var2) { + Widget var3 = var2 ? Interpreter.field1111 : Calendar.field2507; + if (var0 == ScriptOpcodes.CC_GETINVOBJECT) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3.itemId; + return 1; + } else if (var0 == ScriptOpcodes.CC_GETINVCOUNT) { + if (var3.itemId != -1) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3.itemQuantity; + } else { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = 0; + } + + return 1; + } else if (var0 == ScriptOpcodes.CC_GETID) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3.childIndex; + return 1; + } else { + return 2; + } + } +} diff --git a/runescape-client/src/main/java/class173.java b/runescape-client/src/main/java/class173.java new file mode 100644 index 0000000000..ee70bbd19c --- /dev/null +++ b/runescape-client/src/main/java/class173.java @@ -0,0 +1,51 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("fo") +public class class173 { + @ObfuscatedName("e") + @Export("directions") + public static int[][] directions; + @ObfuscatedName("p") + @Export("distances") + public static int[][] distances; + @ObfuscatedName("k") + @ObfuscatedGetter( + intValue = 1613442925 + ) + public static int field2088; + @ObfuscatedName("i") + @Export("bufferX") + public static int[] bufferX; + @ObfuscatedName("c") + @Export("bufferY") + public static int[] bufferY; + @ObfuscatedName("gq") + @ObfuscatedSignature( + signature = "[Lly;" + ) + @Export("headIconHintSprites") + static Sprite[] headIconHintSprites; + + static { + directions = new int[128][128]; + distances = new int[128][128]; + bufferX = new int[4096]; + bufferY = new int[4096]; + } + + @ObfuscatedName("r") + @ObfuscatedSignature( + signature = "(I)Lfu;", + garbageValue = "-1483717574" + ) + public static Clock method3589() { + try { + return new NanoClock(); + } catch (Throwable var1) { + return new MilliClock(); + } + } +} diff --git a/runescape-client/src/main/java/class181.java b/runescape-client/src/main/java/class181.java new file mode 100644 index 0000000000..bf3501e302 --- /dev/null +++ b/runescape-client/src/main/java/class181.java @@ -0,0 +1,5 @@ +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("fh") +public interface class181 { +} diff --git a/runescape-client/src/main/java/class185.java b/runescape-client/src/main/java/class185.java new file mode 100644 index 0000000000..ba8d58b211 --- /dev/null +++ b/runescape-client/src/main/java/class185.java @@ -0,0 +1,159 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("gw") +public class class185 { + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2322; + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2316; + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2318; + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2317; + @ObfuscatedName("k") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2324; + @ObfuscatedName("l") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2319; + @ObfuscatedName("b") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2320; + @ObfuscatedName("i") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2321; + @ObfuscatedName("c") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2315; + @ObfuscatedName("f") + @ObfuscatedSignature( + signature = "Lgw;" + ) + public static final class185 field2323; + + static { + field2322 = new class185(7); + field2316 = new class185(15); + field2318 = new class185(14); + field2317 = new class185(6); + field2324 = new class185(4); + field2319 = new class185(5); + field2320 = new class185(2); + field2321 = new class185(3); + field2315 = new class185(5); + field2323 = new class185(4); + } + + @ObfuscatedSignature( + signature = "(I)V", + garbageValue = "7" + ) + class185(int var1) { + } + + @ObfuscatedName("c") + @ObfuscatedSignature( + signature = "(CI)Z", + garbageValue = "2012637233" + ) + @Export("isCharAlphabetic") + public static boolean isCharAlphabetic(char var0) { + return var0 >= 'A' && var0 <= 'Z' || var0 >= 'a' && var0 <= 'z'; + } + + @ObfuscatedName("x") + @ObfuscatedSignature( + signature = "([BB)V", + garbageValue = "-41" + ) + @Export("SpriteBuffer_decode") + static void SpriteBuffer_decode(byte[] var0) { + Buffer var1 = new Buffer(var0); + var1.offset = var0.length - 2; + class326.SpriteBuffer_spriteCount = var1.readUnsignedShort(); + Varps.SpriteBuffer_xOffsets = new int[class326.SpriteBuffer_spriteCount]; + class326.SpriteBuffer_yOffsets = new int[class326.SpriteBuffer_spriteCount]; + class326.SpriteBuffer_spriteWidths = new int[class326.SpriteBuffer_spriteCount]; + class216.SpriteBuffer_spriteHeights = new int[class326.SpriteBuffer_spriteCount]; + class326.SpriteBuffer_pixels = new byte[class326.SpriteBuffer_spriteCount][]; + var1.offset = var0.length - 7 - class326.SpriteBuffer_spriteCount * 8; + class326.SpriteBuffer_spriteWidth = var1.readUnsignedShort(); + class326.SpriteBuffer_spriteHeight = var1.readUnsignedShort(); + int var2 = (var1.readUnsignedByte() & 255) + 1; + + int var3; + for (var3 = 0; var3 < class326.SpriteBuffer_spriteCount; ++var3) { + Varps.SpriteBuffer_xOffsets[var3] = var1.readUnsignedShort(); + } + + for (var3 = 0; var3 < class326.SpriteBuffer_spriteCount; ++var3) { + class326.SpriteBuffer_yOffsets[var3] = var1.readUnsignedShort(); + } + + for (var3 = 0; var3 < class326.SpriteBuffer_spriteCount; ++var3) { + class326.SpriteBuffer_spriteWidths[var3] = var1.readUnsignedShort(); + } + + for (var3 = 0; var3 < class326.SpriteBuffer_spriteCount; ++var3) { + class216.SpriteBuffer_spriteHeights[var3] = var1.readUnsignedShort(); + } + + var1.offset = var0.length - 7 - class326.SpriteBuffer_spriteCount * 8 - (var2 - 1) * 3; + Frames.SpriteBuffer_spritePalette = new int[var2]; + + for (var3 = 1; var3 < var2; ++var3) { + Frames.SpriteBuffer_spritePalette[var3] = var1.readMedium(); + if (Frames.SpriteBuffer_spritePalette[var3] == 0) { + Frames.SpriteBuffer_spritePalette[var3] = 1; + } + } + + var1.offset = 0; + + for (var3 = 0; var3 < class326.SpriteBuffer_spriteCount; ++var3) { + int var4 = class326.SpriteBuffer_spriteWidths[var3]; + int var5 = class216.SpriteBuffer_spriteHeights[var3]; + int var6 = var5 * var4; + byte[] var7 = new byte[var6]; + class326.SpriteBuffer_pixels[var3] = var7; + int var8 = var1.readUnsignedByte(); + int var9; + if (var8 == 0) { + for (var9 = 0; var9 < var6; ++var9) { + var7[var9] = var1.readByte(); + } + } else if (var8 == 1) { + for (var9 = 0; var9 < var4; ++var9) { + for (int var10 = 0; var10 < var5; ++var10) { + var7[var9 + var10 * var4] = var1.readByte(); + } + } + } + } + + } +} diff --git a/runescape-client/src/main/java/class186.java b/runescape-client/src/main/java/class186.java new file mode 100644 index 0000000000..aaef242b97 --- /dev/null +++ b/runescape-client/src/main/java/class186.java @@ -0,0 +1,48 @@ +import java.io.File; +import java.io.RandomAccessFile; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("gs") +public class class186 { + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(Ljava/io/File;ZS)Z", + garbageValue = "25650" + ) + static boolean method3618(File var0, boolean var1) { + try { + RandomAccessFile var2 = new RandomAccessFile(var0, "rw"); + int var3 = var2.read(); + var2.seek(0L); + var2.write(var3); + var2.seek(0L); + var2.close(); + if (var1) { + var0.delete(); + } + + return true; + } catch (Exception var4) { + return false; + } + } + + @ObfuscatedName("fz") + @ObfuscatedSignature( + signature = "(B)V", + garbageValue = "33" + ) + @Export("playPcmPlayers") + static final void playPcmPlayers() { + if (class190.pcmPlayer1 != null) { + class190.pcmPlayer1.run(); + } + + if (class80.pcmPlayer0 != null) { + class80.pcmPlayer0.run(); + } + + } +} diff --git a/runescape-client/src/main/java/class188.java b/runescape-client/src/main/java/class188.java new file mode 100644 index 0000000000..bbf01ec189 --- /dev/null +++ b/runescape-client/src/main/java/class188.java @@ -0,0 +1,307 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("gp") +public class class188 { + @ObfuscatedName("q") + static int[] field2339; + + static { + new Object(); + field2339 = new int[33]; + field2339[0] = 0; + int var0 = 2; + + for (int var1 = 1; var1 < 33; ++var1) { + field2339[var1] = var0 - 1; + var0 += var0; + } + + } + + @ObfuscatedName("c") + @ObfuscatedSignature( + signature = "(Lke;Lke;B)V", + garbageValue = "11" + ) + static void method3643(Font var0, Font var1) { + Archive var3; + int var4; + int var5; + if (WorldMapID.worldSelectBackSprites == null) { + var3 = Client.archive8; + var4 = var3.getGroupId("sl_back"); + var5 = var3.getFileId(var4, ""); + Sprite[] var2 = TilePaint.method3062(var3, var4, var5); + WorldMapID.worldSelectBackSprites = var2; + } + + IndexedSprite[] var25; + if (SecureRandomCallable.worldSelectFlagSprites == null) { + var3 = Client.archive8; + var4 = var3.getGroupId("sl_flags"); + var5 = var3.getFileId(var4, ""); + var25 = class289.method5281(var3, var4, var5); + SecureRandomCallable.worldSelectFlagSprites = var25; + } + + if (class225.worldSelectArrows == null) { + var3 = Client.archive8; + var4 = var3.getGroupId("sl_arrows"); + var5 = var3.getFileId(var4, ""); + var25 = class289.method5281(var3, var4, var5); + class225.worldSelectArrows = var25; + } + + if (FriendSystem.worldSelectStars == null) { + var3 = Client.archive8; + var4 = var3.getGroupId("sl_stars"); + var5 = var3.getFileId(var4, ""); + var25 = class289.method5281(var3, var4, var5); + FriendSystem.worldSelectStars = var25; + } + + if (Login.worldSelectLeftSprite == null) { + Login.worldSelectLeftSprite = class215.loadIndexedSpriteByName(Client.archive8, "leftarrow", ""); + } + + if (NPCDefinition.worldSelectRightSprite == null) { + NPCDefinition.worldSelectRightSprite = class215.loadIndexedSpriteByName(Client.archive8, "rightarrow", ""); + } + + Rasterizer2D.Rasterizer2D_fillRectangle(Login.xPadding, 23, 765, 480, 0); + Rasterizer2D.Rasterizer2D_fillRectangleGradient(Login.xPadding, 0, 125, 23, 12425273, 9135624); + Rasterizer2D.Rasterizer2D_fillRectangleGradient(Login.xPadding + 125, 0, 640, 23, 5197647, 2697513); + 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); + FriendSystem.worldSelectStars[0].drawAt(Login.xPadding + 140, 12); + var1.draw("Free world", Login.xPadding + 152, 21, 16777215, -1); + } + + if (class225.worldSelectArrows != null) { + int var22 = Login.xPadding + 280; + if (World.sortOption1[0] == 0 && World.sortOption2[0] == 0) { + class225.worldSelectArrows[2].drawAt(var22, 4); + } else { + class225.worldSelectArrows[0].drawAt(var22, 4); + } + + if (World.sortOption1[0] == 0 && World.sortOption2[0] == 1) { + class225.worldSelectArrows[3].drawAt(var22 + 15, 4); + } else { + class225.worldSelectArrows[1].drawAt(var22 + 15, 4); + } + + var0.draw("World", var22 + 32, 17, 16777215, -1); + int var23 = Login.xPadding + 390; + if (World.sortOption1[0] == 1 && World.sortOption2[0] == 0) { + class225.worldSelectArrows[2].drawAt(var23, 4); + } else { + class225.worldSelectArrows[0].drawAt(var23, 4); + } + + if (World.sortOption1[0] == 1 && World.sortOption2[0] == 1) { + class225.worldSelectArrows[3].drawAt(var23 + 15, 4); + } else { + class225.worldSelectArrows[1].drawAt(var23 + 15, 4); + } + + var0.draw("Players", var23 + 32, 17, 16777215, -1); + var4 = Login.xPadding + 500; + if (World.sortOption1[0] == 2 && World.sortOption2[0] == 0) { + class225.worldSelectArrows[2].drawAt(var4, 4); + } else { + class225.worldSelectArrows[0].drawAt(var4, 4); + } + + if (World.sortOption1[0] == 2 && World.sortOption2[0] == 1) { + class225.worldSelectArrows[3].drawAt(var4 + 15, 4); + } else { + class225.worldSelectArrows[1].drawAt(var4 + 15, 4); + } + + var0.draw("Location", var4 + 32, 17, 16777215, -1); + var5 = Login.xPadding + 610; + if (World.sortOption1[0] == 3 && World.sortOption2[0] == 0) { + class225.worldSelectArrows[2].drawAt(var5, 4); + } else { + class225.worldSelectArrows[0].drawAt(var5, 4); + } + + if (World.sortOption1[0] == 3 && World.sortOption2[0] == 1) { + class225.worldSelectArrows[3].drawAt(var5 + 15, 4); + } else { + class225.worldSelectArrows[1].drawAt(var5 + 15, 4); + } + + var0.draw("Type", var5 + 32, 17, 16777215, -1); + } + + Rasterizer2D.Rasterizer2D_fillRectangle(Login.xPadding + 708, 4, 50, 16, 0); + var1.drawCentered("Cancel", Login.xPadding + 708 + 25, 16, 16777215, -1); + Login.hoveredWorldIndex = -1; + if (WorldMapID.worldSelectBackSprites != null) { + byte var27 = 88; + byte var28 = 19; + var4 = 765 / (var27 + 1) - 1; + var5 = 480 / (var28 + 1); + + int var6; + int var7; + do { + var6 = var5; + var7 = var4; + if (var5 * (var4 - 1) >= World.worldsCount) { + --var4; + } + + if (var4 * (var5 - 1) >= World.worldsCount) { + --var5; + } + + if (var4 * (var5 - 1) >= World.worldsCount) { + --var5; + } + } while(var6 != var5 || var7 != var4); + + var6 = (765 - var4 * var27) / (var4 + 1); + if (var6 > 5) { + var6 = 5; + } + + var7 = (480 - var5 * var28) / (var5 + 1); + if (var7 > 5) { + var7 = 5; + } + + int var8 = (765 - var4 * var27 - var6 * (var4 - 1)) / 2; + int var9 = (480 - var28 * var5 - var7 * (var5 - 1)) / 2; + int var10 = (var5 + World.worldsCount - 1) / var5; + Login.worldSelectPagesCount = var10 - var4; + if (Login.worldSelectLeftSprite != null && Login.worldSelectPage > 0) { + Login.worldSelectLeftSprite.drawAt(8, ParamDefinition.canvasHeight / 2 - Login.worldSelectLeftSprite.subHeight / 2); + } + + if (NPCDefinition.worldSelectRightSprite != null && Login.worldSelectPage < Login.worldSelectPagesCount) { + NPCDefinition.worldSelectRightSprite.drawAt(GrandExchangeEvent.canvasWidth - NPCDefinition.worldSelectRightSprite.subWidth - 8, ParamDefinition.canvasHeight / 2 - NPCDefinition.worldSelectRightSprite.subHeight / 2); + } + + int var11 = var9 + 23; + int var12 = var8 + Login.xPadding; + int var13 = 0; + boolean var14 = false; + int var15 = Login.worldSelectPage; + + int var16; + for (var16 = var5 * var15; var16 < World.worldsCount && var15 - Login.worldSelectPage < var4; ++var16) { + World var24 = World.worlds[var16]; + boolean var18 = true; + String var19 = Integer.toString(var24.population); + if (var24.population == -1) { + var19 = "OFF"; + var18 = false; + } else if (var24.population > 1980) { + var19 = "FULL"; + var18 = false; + } + + int var21 = 0; + byte var20; + if (var24.isBeta()) { + if (var24.isMembersOnly()) { + var20 = 7; + } else { + var20 = 6; + } + } else if (var24.isDeadman()) { + var21 = 16711680; + if (var24.isMembersOnly()) { + var20 = 5; + } else { + var20 = 4; + } + } else if (var24.isPvp()) { + if (var24.isMembersOnly()) { + var20 = 3; + } else { + var20 = 2; + } + } else if (var24.isMembersOnly()) { + var20 = 1; + } else { + var20 = 0; + } + + 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); + var14 = true; + } else { + WorldMapID.worldSelectBackSprites[var20].drawAt(var12, var11); + } + + if (SecureRandomCallable.worldSelectFlagSprites != null) { + SecureRandomCallable.worldSelectFlagSprites[(var24.isMembersOnly() ? 8 : 0) + var24.location].drawAt(var12 + 29, var11); + } + + 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); + var11 = var11 + var7 + var28; + ++var13; + if (var13 >= var5) { + var11 = var9 + 23; + var12 = var12 + var6 + var27; + var13 = 0; + ++var15; + } + } + + if (var14) { + var16 = var1.stringWidth(World.worlds[Login.hoveredWorldIndex].activity) + 6; + int var17 = var1.ascent + 8; + int var26 = MouseHandler.MouseHandler_y + 25; + if (var17 + var26 > 480) { + var26 = MouseHandler.MouseHandler_y - 25 - var17; + } + + Rasterizer2D.Rasterizer2D_fillRectangle(MouseHandler.MouseHandler_x - var16 / 2, var26, var16, var17, 16777120); + Rasterizer2D.Rasterizer2D_drawRectangle(MouseHandler.MouseHandler_x - var16 / 2, var26, var16, var17, 0); + var1.drawCentered(World.worlds[Login.hoveredWorldIndex].activity, MouseHandler.MouseHandler_x, var26 + var1.ascent + 4, 0, -1); + } + } + + MusicPatchPcmStream.rasterProvider.drawFull(0, 0); + } + + @ObfuscatedName("hi") + @ObfuscatedSignature( + signature = "(Ljava/lang/String;Ljava/lang/String;IIIII)V", + garbageValue = "730328145" + ) + @Export("insertMenuItemNoShift") + public static final void insertMenuItemNoShift(String var0, String var1, int var2, int var3, int var4, int var5) { + Entity.insertMenuItem(var0, var1, var2, var3, var4, var5, false); + } + + @ObfuscatedName("ig") + @ObfuscatedSignature( + signature = "(II)Ljava/lang/String;", + garbageValue = "434520276" + ) + static final String method3631(int var0) { + String var1 = Integer.toString(var0); + + for (int var2 = var1.length() - 3; var2 > 0; var2 -= 3) { + var1 = var1.substring(0, var2) + "," + var1.substring(var2); + } + + if (var1.length() > 9) { + return " " + ClientPreferences.colorStartTag(65408) + var1.substring(0, var1.length() - 8) + "M" + " " + " (" + var1 + ")" + ""; + } else { + return var1.length() > 6 ? " " + ClientPreferences.colorStartTag(16777215) + var1.substring(0, var1.length() - 4) + "K" + " " + " (" + var1 + ")" + "" : " " + ClientPreferences.colorStartTag(16776960) + var1 + ""; + } + } +} diff --git a/runescape-client/src/main/java/class189.java b/runescape-client/src/main/java/class189.java new file mode 100644 index 0000000000..2b7db3cb75 --- /dev/null +++ b/runescape-client/src/main/java/class189.java @@ -0,0 +1,358 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ge") +public class class189 { + @ObfuscatedName("c") + @Export("ByteArrayPool_arrays") + public static byte[][][] ByteArrayPool_arrays; + + @ObfuscatedName("b") + @ObfuscatedSignature( + signature = "(Lke;Lke;Lke;B)V", + garbageValue = "49" + ) + @Export("drawTitle") + static void drawTitle(Font var0, Font var1, Font var2) { + Login.xPadding = (GrandExchangeEvent.canvasWidth - 765) / 2; + Login.loginBoxX = Login.xPadding + 202; + ScriptEvent.loginBoxCenter = Login.loginBoxX + 180; + if (Login.worldSelectOpen) { + class188.method3643(var0, var1); + } else { + GrandExchangeOfferWorldComparator.leftTitleSprite.drawAt(Login.xPadding, 0); + NPC.rightTitleSprite.drawAt(Login.xPadding + 382, 0); + GroundItem.logoSprite.drawAt(Login.xPadding + 382 - GroundItem.logoSprite.subWidth / 2, 18); + 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); + 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); + } + + String var5; + String var6; + short var22; + int var23; + short var24; + 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); + var23 = var22 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var23 += 7; + if (Login.loginIndex != 4) { + var0.draw("Login: ", Login.loginBoxX + 180 - 110, var23, 16777215, 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); + var23 += 15; + var0.draw("Password: " + ClientPacket.method3612(Login.Login_password), Login.loginBoxX + 180 - 108, var23, 16777215, 0); + var23 += 15; + } + } + + if (Client.gameState == 10 || Client.gameState == 11) { + Login.titleboxSprite.drawAt(Login.loginBoxX, 171); + short var17; + if (Login.loginIndex == 0) { + var22 = 251; + var0.drawCentered("Welcome to RuneScape", Login.loginBoxX + 180, var22, 16776960, 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); + 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); + } else if (Login.loginIndex == 1) { + var0.drawCentered(Login.Login_response0, Login.loginBoxX + 180, 201, 16776960, 0); + var22 = 236; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16777215, 0); + var23 = var22 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16777215, 0); + var23 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16777215, 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); + var4 = Login.loginBoxX + 180 + 80; + VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); + var0.drawCentered("Cancel", var4, var17 + 5, 16777215, 0); + } else { + int var7; + if (Login.loginIndex == 2) { + var22 = 201; + var0.drawCentered(Login.Login_response1, ScriptEvent.loginBoxCenter, var22, 16776960, 0); + var23 = var22 + 15; + var0.drawCentered(Login.Login_response2, ScriptEvent.loginBoxCenter, var23, 16776960, 0); + var23 += 15; + var0.drawCentered(Login.Login_response3, ScriptEvent.loginBoxCenter, var23, 16776960, 0); + var23 += 15; + var23 += 7; + var0.draw("Login: ", ScriptEvent.loginBoxCenter - 110, var23, 16777215, 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); + 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); + var23 += 15; + var22 = 277; + var7 = ScriptEvent.loginBoxCenter + -117; + boolean var9 = Client.Login_isUsernameRemembered; + boolean var10 = Login.field1199; + 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); + 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); + 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); + var15 = ScriptEvent.loginBoxCenter + 80; + VarpDefinition.titlebuttonSprite.drawAt(var15 - 73, var16 - 20); + var0.drawCentered("Cancel", var15, var16 + 5, 16777215, 0); + var22 = 357; + switch(Login.field1212) { + case 2: + UserComparator5.field1986 = "Having trouble logging in?"; + break; + default: + UserComparator5.field1986 = "Can't login? Click here."; + } + + 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); + } else if (Login.loginIndex == 3) { + var22 = 201; + var0.drawCentered("Invalid credentials.", Login.loginBoxX + 180, var22, 16776960, 0); + var23 = var22 + 20; + var1.drawCentered("For accounts created after 24th November 2010, please use your", Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var1.drawCentered("email address to login. Otherwise please login with your username.", Login.loginBoxX + 180, var23, 16776960, 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); + var4 = Login.loginBoxX + 180; + var17 = 326; + VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); + var2.drawCentered("Forgotten password?", var4, var17 + 5, 16777215, 0); + } else { + short var20; + if (Login.loginIndex == 4) { + var0.drawCentered("Authenticator", Login.loginBoxX + 180, 201, 16776960, 0); + var22 = 236; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16777215, 0); + var23 = var22 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16777215, 0); + var23 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16777215, 0); + var23 += 15; + var0.draw("PIN: " + ClientPacket.method3612(WorldMapManager.otp) + (Client.cycle % 40 < 20 ? ClientPreferences.colorStartTag(16776960) + "|" : ""), Login.loginBoxX + 180 - 108, var23, 16777215, 0); + var23 -= 8; + var0.draw("Trust this computer", Login.loginBoxX + 180 - 9, var23, 16776960, 0); + var23 += 15; + var0.draw("for 30 days: ", Login.loginBoxX + 180 - 9, var23, 16776960, 0); + var4 = Login.loginBoxX + 180 - 9 + var0.stringWidth("for 30 days: ") + 15; + int var26 = var23 - var0.ascent; + IndexedSprite var25; + if (Login.field1201) { + var25 = Decimator.options_buttons_2Sprite; + } else { + var25 = Login.options_buttons_0Sprite; + } + + var25.drawAt(var4, var26); + var23 += 15; + var7 = Login.loginBoxX + 180 - 80; + var20 = 321; + VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); + var0.drawCentered("Continue", var7, var20 + 5, 16777215, 0); + var7 = Login.loginBoxX + 180 + 80; + VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); + var0.drawCentered("Cancel", var7, var20 + 5, 16777215, 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); + var22 = 221; + var2.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16776960, 0); + var23 = var22 + 15; + var2.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var2.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var23 += 14; + var0.draw("Username/email: ", Login.loginBoxX + 180 - 145, var23, 16777215, 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); + var23 += 15; + var7 = Login.loginBoxX + 180 - 80; + var20 = 321; + VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); + var0.drawCentered("Recover", var7, var20 + 5, 16777215, 0); + var7 = Login.loginBoxX + 180 + 80; + VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); + var0.drawCentered("Back", var7, var20 + 5, 16777215, 0); + var20 = 356; + var1.drawCentered("Still having trouble logging in?", ScriptEvent.loginBoxCenter, var20, 268435455, 0); + } else if (Login.loginIndex == 6) { + var22 = 201; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16776960, 0); + var23 = var22 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var4 = Login.loginBoxX + 180; + var17 = 321; + VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); + var0.drawCentered("Back", var4, var17 + 5, 16777215, 0); + } else if (Login.loginIndex == 7) { + var22 = 216; + var0.drawCentered("Your date of birth isn't set.", Login.loginBoxX + 180, var22, 16776960, 0); + var23 = var22 + 15; + var2.drawCentered("Please verify your account status by", Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var2.drawCentered("setting your date of birth.", Login.loginBoxX + 180, var23, 16776960, 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); + var4 = Login.loginBoxX + 180 + 80; + VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); + var0.drawCentered("Back", var4, var17 + 5, 16777215, 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); + var23 = var22 + 15; + var2.drawCentered("For more information, please take a look at", Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var2.drawCentered("our privacy policy.", Login.loginBoxX + 180, var23, 16776960, 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); + var4 = Login.loginBoxX + 180 + 80; + VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); + var0.drawCentered("Back", var4, var17 + 5, 16777215, 0); + } else if (Login.loginIndex == 12) { + var22 = 201; + String var21 = ""; + var5 = ""; + var6 = ""; + switch(Login.field1182) { + case 0: + var21 = "Your account has been disabled."; + var5 = Strings.field2811; + var6 = ""; + break; + case 1: + var21 = "Account locked as we suspect it has been stolen."; + var5 = Strings.field2961; + var6 = ""; + break; + default: + FaceNormal.method3266(false); + } + + var0.drawCentered(var21, Login.loginBoxX + 180, var22, 16776960, 0); + var23 = var22 + 15; + var2.drawCentered(var5, Login.loginBoxX + 180, var23, 16776960, 0); + var23 += 15; + var2.drawCentered(var6, Login.loginBoxX + 180, var23, 16776960, 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); + var7 = Login.loginBoxX + 180; + var20 = 326; + VarpDefinition.titlebuttonSprite.drawAt(var7 - 73, var20 - 20); + var0.drawCentered("Back", var7, var20 + 5, 16777215, 0); + } else if (Login.loginIndex == 24) { + var22 = 221; + var0.drawCentered(Login.Login_response1, Login.loginBoxX + 180, var22, 16777215, 0); + var23 = var22 + 15; + var0.drawCentered(Login.Login_response2, Login.loginBoxX + 180, var23, 16777215, 0); + var23 += 15; + var0.drawCentered(Login.Login_response3, Login.loginBoxX + 180, var23, 16777215, 0); + var23 += 15; + var4 = Login.loginBoxX + 180; + var17 = 301; + VarpDefinition.titlebuttonSprite.drawAt(var4 - 73, var17 - 20); + var0.drawCentered("Ok", var4, var17 + 5, 16777215, 0); + } + } + } + } + + if (Client.gameState >= 10) { + int[] var18 = new int[4]; + Rasterizer2D.Rasterizer2D_getClipArray(var18); + Rasterizer2D.Rasterizer2D_setClip(Login.xPadding, 0, Login.xPadding + 765, ParamDefinition.canvasHeight); + Ignored.loginScreenRunesAnimation.draw(Login.xPadding - 22, Client.cycle); + Ignored.loginScreenRunesAnimation.draw(Login.xPadding + 22 + 765 - 128, Client.cycle); + Rasterizer2D.Rasterizer2D_setClipArray(var18); + } + + Login.title_muteSprite[WorldMapLabelSize.clientPreferences.titleMusicDisabled ? 1 : 0].drawAt(Login.xPadding + 765 - 40, 463); + if (Client.gameState > 5 && ScriptFrame.field528 == class190.field2348) { + if (class30.field264 != null) { + var23 = Login.xPadding + 5; + var24 = 463; + 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); + if (World.field1027 != null) { + var1.drawCentered("Loading...", var27 / 2 + var23, var19 / 2 + var24 + 12, 16777215, 0); + } else { + var1.drawCentered("Click to switch", var27 / 2 + var23, var19 / 2 + var24 + 12, 16777215, 0); + } + } else { + class30.field264 = class215.loadIndexedSpriteByName(Client.archive8, "sl_button", ""); + } + } + + } + } +} diff --git a/runescape-client/src/main/java/class191.java b/runescape-client/src/main/java/class191.java new file mode 100644 index 0000000000..34e52834c7 --- /dev/null +++ b/runescape-client/src/main/java/class191.java @@ -0,0 +1,64 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("gj") +public class class191 { + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "Lgj;" + ) + static final class191 field2365; + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "Lgj;" + ) + static final class191 field2362; + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "Lgj;" + ) + static final class191 field2364; + @ObfuscatedName("dg") + @ObfuscatedSignature( + signature = "Lfa;" + ) + @Export("js5SocketTask") + static Task js5SocketTask; + + static { + field2365 = new class191(); + field2362 = new class191(); + field2364 = new class191(); + } + + class191() { + } + + @ObfuscatedName("iu") + @ObfuscatedSignature( + signature = "(IIIIIIIII)V", + garbageValue = "-474414027" + ) + @Export("drawWidgets") + static final void drawWidgets(int var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) { + if (class162.loadInterface(var0)) { + 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); + WorldMapIcon_1.field188 = null; + } + + } else { + if (var7 != -1) { + Client.field843[var7] = true; + } else { + for (int var8 = 0; var8 < 100; ++var8) { + Client.field843[var8] = true; + } + } + + } + } +} diff --git a/runescape-client/src/main/java/class195.java b/runescape-client/src/main/java/class195.java new file mode 100644 index 0000000000..766931d90c --- /dev/null +++ b/runescape-client/src/main/java/class195.java @@ -0,0 +1,62 @@ +import java.util.HashMap; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("gr") +public class class195 { + static { + new HashMap(); + } + + @ObfuscatedName("l") + @ObfuscatedSignature( + signature = "(IZI)Ljava/lang/String;", + garbageValue = "-808579598" + ) + @Export("intToString") + public static String intToString(int var0, boolean var1) { + if (var1 && var0 >= 0) { + int var3 = var0; + String var2; + if (var1 && var0 >= 0) { + int var4 = 2; + + for (int var5 = var0 / 10; var5 != 0; ++var4) { + var5 /= 10; + } + + char[] var6 = new char[var4]; + var6[0] = '+'; + + for (int var7 = var4 - 1; var7 > 0; --var7) { + int var8 = var3; + var3 /= 10; + int var9 = var8 - var3 * 10; + if (var9 >= 10) { + var6[var7] = (char)(var9 + 87); + } else { + var6[var7] = (char)(var9 + 48); + } + } + + var2 = new String(var6); + } else { + var2 = Integer.toString(var0, 10); + } + + return var2; + } else { + return Integer.toString(var0); + } + } + + @ObfuscatedName("i") + @ObfuscatedSignature( + signature = "(IB)Z", + garbageValue = "-18" + ) + public static boolean method3685(int var0) { + return (var0 >> 31 & 1) != 0; + } +} diff --git a/runescape-client/src/main/java/class208.java b/runescape-client/src/main/java/class208.java new file mode 100644 index 0000000000..11ac56cb0c --- /dev/null +++ b/runescape-client/src/main/java/class208.java @@ -0,0 +1,186 @@ +import java.util.Date; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; +import net.runelite.rs.ScriptOpcodes; + +@ObfuscatedName("ha") +public class class208 { + @ObfuscatedName("ax") + @ObfuscatedSignature( + signature = "(ILcx;ZB)I", + garbageValue = "17" + ) + static int method3941(int var0, Script var1, boolean var2) { + String var3; + int var4; + if (var0 == ScriptOpcodes.APPEND_NUM) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + var4 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3 + var4; + return 1; + } else { + String var9; + if (var0 == ScriptOpcodes.APPEND) { + Skills.Interpreter_stringStackSize -= 2; + var3 = Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize]; + var9 = Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize + 1]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3 + var9; + return 1; + } else if (var0 == ScriptOpcodes.APPEND_SIGNNUM) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + var4 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3 + class195.intToString(var4, true); + return 1; + } else if (var0 == ScriptOpcodes.LOWERCASE) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3.toLowerCase(); + return 1; + } else { + int var6; + int var10; + if (var0 == ScriptOpcodes.FROMDATE) { + var10 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + long var11 = (11745L + (long)var10) * 86400000L; + Interpreter.Interpreter_calendar.setTime(new Date(var11)); + var6 = Interpreter.Interpreter_calendar.get(5); + int var16 = Interpreter.Interpreter_calendar.get(2); + int var8 = Interpreter.Interpreter_calendar.get(1); + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var6 + "-" + Interpreter.Interpreter_MONTHS[var16] + "-" + var8; + return 1; + } else if (var0 != ScriptOpcodes.TEXT_GENDER) { + if (var0 == ScriptOpcodes.TOSTRING) { + var10 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = Integer.toString(var10); + return 1; + } else if (var0 == ScriptOpcodes.COMPARE) { + Skills.Interpreter_stringStackSize -= 2; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = WallDecoration.method3292(MenuAction.method1993(Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize], Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize + 1], ScriptFrame.field528)); + return 1; + } else { + int var5; + byte[] var13; + Font var14; + if (var0 == ScriptOpcodes.PARAHEIGHT) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + HealthBarUpdate.Interpreter_intStackSize -= 2; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; + var5 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + var13 = class2.archive13.takeFile(var5, 0); + var14 = new Font(var13); + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var14.lineCount(var3, var4); + return 1; + } else if (var0 == ScriptOpcodes.PARAWIDTH) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + HealthBarUpdate.Interpreter_intStackSize -= 2; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; + var5 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + var13 = class2.archive13.takeFile(var5, 0); + var14 = new Font(var13); + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var14.lineWidth(var3, var4); + return 1; + } else if (var0 == ScriptOpcodes.TEXT_SWITCH) { + Skills.Interpreter_stringStackSize -= 2; + var3 = Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize]; + var9 = Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize + 1]; + if (Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize] == 1) { + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3; + } else { + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var9; + } + + return 1; + } else if (var0 == ScriptOpcodes.ESCAPE) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = AbstractFont.escapeBrackets(var3); + return 1; + } else if (var0 == ScriptOpcodes.APPEND_CHAR) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + var4 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3 + (char)var4; + return 1; + } else if (var0 == ScriptOpcodes.CHAR_ISPRINTABLE) { + var10 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = Ignored.isCharPrintable((char)var10) ? 1 : 0; + return 1; + } else if (var0 == ScriptOpcodes.CHAR_ISALPHANUMERIC) { + var10 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = GrandExchangeOfferOwnWorldComparator.isAlphaNumeric((char)var10) ? 1 : 0; + return 1; + } else if (var0 == ScriptOpcodes.CHAR_ISALPHA) { + var10 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = class185.isCharAlphabetic((char)var10) ? 1 : 0; + return 1; + } else 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; + return 1; + } else if (var0 == ScriptOpcodes.STRING_LENGTH) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + if (var3 != null) { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3.length(); + } else { + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = 0; + } + + return 1; + } else if (var0 == ScriptOpcodes.SUBSTRING) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + HealthBarUpdate.Interpreter_intStackSize -= 2; + var4 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize]; + var5 = Interpreter.Interpreter_intStack[HealthBarUpdate.Interpreter_intStackSize + 1]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3.substring(var4, var5); + return 1; + } else if (var0 == ScriptOpcodes.REMOVETAGS) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + StringBuilder var17 = new StringBuilder(var3.length()); + boolean var15 = false; + + for (var6 = 0; var6 < var3.length(); ++var6) { + char var7 = var3.charAt(var6); + if (var7 == '<') { + var15 = true; + } else if (var7 == '>') { + var15 = false; + } else if (!var15) { + var17.append(var7); + } + } + + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var17.toString(); + return 1; + } else if (var0 == ScriptOpcodes.STRING_INDEXOF_CHAR) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + var4 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3.indexOf(var4); + return 1; + } else if (var0 == ScriptOpcodes.STRING_INDEXOF_STRING) { + Skills.Interpreter_stringStackSize -= 2; + var3 = Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize]; + var9 = Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize + 1]; + var5 = Interpreter.Interpreter_intStack[--HealthBarUpdate.Interpreter_intStackSize]; + Interpreter.Interpreter_intStack[++HealthBarUpdate.Interpreter_intStackSize - 1] = var3.indexOf(var9, var5); + return 1; + } else if (var0 == ScriptOpcodes.UPPERCASE) { + var3 = Interpreter.Interpreter_stringStack[--Skills.Interpreter_stringStackSize]; + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3.toUpperCase(); + return 1; + } else { + return 2; + } + } + } else { + Skills.Interpreter_stringStackSize -= 2; + var3 = Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize]; + var9 = Interpreter.Interpreter_stringStack[Skills.Interpreter_stringStackSize + 1]; + if (Client.localPlayer.appearance != null && Client.localPlayer.appearance.isFemale) { + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var9; + } else { + Interpreter.Interpreter_stringStack[++Skills.Interpreter_stringStackSize - 1] = var3; + } + + return 1; + } + } + } + } +} diff --git a/runescape-client/src/main/java/class215.java b/runescape-client/src/main/java/class215.java new file mode 100644 index 0000000000..a316f84c1d --- /dev/null +++ b/runescape-client/src/main/java/class215.java @@ -0,0 +1,86 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("hy") +public class class215 { + @ObfuscatedName("q") + public static final short[] field2540; + @ObfuscatedName("w") + public static final short[][] field2541; + @ObfuscatedName("e") + public static final short[] field2542; + @ObfuscatedName("p") + public static final short[][] field2546; + @ObfuscatedName("x") + static boolean field2545; + @ObfuscatedName("dy") + @ObfuscatedSignature( + signature = "Liu;" + ) + @Export("archive2") + static Archive archive2; + + static { + field2540 = new short[]{6798, 8741, 25238, 4626, 4550}; + field2541 = new short[][]{{6798, 107, 10283, 16, 4797, 7744, 5799, 4634, -31839, 22433, 2983, -11343, 8, 5281, 10438, 3650, -27322, -21845, 200, 571, 908, 21830, 28946, -15701, -14010}, {8741, 12, -1506, -22374, 7735, 8404, 1701, -27106, 24094, 10153, -8915, 4783, 1341, 16578, -30533, 25239, 8, 5281, 10438, 3650, -27322, -21845, 200, 571, 908, 21830, 28946, -15701, -14010}, {25238, 8742, 12, -1506, -22374, 7735, 8404, 1701, -27106, 24094, 10153, -8915, 4783, 1341, 16578, -30533, 8, 5281, 10438, 3650, -27322, -21845, 200, 571, 908, 21830, 28946, -15701, -14010}, {4626, 11146, 6439, 12, 4758, 10270}, {4550, 4537, 5681, 5673, 5790, 6806, 8076, 4574, 17050, 0, 127, -31821, -17991}}; + field2542 = new short[]{-10304, 9104, -1, -1, -1}; + field2546 = new short[][]{{6554, 115, 10304, 28, 5702, 7756, 5681, 4510, -31835, 22437, 2859, -11339, 16, 5157, 10446, 3658, -27314, -21965, 472, 580, 784, 21966, 28950, -15697, -14002}, {9104, 10275, 7595, 3610, 7975, 8526, 918, -26734, 24466, 10145, -6882, 5027, 1457, 16565, -30545, 25486, 24, 5392, 10429, 3673, -27335, -21957, 192, 687, 412, 21821, 28835, -15460, -14019}, new short[0], new short[0], new short[0]}; + } + + @ObfuscatedName("w") + public static String method4023(long var0) { + if (var0 > 0L && var0 < 6582952005840035281L) { + if (var0 % 37L == 0L) { + return null; + } else { + int var2 = 0; + + for (long var3 = var0; 0L != var3; var3 /= 37L) { + ++var2; + } + + StringBuilder var5; + char var8; + for (var5 = new StringBuilder(var2); var0 != 0L; var5.append(var8)) { + long var6 = var0; + var0 /= 37L; + var8 = class289.base37Table[(int)(var6 - var0 * 37L)]; + if (var8 == '_') { + int var9 = var5.length() - 1; + var5.setCharAt(var9, Character.toUpperCase(var5.charAt(var9))); + var8 = 160; + } + } + + var5.reverse(); + var5.setCharAt(0, Character.toUpperCase(var5.charAt(0))); + return var5.toString(); + } + } else { + return null; + } + } + + @ObfuscatedName("l") + @ObfuscatedSignature( + signature = "(Lhp;Ljava/lang/String;Ljava/lang/String;I)Llx;", + garbageValue = "-1167154349" + ) + @Export("loadIndexedSpriteByName") + public static IndexedSprite loadIndexedSpriteByName(AbstractArchive var0, String var1, String var2) { + int var3 = var0.getGroupId(var1); + int var4 = var0.getFileId(var3, var2); + return PacketBuffer.method5474(var0, var3, var4); + } + + @ObfuscatedName("eg") + @ObfuscatedSignature( + signature = "(I)V", + garbageValue = "-1461227743" + ) + static final void method4022() { + Scene.Scene_isLowDetail = false; + Client.isLowDetail = false; + } +} diff --git a/runescape-client/src/main/java/class216.java b/runescape-client/src/main/java/class216.java new file mode 100644 index 0000000000..e1c31271a7 --- /dev/null +++ b/runescape-client/src/main/java/class216.java @@ -0,0 +1,16 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("hd") +public class class216 { + @ObfuscatedName("b") + @Export("SpriteBuffer_spriteHeights") + public static int[] SpriteBuffer_spriteHeights; + @ObfuscatedName("m") + @ObfuscatedSignature( + signature = "Lhp;" + ) + @Export("Widget_spritesArchive") + static AbstractArchive Widget_spritesArchive; +} diff --git a/runescape-client/src/main/java/class218.java b/runescape-client/src/main/java/class218.java new file mode 100644 index 0000000000..02fa14fe6e --- /dev/null +++ b/runescape-client/src/main/java/class218.java @@ -0,0 +1,44 @@ +import java.applet.Applet; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("hb") +public class class218 { + @ObfuscatedName("l") + @ObfuscatedGetter( + intValue = 1717114817 + ) + public static int field2707; + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Ljava/applet/Applet;Ljava/lang/String;I)V", + garbageValue = "-1987450780" + ) + public static void method4110(Applet var0, String var1) { + class51.applet = var0; + if (var1 != null) { + class51.field434 = var1; + } + + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(I)Z", + garbageValue = "-205887653" + ) + public static final boolean method4109() { + synchronized(KeyHandler.KeyHandler_instance) { + if (KeyHandler.field385 == KeyHandler.field396) { + return false; + } else { + ReflectionCheck.field1338 = KeyHandler.field400[KeyHandler.field396]; + Calendar.field2508 = KeyHandler.field399[KeyHandler.field396]; + KeyHandler.field396 = KeyHandler.field396 + 1 & 127; + return true; + } + } + } +} diff --git a/runescape-client/src/main/java/class219.java b/runescape-client/src/main/java/class219.java new file mode 100644 index 0000000000..bdaa6dde0b --- /dev/null +++ b/runescape-client/src/main/java/class219.java @@ -0,0 +1,74 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("hm") +public class class219 { + @ObfuscatedName("a") + @ObfuscatedSignature( + signature = "(Ljava/lang/String;I)V", + garbageValue = "-444030041" + ) + static final void method4111(String var0) { + PacketBufferNode var1 = Archive.method4265(ClientPacket.field2210, Client.packetWriter.isaacCipher); + var1.packetBuffer.writeByte(Huffman.stringCp1252NullTerminatedByteSize(var0)); + var1.packetBuffer.writeStringCp1252NullTerminated(var0); + Client.packetWriter.method2219(var1); + } + + @ObfuscatedName("gd") + @ObfuscatedSignature( + signature = "(Lbq;II)V", + garbageValue = "1386416846" + ) + @Export("getActorScreenLocation") + static final void getActorScreenLocation(Actor var0, int var1) { + class32.worldToScreen(var0.x, var0.y, var1); + } + + @ObfuscatedName("im") + @ObfuscatedSignature( + signature = "(Lhj;IIZI)V", + garbageValue = "-2103568814" + ) + @Export("alignWidgetSize") + static void alignWidgetSize(Widget var0, int var1, int var2, boolean var3) { + int var4 = var0.width; + int var5 = var0.height; + if (var0.widthAlignment == 0) { + var0.width = var0.rawWidth; + } else if (var0.widthAlignment == 1) { + var0.width = var1 - var0.rawWidth; + } else if (var0.widthAlignment == 2) { + var0.width = var0.rawWidth * var1 >> 14; + } + + if (var0.heightAlignment == 0) { + var0.height = var0.rawHeight; + } else if (var0.heightAlignment == 1) { + var0.height = var2 - var0.rawHeight; + } else if (var0.heightAlignment == 2) { + var0.height = var2 * var0.rawHeight >> 14; + } + + if (var0.widthAlignment == 4) { + var0.width = var0.field2636 * var0.height / var0.field2582; + } + + if (var0.heightAlignment == 4) { + var0.height = var0.field2582 * var0.width / var0.field2636; + } + + if (var0.contentType == 1337) { + Client.viewportWidget = var0; + } + + if (var3 && var0.onResize != null && (var4 != var0.width || var5 != var0.height)) { + ScriptEvent var6 = new ScriptEvent(); + var6.widget = var0; + var6.args = var0.onResize; + Client.scriptEvents.addFirst(var6); + } + + } +} diff --git a/runescape-client/src/main/java/class222.java b/runescape-client/src/main/java/class222.java new file mode 100644 index 0000000000..670dffcb0f --- /dev/null +++ b/runescape-client/src/main/java/class222.java @@ -0,0 +1,16 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ho") +public class class222 { + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(II)Liw;", + garbageValue = "-673469339" + ) + @Export("getWorldMapElement") + public static WorldMapElement getWorldMapElement(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 new file mode 100644 index 0000000000..5c6c99ed3d --- /dev/null +++ b/runescape-client/src/main/java/class225.java @@ -0,0 +1,79 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("hf") +public class class225 { + @ObfuscatedName("bo") + @ObfuscatedSignature( + signature = "[Llx;" + ) + @Export("worldSelectArrows") + static IndexedSprite[] worldSelectArrows; + + @ObfuscatedName("ji") + @ObfuscatedSignature( + signature = "([Lhj;II)V", + garbageValue = "-1666853879" + ) + static final void method4122(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.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; + } + + 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; + } + } + } + } + } + + 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); + } + } + } + } + + } +} diff --git a/runescape-client/src/main/java/class247.java b/runescape-client/src/main/java/class247.java new file mode 100644 index 0000000000..e24a705ba3 --- /dev/null +++ b/runescape-client/src/main/java/class247.java @@ -0,0 +1,15 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("il") +public class class247 { + @ObfuscatedName("i") + public static short[][] field3291; + @ObfuscatedName("km") + @ObfuscatedGetter( + intValue = -940566551 + ) + @Export("menuX") + static int menuX; +} diff --git a/runescape-client/src/main/java/class267.java b/runescape-client/src/main/java/class267.java new file mode 100644 index 0000000000..f5d2cac93c --- /dev/null +++ b/runescape-client/src/main/java/class267.java @@ -0,0 +1,18 @@ +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("jn") +public class class267 { + @ObfuscatedName("ai") + protected static boolean field3557; + + @ObfuscatedName("jy") + @ObfuscatedSignature( + signature = "(I)V", + garbageValue = "1804556356" + ) + static final void method4986() { + Client.field849 = Client.cycleCntr; + GrandExchangeEvent.field49 = true; + } +} diff --git a/runescape-client/src/main/java/class268.java b/runescape-client/src/main/java/class268.java new file mode 100644 index 0000000000..3404e19bb6 --- /dev/null +++ b/runescape-client/src/main/java/class268.java @@ -0,0 +1,32 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ji") +public class class268 { + @ObfuscatedName("b") + static byte[][][] field3561; + + @ObfuscatedName("i") + @ObfuscatedSignature( + signature = "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V", + garbageValue = "2090622198" + ) + @Export("setLoginResponseString") + static void setLoginResponseString(String var0, String var1, String var2) { + Login.Login_response1 = var0; + Login.Login_response2 = var1; + Login.Login_response3 = var2; + } + + @ObfuscatedName("jx") + @ObfuscatedSignature( + signature = "(Lhj;I)I", + garbageValue = "2029030318" + ) + @Export("getWidgetClickMask") + static int getWidgetClickMask(Widget var0) { + IntegerNode var1 = (IntegerNode)Client.widgetClickMasks.get((long)var0.childIndex + ((long)var0.id << 32)); + return var1 != null ? var1.integer : var0.clickMask; + } +} diff --git a/runescape-client/src/main/java/class269.java b/runescape-client/src/main/java/class269.java new file mode 100644 index 0000000000..4f9ed62307 --- /dev/null +++ b/runescape-client/src/main/java/class269.java @@ -0,0 +1,11 @@ +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("jp") +public class class269 { + @ObfuscatedName("fm") + @ObfuscatedSignature( + signature = "Lky;" + ) + static AbstractSocket field3563; +} diff --git a/runescape-client/src/main/java/class287.java b/runescape-client/src/main/java/class287.java new file mode 100644 index 0000000000..c664792bcb --- /dev/null +++ b/runescape-client/src/main/java/class287.java @@ -0,0 +1,23 @@ +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("kj") +public class class287 { + @ObfuscatedName("b") + @ObfuscatedSignature( + signature = "(Lhp;Lhp;Ljava/lang/String;Ljava/lang/String;I)Lke;", + garbageValue = "-2097439358" + ) + public static Font method5258(AbstractArchive var0, AbstractArchive var1, String var2, String var3) { + int var4 = var0.getGroupId(var2); + int var5 = var0.getFileId(var4, var3); + Font var6; + if (!Friend.SpriteBuffer_loadSprite(var0, var4, var5)) { + var6 = null; + } else { + var6 = WallDecoration.getWorldMapSprite(var1.takeFile(var4, var5)); + } + + return var6; + } +} diff --git a/runescape-client/src/main/java/class288.java b/runescape-client/src/main/java/class288.java new file mode 100644 index 0000000000..5b014f52be --- /dev/null +++ b/runescape-client/src/main/java/class288.java @@ -0,0 +1,20 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ka") +public class class288 { + @ObfuscatedName("q") + @Export("cp1252AsciiExtension") + public static final char[] cp1252AsciiExtension; + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "Lhp;" + ) + @Export("KitDefinition_modelsArchive") + static AbstractArchive KitDefinition_modelsArchive; + + static { + cp1252AsciiExtension = new char[]{'€', '\u0000', '‚', 'ƒ', '„', '…', '†', '‡', 'ˆ', '‰', 'Š', '‹', 'Œ', '\u0000', 'Ž', '\u0000', '\u0000', '‘', '’', '“', '”', '•', '–', '—', '˜', '™', 'š', '›', 'œ', '\u0000', 'ž', 'Ÿ'}; + } +} diff --git a/runescape-client/src/main/java/class289.java b/runescape-client/src/main/java/class289.java new file mode 100644 index 0000000000..347dcc1dfb --- /dev/null +++ b/runescape-client/src/main/java/class289.java @@ -0,0 +1,50 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ko") +public final class class289 { + @ObfuscatedName("q") + @Export("base37Table") + static final char[] base37Table; + @ObfuscatedName("w") + static long[] field3669; + + static { + base37Table = new char[]{'_', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; + field3669 = new long[12]; + + for (int var0 = 0; var0 < field3669.length; ++var0) { + field3669[var0] = (long)Math.pow(37.0D, (double)var0); + } + + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Lhp;III)[Llx;", + garbageValue = "1777014825" + ) + public static IndexedSprite[] method5281(AbstractArchive var0, int var1, int var2) { + if (!Friend.SpriteBuffer_loadSprite(var0, var1, var2)) { + return null; + } else { + IndexedSprite[] var4 = new IndexedSprite[class326.SpriteBuffer_spriteCount]; + + for (int var5 = 0; var5 < class326.SpriteBuffer_spriteCount; ++var5) { + IndexedSprite var6 = var4[var5] = new IndexedSprite(); + var6.width = class326.SpriteBuffer_spriteWidth; + var6.height = class326.SpriteBuffer_spriteHeight; + var6.xOffset = Varps.SpriteBuffer_xOffsets[var5]; + var6.yOffset = class326.SpriteBuffer_yOffsets[var5]; + var6.subWidth = class326.SpriteBuffer_spriteWidths[var5]; + var6.subHeight = class216.SpriteBuffer_spriteHeights[var5]; + var6.palette = Frames.SpriteBuffer_spritePalette; + var6.pixels = class326.SpriteBuffer_pixels[var5]; + } + + class16.method174(); + return var4; + } + } +} diff --git a/runescape-client/src/main/java/class290.java b/runescape-client/src/main/java/class290.java new file mode 100644 index 0000000000..32533dbc6d --- /dev/null +++ b/runescape-client/src/main/java/class290.java @@ -0,0 +1,89 @@ +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("kk") +public class class290 { + @ObfuscatedName("q") + static char[] field3673; + @ObfuscatedName("w") + static char[] field3672; + @ObfuscatedName("e") + static char[] field3674; + @ObfuscatedName("p") + static int[] field3671; + + static { + field3673 = new char[64]; + + int var0; + for (var0 = 0; var0 < 26; ++var0) { + field3673[var0] = (char)(var0 + 65); + } + + for (var0 = 26; var0 < 52; ++var0) { + field3673[var0] = (char)(var0 + 97 - 26); + } + + for (var0 = 52; var0 < 62; ++var0) { + field3673[var0] = (char)(var0 + 48 - 52); + } + + field3673[62] = '+'; + field3673[63] = '/'; + field3672 = new char[64]; + + for (var0 = 0; var0 < 26; ++var0) { + field3672[var0] = (char)(var0 + 65); + } + + for (var0 = 26; var0 < 52; ++var0) { + field3672[var0] = (char)(var0 + 97 - 26); + } + + for (var0 = 52; var0 < 62; ++var0) { + field3672[var0] = (char)(var0 + 48 - 52); + } + + field3672[62] = '*'; + field3672[63] = '-'; + field3674 = new char[64]; + + for (var0 = 0; var0 < 26; ++var0) { + field3674[var0] = (char)(var0 + 65); + } + + for (var0 = 26; var0 < 52; ++var0) { + field3674[var0] = (char)(var0 + 97 - 26); + } + + for (var0 = 52; var0 < 62; ++var0) { + field3674[var0] = (char)(var0 + 48 - 52); + } + + field3674[62] = '-'; + field3674[63] = '_'; + field3671 = new int[128]; + + for (var0 = 0; var0 < field3671.length; ++var0) { + field3671[var0] = -1; + } + + for (var0 = 65; var0 <= 90; ++var0) { + field3671[var0] = var0 - 65; + } + + for (var0 = 97; var0 <= 122; ++var0) { + field3671[var0] = var0 - 97 + 26; + } + + for (var0 = 48; var0 <= 57; ++var0) { + field3671[var0] = var0 - 48 + 52; + } + + int[] var2 = field3671; + field3671[43] = 62; + var2[42] = 62; + int[] var1 = field3671; + field3671[47] = 63; + var1[45] = 63; + } +} diff --git a/runescape-client/src/main/java/class291.java b/runescape-client/src/main/java/class291.java new file mode 100644 index 0000000000..e6d2d05827 --- /dev/null +++ b/runescape-client/src/main/java/class291.java @@ -0,0 +1,197 @@ +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("kv") +public final class class291 { + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Ljava/lang/CharSequence;Lmu;I)Ljava/lang/String;", + garbageValue = "-1894833715" + ) + public static String method5315(CharSequence var0, LoginType var1) { + if (var0 == null) { + return null; + } else { + int var2 = 0; + + int var3; + boolean var4; + char var5; + for (var3 = var0.length(); var2 < var3; ++var2) { + var5 = var0.charAt(var2); + var4 = var5 == 160 || var5 == ' ' || var5 == '_' || var5 == '-'; + if (!var4) { + break; + } + } + + while (var3 > var2) { + var5 = var0.charAt(var3 - 1); + var4 = var5 == 160 || var5 == ' ' || var5 == '_' || var5 == '-'; + if (!var4) { + break; + } + + --var3; + } + + int var14 = var3 - var2; + if (var14 >= 1) { + byte var6; + if (var1 == null) { + var6 = 12; + } else { + switch(var1.field4057) { + case 8: + var6 = 20; + break; + default: + var6 = 12; + } + } + + if (var14 <= var6) { + StringBuilder var12 = new StringBuilder(var14); + + for (int var15 = var2; var15 < var3; ++var15) { + char var7 = var0.charAt(var15); + boolean var8; + if (Character.isISOControl(var7)) { + var8 = false; + } else if (GrandExchangeOfferOwnWorldComparator.isAlphaNumeric(var7)) { + var8 = true; + } else { + char[] var13 = class339.field4061; + int var10 = 0; + + label118: + while (true) { + char var11; + if (var10 >= var13.length) { + var13 = class339.field4062; + + for (var10 = 0; var10 < var13.length; ++var10) { + var11 = var13[var10]; + if (var11 == var7) { + var8 = true; + break label118; + } + } + + var8 = false; + break; + } + + var11 = var13[var10]; + if (var11 == var7) { + var8 = true; + break; + } + + ++var10; + } + } + + if (var8) { + char var9; + switch(var7) { + case ' ': + case '-': + case '_': + case ' ': + var9 = '_'; + break; + case '#': + case '[': + case ']': + var9 = var7; + break; + case 'À': + case 'Á': + case 'Â': + case 'Ã': + case 'Ä': + case 'à': + case 'á': + case 'â': + case 'ã': + case 'ä': + var9 = 'a'; + break; + case 'Ç': + case 'ç': + var9 = 'c'; + break; + case 'È': + case 'É': + case 'Ê': + case 'Ë': + case 'è': + case 'é': + case 'ê': + case 'ë': + var9 = 'e'; + break; + case 'Í': + case 'Î': + case 'Ï': + case 'í': + case 'î': + case 'ï': + var9 = 'i'; + break; + case 'Ñ': + case 'ñ': + var9 = 'n'; + break; + case 'Ò': + case 'Ó': + case 'Ô': + case 'Õ': + case 'Ö': + case 'ò': + case 'ó': + case 'ô': + case 'õ': + case 'ö': + var9 = 'o'; + break; + case 'Ù': + case 'Ú': + case 'Û': + case 'Ü': + case 'ù': + case 'ú': + case 'û': + case 'ü': + var9 = 'u'; + break; + case 'ß': + var9 = 'b'; + break; + case 'ÿ': + case 'Ÿ': + var9 = 'y'; + break; + default: + var9 = Character.toLowerCase(var7); + } + + if (var9 != 0) { + var12.append(var9); + } + } + } + + if (var12.length() == 0) { + return null; + } + + return var12.toString(); + } + } + + return null; + } + } +} diff --git a/runescape-client/src/main/java/class294.java b/runescape-client/src/main/java/class294.java new file mode 100644 index 0000000000..6e0e001587 --- /dev/null +++ b/runescape-client/src/main/java/class294.java @@ -0,0 +1,78 @@ +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("kz") +public class class294 { + @ObfuscatedName("bb") + static String field3695; + @ObfuscatedName("jp") + @ObfuscatedSignature( + signature = "Lhj;" + ) + static Widget field3697; + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(I[BLkm;I)V", + garbageValue = "-966151502" + ) + static void method5328(int var0, byte[] var1, ArchiveDisk var2) { + ArchiveDiskAction var3 = new ArchiveDiskAction(); + var3.type = 0; + var3.key = (long)var0; + var3.data = var1; + var3.archiveDisk = var2; + synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { + ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var3); + } + + synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_lock) { + if (ArchiveDiskActionHandler.field3144 == 0) { + ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread = new Thread(new ArchiveDiskActionHandler()); + ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.setDaemon(true); + ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.start(); + ArchiveDiskActionHandler.ArchiveDiskActionHandler_thread.setPriority(5); + } + + ArchiveDiskActionHandler.field3144 = 600; + } + } + + @ObfuscatedName("gy") + @ObfuscatedSignature( + signature = "(Lbt;I)V", + garbageValue = "-938277055" + ) + static final void method5327(PendingSpawn var0) { + long var1 = 0L; + int var3 = -1; + int var4 = 0; + int var5 = 0; + if (var0.type == 0) { + var1 = GrandExchangeOfferWorldComparator.scene.getBoundaryObjectTag(var0.plane, var0.x, var0.y); + } + + if (var0.type == 1) { + var1 = GrandExchangeOfferWorldComparator.scene.getWallDecorationTag(var0.plane, var0.x, var0.y); + } + + if (var0.type == 2) { + var1 = GrandExchangeOfferWorldComparator.scene.getGameObjectTag(var0.plane, var0.x, var0.y); + } + + if (var0.type == 3) { + var1 = GrandExchangeOfferWorldComparator.scene.getFloorDecorationTag(var0.plane, var0.x, var0.y); + } + + if (0L != var1) { + int var6 = GrandExchangeOfferWorldComparator.scene.getObjectFlags(var0.plane, var0.x, var0.y, var1); + var3 = class43.method770(var1); + var4 = var6 & 31; + var5 = var6 >> 6 & 3; + } + + var0.field935 = var3; + var0.field933 = var4; + var0.field936 = var5; + } +} diff --git a/runescape-client/src/main/java/class301.java b/runescape-client/src/main/java/class301.java new file mode 100644 index 0000000000..3a2bbd55cb --- /dev/null +++ b/runescape-client/src/main/java/class301.java @@ -0,0 +1,70 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("kw") +public class class301 { + @ObfuscatedName("q") + public static void method5752(byte[] var0, int var1, byte[] var2, int var3, int var4) { + if (var2 == var0) { + if (var3 == var1) { + return; + } + + if (var3 > var1 && var3 < var4 + var1) { + --var4; + var1 += var4; + var3 += var4; + var4 = var1 - var4; + + for (var4 += 7; var1 >= var4; var2[var3--] = var0[var1--]) { + var2[var3--] = var0[var1--]; + var2[var3--] = var0[var1--]; + var2[var3--] = var0[var1--]; + var2[var3--] = var0[var1--]; + var2[var3--] = var0[var1--]; + var2[var3--] = var0[var1--]; + var2[var3--] = var0[var1--]; + } + + for (var4 -= 7; var1 >= var4; var2[var3--] = var0[var1--]) { + } + + return; + } + } + + var4 += var1; + + for (var4 -= 7; var1 < var4; var2[var3++] = var0[var1++]) { + var2[var3++] = var0[var1++]; + var2[var3++] = var0[var1++]; + var2[var3++] = var0[var1++]; + var2[var3++] = var0[var1++]; + var2[var3++] = var0[var1++]; + var2[var3++] = var0[var1++]; + var2[var3++] = var0[var1++]; + } + + for (var4 += 7; var1 < var4; var2[var3++] = var0[var1++]) { + } + + } + + @ObfuscatedName("u") + @Export("clearIntArray") + public static void clearIntArray(int[] var0, int var1, int var2) { + for (var2 = var2 + var1 - 7; var1 < var2; var0[var1++] = 0) { + var0[var1++] = 0; + var0[var1++] = 0; + var0[var1++] = 0; + var0[var1++] = 0; + var0[var1++] = 0; + var0[var1++] = 0; + var0[var1++] = 0; + } + + for (var2 += 7; var1 < var2; var0[var1++] = 0) { + } + + } +} diff --git a/runescape-client/src/main/java/class323.java b/runescape-client/src/main/java/class323.java new file mode 100644 index 0000000000..03f649db8c --- /dev/null +++ b/runescape-client/src/main/java/class323.java @@ -0,0 +1,55 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ll") +public enum class323 implements Enumerated { + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "Lll;" + ) + @Export("SOLID") + SOLID(0, 0), + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "Lll;" + ) + field3887(1, 1), + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "Lll;" + ) + field3885(2, 2); + + @ObfuscatedName("ex") + @ObfuscatedGetter( + intValue = 1628488091 + ) + static int field3884; + @ObfuscatedName("p") + @ObfuscatedGetter( + intValue = 215627811 + ) + public final int field3886; + @ObfuscatedName("k") + @ObfuscatedGetter( + intValue = 198667019 + ) + final int field3889; + + class323(int var3, int var4) { + this.field3886 = var3; + this.field3889 = var4; + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(I)I", + garbageValue = "320353268" + ) + @Export("rsOrdinal") + public int rsOrdinal() { + return this.field3889; + } +} diff --git a/runescape-client/src/main/java/class326.java b/runescape-client/src/main/java/class326.java new file mode 100644 index 0000000000..a9d698876b --- /dev/null +++ b/runescape-client/src/main/java/class326.java @@ -0,0 +1,70 @@ +import java.awt.Desktop; +import java.awt.Desktop.Action; +import java.net.URI; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("lm") +public class class326 { + @ObfuscatedName("q") + @ObfuscatedGetter( + intValue = -180195353 + ) + @Export("SpriteBuffer_spriteCount") + static int SpriteBuffer_spriteCount; + @ObfuscatedName("w") + @ObfuscatedGetter( + intValue = 513029385 + ) + @Export("SpriteBuffer_spriteWidth") + public static int SpriteBuffer_spriteWidth; + @ObfuscatedName("e") + @ObfuscatedGetter( + intValue = -758911013 + ) + @Export("SpriteBuffer_spriteHeight") + public static int SpriteBuffer_spriteHeight; + @ObfuscatedName("k") + @Export("SpriteBuffer_yOffsets") + public static int[] SpriteBuffer_yOffsets; + @ObfuscatedName("l") + @Export("SpriteBuffer_spriteWidths") + public static int[] SpriteBuffer_spriteWidths; + @ObfuscatedName("c") + @Export("SpriteBuffer_pixels") + public static byte[][] SpriteBuffer_pixels; + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(Ljava/lang/String;ZLjava/lang/String;ZB)V", + garbageValue = "38" + ) + static void method6243(String var0, boolean var1, String var2, boolean var3) { + if (var1) { + if (!var3 && Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Action.BROWSE)) { + try { + Desktop.getDesktop().browse(new URI(var0)); + return; + } catch (Exception var5) { + } + } + + if (class51.field434.startsWith("win") && !var3) { + Player.method1226(var0, 0, "openjs"); + return; + } + + if (class51.field434.startsWith("mac")) { + Player.method1226(var0, 1, var2); + return; + } + + Player.method1226(var0, 2, "openjs"); + } else { + Player.method1226(var0, 3, "openjs"); + } + + } +} diff --git a/runescape-client/src/main/java/class327.java b/runescape-client/src/main/java/class327.java new file mode 100644 index 0000000000..1d50be2c3c --- /dev/null +++ b/runescape-client/src/main/java/class327.java @@ -0,0 +1,33 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("lz") +public class class327 { + @ObfuscatedName("j") + @ObfuscatedSignature( + signature = "(IIII)I", + garbageValue = "590825496" + ) + @Export("hslToRgb") + static final int hslToRgb(int var0, int var1, int var2) { + if (var2 > 179) { + var1 /= 2; + } + + if (var2 > 192) { + var1 /= 2; + } + + if (var2 > 217) { + var1 /= 2; + } + + if (var2 > 243) { + var1 /= 2; + } + + int var3 = (var1 / 32 << 7) + (var0 / 4 << 10) + var2 / 2; + return var3; + } +} diff --git a/runescape-client/src/main/java/class339.java b/runescape-client/src/main/java/class339.java new file mode 100644 index 0000000000..af6c9501bc --- /dev/null +++ b/runescape-client/src/main/java/class339.java @@ -0,0 +1,14 @@ +import net.runelite.mapping.ObfuscatedName; + +@ObfuscatedName("mj") +public class class339 { + @ObfuscatedName("e") + static final char[] field4061; + @ObfuscatedName("p") + static final char[] field4062; + + static { + field4061 = new char[]{' ', ' ', '_', '-', 'à', 'á', 'â', 'ä', 'ã', 'À', 'Á', 'Â', 'Ä', 'Ã', 'è', 'é', 'ê', 'ë', 'È', 'É', 'Ê', 'Ë', 'í', 'î', 'ï', 'Í', 'Î', 'Ï', 'ò', 'ó', 'ô', 'ö', 'õ', 'Ò', 'Ó', 'Ô', 'Ö', 'Õ', 'ù', 'ú', 'û', 'ü', 'Ù', 'Ú', 'Û', 'Ü', 'ç', 'Ç', 'ÿ', 'Ÿ', 'ñ', 'Ñ', 'ß'}; + field4062 = new char[]{'[', ']', '#'}; + } +} diff --git a/runescape-client/src/main/java/class42.java b/runescape-client/src/main/java/class42.java new file mode 100644 index 0000000000..5c3219da30 --- /dev/null +++ b/runescape-client/src/main/java/class42.java @@ -0,0 +1,186 @@ +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("aa") +public class class42 implements WorldMapSection { + @ObfuscatedName("jy") + @ObfuscatedGetter( + intValue = 729343295 + ) + @Export("plane") + static int plane; + @ObfuscatedName("kl") + @ObfuscatedGetter( + intValue = 656519429 + ) + @Export("menuWidth") + static int menuWidth; + @ObfuscatedName("q") + @ObfuscatedGetter( + intValue = 916978053 + ) + int field368; + @ObfuscatedName("w") + @ObfuscatedGetter( + intValue = 1762560759 + ) + int field363; + @ObfuscatedName("e") + @ObfuscatedGetter( + intValue = -342146011 + ) + int field364; + @ObfuscatedName("p") + @ObfuscatedGetter( + intValue = 1042956217 + ) + int field365; + @ObfuscatedName("k") + @ObfuscatedGetter( + intValue = 769033825 + ) + int field366; + @ObfuscatedName("l") + @ObfuscatedGetter( + intValue = -1279110919 + ) + int field375; + @ObfuscatedName("b") + @ObfuscatedGetter( + intValue = 1202415387 + ) + int field376; + @ObfuscatedName("i") + @ObfuscatedGetter( + intValue = 171955233 + ) + int field369; + @ObfuscatedName("c") + @ObfuscatedGetter( + intValue = -432723917 + ) + int field370; + @ObfuscatedName("f") + @ObfuscatedGetter( + intValue = 149120555 + ) + int field371; + + class42() { + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Lal;B)V", + garbageValue = "-53" + ) + public void expandBounds(WorldMapArea var1) { + if (var1.regionLowX > this.field366) { + var1.regionLowX = this.field366; + } + + if (var1.regionHighX < this.field366) { + var1.regionHighX = this.field366; + } + + if (var1.regionLowY > this.field375) { + var1.regionLowY = this.field375; + } + + if (var1.regionHighY < this.field375) { + var1.regionHighY = this.field375; + } + + } + + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "(IIII)Z", + garbageValue = "59484528" + ) + public boolean containsCoord(int var1, int var2, int var3) { + if (var1 >= this.field368 && var1 < this.field368 + this.field363) { + return var2 >= (this.field364 << 6) + (this.field376 << 3) && var2 <= (this.field364 << 6) + (this.field376 << 3) + 7 && var3 >= (this.field365 << 6) + (this.field369 << 3) && var3 <= (this.field365 << 6) + (this.field369 << 3) + 7; + } else { + return false; + } + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(IIB)Z", + garbageValue = "56" + ) + public boolean containsPosition(int var1, int var2) { + return var1 >= (this.field366 << 6) + (this.field370 << 3) && var1 <= (this.field366 << 6) + (this.field370 << 3) + 7 && var2 >= (this.field375 << 6) + (this.field371 << 3) && var2 <= (this.field375 << 6) + (this.field371 << 3) + 7; + } + + @ObfuscatedName("p") + @ObfuscatedSignature( + signature = "(IIIB)[I", + garbageValue = "12" + ) + public int[] getBorderTileLengths(int var1, int var2, int var3) { + if (!this.containsCoord(var1, var2, var3)) { + return null; + } else { + int[] var4 = new int[]{this.field366 * 64 - this.field364 * 64 + var2 + (this.field370 * 8 - this.field376 * 8), var3 + (this.field375 * 64 - this.field365 * 64) + (this.field371 * 8 - this.field369 * 8)}; + return var4; + } + } + + @ObfuscatedName("k") + @ObfuscatedSignature( + signature = "(IIB)Lhv;", + garbageValue = "-13" + ) + public Coord coord(int var1, int var2) { + if (!this.containsPosition(var1, var2)) { + return null; + } else { + int var3 = this.field364 * 64 - this.field366 * 64 + (this.field376 * 8 - this.field370 * 8) + var1; + int var4 = this.field365 * 64 - this.field375 * 64 + var2 + (this.field369 * 8 - this.field371 * 8); + return new Coord(this.field368, var3, var4); + } + } + + @ObfuscatedName("l") + @ObfuscatedSignature( + signature = "(Lkf;I)V", + garbageValue = "1767519038" + ) + public void read(Buffer var1) { + this.field368 = var1.readUnsignedByte(); + this.field363 = var1.readUnsignedByte(); + this.field364 = var1.readUnsignedShort(); + this.field376 = var1.readUnsignedByte(); + this.field365 = var1.readUnsignedShort(); + this.field369 = var1.readUnsignedByte(); + this.field366 = var1.readUnsignedShort(); + this.field370 = var1.readUnsignedByte(); + this.field375 = var1.readUnsignedShort(); + this.field371 = var1.readUnsignedByte(); + this.method744(); + } + + @ObfuscatedName("b") + @ObfuscatedSignature( + signature = "(I)V", + garbageValue = "33671142" + ) + void method744() { + } + + @ObfuscatedName("el") + @ObfuscatedSignature( + signature = "(Liu;Ljava/lang/String;I)V", + garbageValue = "446000898" + ) + static void method763(Archive var0, String var1) { + ArchiveLoader var2 = new ArchiveLoader(var0, var1); + Client.archiveLoaders.add(var2); + Client.field927 += var2.groupCount; + } +} diff --git a/runescape-client/src/main/java/class43.java b/runescape-client/src/main/java/class43.java new file mode 100644 index 0000000000..a019ff43e5 --- /dev/null +++ b/runescape-client/src/main/java/class43.java @@ -0,0 +1,38 @@ +import java.lang.management.GarbageCollectorMXBean; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("an") +public final class class43 { + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "Lhp;" + ) + @Export("SpotAnimationDefinition_modelArchive") + public static AbstractArchive SpotAnimationDefinition_modelArchive; + @ObfuscatedName("i") + @Export("ByteArrayPool_altSizeArrayCounts") + public static int[] ByteArrayPool_altSizeArrayCounts; + @ObfuscatedName("ak") + @Export("garbageCollector") + static GarbageCollectorMXBean garbageCollector; + @ObfuscatedName("dx") + @ObfuscatedSignature( + signature = "Liu;" + ) + @Export("archive3") + static Archive archive3; + @ObfuscatedName("hj") + @ObfuscatedGetter( + intValue = 2040004627 + ) + @Export("cameraY") + static int cameraY; + + @ObfuscatedName("l") + public static int method770(long var0) { + return (int)(var0 >>> 17 & 4294967295L); + } +} diff --git a/runescape-client/src/main/java/class47.java b/runescape-client/src/main/java/class47.java new file mode 100644 index 0000000000..f4e9d62de9 --- /dev/null +++ b/runescape-client/src/main/java/class47.java @@ -0,0 +1,16 @@ +import java.applet.Applet; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; +import netscape.javascript.JSObject; + +@ObfuscatedName("ah") +public class class47 { + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Ljava/applet/Applet;Ljava/lang/String;[Ljava/lang/Object;I)Ljava/lang/Object;", + garbageValue = "1272858085" + ) + public static Object method806(Applet var0, String var1, Object[] var2) throws Throwable { + return JSObject.getWindow(var0).call(var1, var2); + } +} diff --git a/runescape-client/src/main/java/class49.java b/runescape-client/src/main/java/class49.java new file mode 100644 index 0000000000..7349bd5dd1 --- /dev/null +++ b/runescape-client/src/main/java/class49.java @@ -0,0 +1,72 @@ +import javax.imageio.ImageIO; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ay") +public class class49 { + static { + ImageIO.setUseCache(false); + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(S)V", + 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; + } + + } + } + + @ObfuscatedName("e") + @ObfuscatedSignature( + signature = "(IIB)Lcx;", + garbageValue = "3" + ) + @Export("getWorldMapScript") + static Script getWorldMapScript(int var0, int var1) { + Script var2 = (Script)Script.Script_cached.get((long)(var0 << 16)); + if (var2 != null) { + return var2; + } else { + String var3 = String.valueOf(var0); + int var4 = UserComparator4.archive12.getGroupId(var3); + if (var4 == -1) { + return null; + } else { + byte[] var5 = UserComparator4.archive12.takeFileFlat(var4); + if (var5 != null) { + if (var5.length <= 1) { + return null; + } + + var2 = World.newScript(var5); + if (var2 != null) { + Script.Script_cached.put(var2, (long)(var0 << 16)); + return var2; + } + } + + return null; + } + } + } + + @ObfuscatedName("u") + @ObfuscatedSignature( + signature = "(CS)Z", + garbageValue = "8230" + ) + @Export("isCharDigit") + public static boolean isCharDigit(char var0) { + return var0 >= '0' && var0 <= '9'; + } +} diff --git a/runescape-client/src/main/java/class51.java b/runescape-client/src/main/java/class51.java new file mode 100644 index 0000000000..13b9fd1ecc --- /dev/null +++ b/runescape-client/src/main/java/class51.java @@ -0,0 +1,39 @@ +import java.applet.Applet; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("ab") +public class class51 { + @ObfuscatedName("q") + @Export("applet") + static Applet applet; + @ObfuscatedName("w") + static String field434; + + static { + applet = null; + field434 = ""; + } + + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(II)Lip;", + garbageValue = "1884870915" + ) + public static HealthBarDefinition method854(int var0) { + HealthBarDefinition var1 = (HealthBarDefinition)HealthBarDefinition.HealthBarDefinition_cached.get((long)var0); + if (var1 != null) { + return var1; + } else { + byte[] var2 = HealthBarDefinition.HealthBarDefinition_archive.takeFile(33, var0); + var1 = new HealthBarDefinition(); + if (var2 != null) { + var1.decode(new Buffer(var2)); + } + + HealthBarDefinition.HealthBarDefinition_cached.put(var1, (long)var0); + return var1; + } + } +} diff --git a/runescape-client/src/main/java/class81.java b/runescape-client/src/main/java/class81.java new file mode 100644 index 0000000000..3632179732 --- /dev/null +++ b/runescape-client/src/main/java/class81.java @@ -0,0 +1,84 @@ +import java.awt.Component; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("cl") +public class class81 { + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(Ljava/awt/Component;I)V", + garbageValue = "481246027" + ) + static void method1990(Component var0) { + var0.setFocusTraversalKeysEnabled(false); + var0.addKeyListener(KeyHandler.KeyHandler_instance); + var0.addFocusListener(KeyHandler.KeyHandler_instance); + } + + @ObfuscatedName("fm") + @ObfuscatedSignature( + signature = "(IIII)V", + garbageValue = "1510929763" + ) + @Export("queueSoundEffect") + static void queueSoundEffect(int var0, int var1, int var2) { + if (Client.soundEffectVolume != 0 && var1 != 0 && Client.soundEffectCount < 50) { + Client.soundEffectIds[Client.soundEffectCount] = var0; + Client.queuedSoundEffectLoops[Client.soundEffectCount] = var1; + Client.queuedSoundEffectDelays[Client.soundEffectCount] = var2; + Client.soundEffects[Client.soundEffectCount] = null; + Client.soundLocations[Client.soundEffectCount] = 0; + ++Client.soundEffectCount; + } + + } + + @ObfuscatedName("ho") + @ObfuscatedSignature( + signature = "(ILjava/lang/String;I)V", + garbageValue = "-1296265536" + ) + static void method1988(int var0, String var1) { + int var2 = Players.Players_count; + int[] var3 = Players.Players_indices; + boolean var4 = false; + Username var5 = new Username(var1, class40.loginType); + + for (int var6 = 0; var6 < var2; ++var6) { + Player var7 = Client.players[var3[var6]]; + if (var7 != null && var7 != Client.localPlayer && var7.username != null && var7.username.equals(var5)) { + PacketBufferNode var8; + if (var0 == 1) { + var8 = Archive.method4265(ClientPacket.field2250, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShort(var3[var6]); + var8.packetBuffer.method5521(0); + Client.packetWriter.method2219(var8); + } else if (var0 == 4) { + var8 = Archive.method4265(ClientPacket.field2230, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5475(var3[var6]); + var8.packetBuffer.method5521(0); + Client.packetWriter.method2219(var8); + } else if (var0 == 6) { + var8 = Archive.method4265(ClientPacket.field2257, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5530(var3[var6]); + var8.packetBuffer.method5502(0); + Client.packetWriter.method2219(var8); + } else if (var0 == 7) { + var8 = Archive.method4265(ClientPacket.field2278, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5502(0); + var8.packetBuffer.writeShortLE(var3[var6]); + Client.packetWriter.method2219(var8); + } + + var4 = true; + break; + } + } + + if (!var4) { + ScriptEvent.addGameMessage(4, "", "Unable to find " + var1); + } + + } +} diff --git a/runescape-client/src/main/java/class96.java b/runescape-client/src/main/java/class96.java new file mode 100644 index 0000000000..b089d6c316 --- /dev/null +++ b/runescape-client/src/main/java/class96.java @@ -0,0 +1,440 @@ +import java.io.IOException; +import net.runelite.mapping.Export; +import net.runelite.mapping.ObfuscatedGetter; +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; +import net.runelite.rs.ScriptOpcodes; + +@ObfuscatedName("cv") +public class class96 { + @ObfuscatedName("qm") + @ObfuscatedGetter( + intValue = 164873785 + ) + static int field1327; + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "Lju;" + ) + @Export("reflectionChecks") + static IterableNodeDeque reflectionChecks; + @ObfuscatedName("az") + @ObfuscatedSignature( + signature = "Lls;" + ) + static Bounds field1325; + + static { + reflectionChecks = new IterableNodeDeque(); + } + + @ObfuscatedName("w") + @ObfuscatedSignature( + signature = "(Lbb;II)V", + garbageValue = "-806238798" + ) + @Export("runScript") + static void runScript(ScriptEvent var0, int var1) { + Object[] var2 = var0.args; + Script var3; + int var17; + if (PacketBufferNode.isWorldMapEvent(var0.type)) { + WorldMapIcon_0.worldMapEvent = (WorldMapEvent)var2[0]; + WorldMapElement var4 = class222.getWorldMapElement(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; + + try { + int var10; + try { + 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; + } + } + + var10 = 0; + Interpreter.field1106 = var0.field583; + + while (true) { + ++var10; + if (var10 > var1) { + 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; + } + } + } + } 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; + } + + } + } + } + + @ObfuscatedName("k") + @ObfuscatedSignature( + signature = "(II)Z", + garbageValue = "-2113880295" + ) + public static boolean method2266(int var0) { + return (var0 >> 21 & 1) != 0; + } + + @ObfuscatedName("ei") + @ObfuscatedSignature( + signature = "(IS)V", + garbageValue = "-12345" + ) + @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; + GroundItem.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; + } + } +} diff --git a/runescape-client/src/main/java/class99.java b/runescape-client/src/main/java/class99.java new file mode 100644 index 0000000000..dc7120c4a7 --- /dev/null +++ b/runescape-client/src/main/java/class99.java @@ -0,0 +1,12 @@ +import net.runelite.mapping.ObfuscatedName; +import net.runelite.mapping.ObfuscatedSignature; + +@ObfuscatedName("cm") +public interface class99 { + @ObfuscatedName("q") + @ObfuscatedSignature( + signature = "(B)Ldn;", + garbageValue = "1" + ) + PcmPlayer player(); +}