import java.util.zip.CRC32; 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("iw") @Implements("Archive") public class Archive extends AbstractArchive { @ObfuscatedName("ao") @Export("Archive_crc") static CRC32 Archive_crc; @ObfuscatedName("p") @ObfuscatedSignature( descriptor = "Llz;" ) @Export("archiveDisk") ArchiveDisk archiveDisk; @ObfuscatedName("b") @ObfuscatedSignature( descriptor = "Llz;" ) @Export("masterDisk") ArchiveDisk masterDisk; @ObfuscatedName("l") @ObfuscatedGetter( intValue = -1943179967 ) @Export("index") int index; @ObfuscatedName("e") volatile boolean field3185; @ObfuscatedName("ab") boolean field3186; @ObfuscatedName("ag") @Export("validGroups") volatile boolean[] validGroups; @ObfuscatedName("ae") @ObfuscatedGetter( intValue = 865644011 ) @Export("indexCrc") int indexCrc; @ObfuscatedName("an") @ObfuscatedGetter( intValue = -193414103 ) @Export("indexVersion") int indexVersion; @ObfuscatedName("am") @ObfuscatedGetter( intValue = 196080105 ) int field3191; static { Archive_crc = new CRC32(); // L: 17 } @ObfuscatedSignature( descriptor = "(Llz;Llz;IZZZ)V" ) public Archive(ArchiveDisk var1, ArchiveDisk var2, int var3, boolean var4, boolean var5, boolean var6) { super(var4, var5); // L: 23 this.field3185 = false; // L: 14 this.field3186 = false; // L: 15 this.field3191 = -1; // L: 20 this.archiveDisk = var1; // L: 24 this.masterDisk = var2; // L: 25 this.index = var3; // L: 26 this.field3186 = var6; // L: 27 Widget.method4174(this, this.index); // L: 28 } // L: 29 @ObfuscatedName("k") @ObfuscatedSignature( descriptor = "(II)V", garbageValue = "176946518" ) @Export("loadRegionFromGroup") void loadRegionFromGroup(int var1) { SecureRandomCallable.method1204(this.index, var1); } @ObfuscatedName("g") @ObfuscatedSignature( descriptor = "(II)I", garbageValue = "-21407020" ) @Export("groupLoadPercent") int groupLoadPercent(int var1) { if (super.groups[var1] != null) { // L: 200 return 100; } else { return this.validGroups[var1] ? 100 : World.method1845(this.index, var1); // L: 201 202 } } @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "(II)V", garbageValue = "450530880" ) @Export("loadGroup") void loadGroup(int var1) { if (this.archiveDisk != null && this.validGroups != null && this.validGroups[var1]) { // L: 48 ArchiveDisk var2 = this.archiveDisk; // L: 49 byte[] var4 = null; // L: 52 synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 53 for (ArchiveDiskAction var6 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var6 != null; var6 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) { // L: 54 if (var6.key == (long)var1 && var2 == var6.archiveDisk && var6.type == 0) { // L: 55 var4 = var6.data; // L: 56 break; // L: 57 } } } if (var4 != null) { // L: 61 this.load(var2, var1, var4, true); // L: 62 } else { byte[] var5 = var2.read(var1); // L: 65 this.load(var2, var1, var5, true); // L: 66 } } else { Varps.requestNetFile(this, this.index, var1, super.groupCrcs[var1], (byte)2, true); // L: 69 } } // L: 70 @ObfuscatedName("cy") @ObfuscatedSignature( descriptor = "(I)Z", garbageValue = "-1735619365" ) public boolean method4340() { return this.field3185; // L: 32 } @ObfuscatedName("cb") @ObfuscatedSignature( descriptor = "(I)I", garbageValue = "-121154638" ) @Export("percentage") public int percentage() { if (this.field3185) { // L: 36 return 100; } else if (super.groups != null) { // L: 37 return 99; } else { int var1 = World.method1845(255, this.index); // L: 38 if (var1 >= 100) { // L: 39 var1 = 99; } return var1; // L: 40 } } @ObfuscatedName("cl") @ObfuscatedSignature( descriptor = "(III)V", garbageValue = "1573806265" ) @Export("loadIndex") void loadIndex(int var1, int var2) { this.indexCrc = var1; // L: 73 this.indexVersion = var2; // L: 74 if (this.masterDisk != null) { // L: 75 int var3 = this.index; // L: 76 ArchiveDisk var4 = this.masterDisk; // L: 77 byte[] var6 = null; // L: 80 synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 81 for (ArchiveDiskAction var8 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.last(); var8 != null; var8 = (ArchiveDiskAction)ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.previous()) { // L: 82 if (var8.key == (long)var3 && var4 == var8.archiveDisk && var8.type == 0) { // L: 83 var6 = var8.data; // L: 84 break; // L: 85 } } } if (var6 != null) { // L: 89 this.load(var4, var3, var6, true); // L: 90 } else { byte[] var7 = var4.read(var3); // L: 93 this.load(var4, var3, var7, true); // L: 94 } } else { Varps.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 97 } } // L: 98 @ObfuscatedName("dx") @ObfuscatedSignature( descriptor = "(I[BZZB)V", garbageValue = "-85" ) @Export("write") void write(int var1, byte[] var2, boolean var3, boolean var4) { if (var3) { // L: 101 if (this.field3185) { // L: 102 throw new RuntimeException(); // L: 103 } if (this.masterDisk != null) { // L: 105 Calendar.method4039(this.index, var2, this.masterDisk); } this.decodeIndex(var2); // L: 106 this.loadAllLocal(); // L: 107 } else { var2[var2.length - 2] = (byte)(super.groupVersions[var1] >> 8); // L: 110 var2[var2.length - 1] = (byte)super.groupVersions[var1]; // L: 111 if (this.archiveDisk != null) { // L: 112 ArchiveDisk var5 = this.archiveDisk; // L: 113 ArchiveDiskAction var6 = new ArchiveDiskAction(); // L: 115 var6.type = 0; // L: 116 var6.key = (long)var1; // L: 117 var6.data = var2; // L: 118 var6.archiveDisk = var5; // L: 119 synchronized(ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue) { // L: 120 ArchiveDiskActionHandler.ArchiveDiskActionHandler_requestQueue.addFirst(var6); // L: 121 } // L: 122 WorldMapArea.method415(); // L: 123 this.validGroups[var1] = true; // L: 125 } if (var4) { // L: 127 super.groups[var1] = MenuAction.method2140(var2, false); } } } // L: 129 @ObfuscatedName("dq") @ObfuscatedSignature( descriptor = "(Llz;I[BZI)V", garbageValue = "-2086018580" ) @Export("load") void load(ArchiveDisk var1, int var2, byte[] var3, boolean var4) { int var5; if (var1 == this.masterDisk) { // L: 132 if (this.field3185) { // L: 133 throw new RuntimeException(); // L: 134 } if (var3 == null) { // L: 136 Varps.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 137 return; // L: 138 } Archive_crc.reset(); // L: 140 Archive_crc.update(var3, 0, var3.length); // L: 141 var5 = (int)Archive_crc.getValue(); // L: 142 if (var5 != this.indexCrc) { // L: 143 Varps.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 144 return; // L: 145 } Buffer var9 = new Buffer(DevicePcmPlayerProvider.decompressBytes(var3)); // L: 147 int var7 = var9.readUnsignedByte(); // L: 148 if (var7 != 5 && var7 != 6) { // L: 149 throw new RuntimeException(var7 + "," + this.index + "," + var2); } int var8 = 0; // L: 150 if (var7 >= 6) { // L: 151 var8 = var9.readInt(); } if (var8 != this.indexVersion) { // L: 152 Varps.requestNetFile(this, 255, this.index, this.indexCrc, (byte)0, true); // L: 153 return; // L: 154 } this.decodeIndex(var3); // L: 156 this.loadAllLocal(); // L: 157 } else { if (!var4 && var2 == this.field3191) { // L: 160 this.field3185 = true; // L: 161 } if (var3 == null || var3.length <= 2) { // L: 163 this.validGroups[var2] = false; // L: 164 if (this.field3186 || var4) { // L: 165 Varps.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4); } return; // L: 166 } Archive_crc.reset(); // L: 168 Archive_crc.update(var3, 0, var3.length - 2); // L: 169 var5 = (int)Archive_crc.getValue(); // L: 170 int var6 = ((var3[var3.length - 2] & 255) << 8) + (var3[var3.length - 1] & 255); // L: 171 if (var5 != super.groupCrcs[var2] || var6 != super.groupVersions[var2]) { // L: 172 this.validGroups[var2] = false; // L: 173 if (this.field3186 || var4) { // L: 174 Varps.requestNetFile(this, this.index, var2, super.groupCrcs[var2], (byte)2, var4); } return; // L: 175 } this.validGroups[var2] = true; // L: 177 if (var4) { // L: 178 super.groups[var2] = MenuAction.method2140(var3, false); } } } // L: 180 @ObfuscatedName("dv") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "-1665634170" ) @Export("loadAllLocal") void loadAllLocal() { this.validGroups = new boolean[super.groups.length]; // L: 183 int var1; for (var1 = 0; var1 < this.validGroups.length; ++var1) { // L: 184 this.validGroups[var1] = false; } if (this.archiveDisk == null) { // L: 185 this.field3185 = true; // L: 186 } else { this.field3191 = -1; // L: 189 for (var1 = 0; var1 < this.validGroups.length; ++var1) { // L: 190 if (super.fileCounts[var1] > 0) { // L: 191 FaceNormal.method3388(var1, this.archiveDisk, this); // L: 192 this.field3191 = var1; // L: 193 } } if (this.field3191 == -1) { // L: 196 this.field3185 = true; } } } // L: 187 197 @ObfuscatedName("dh") @ObfuscatedSignature( descriptor = "(II)Z", garbageValue = "1146197798" ) public boolean method4349(int var1) { return this.validGroups[var1]; // L: 206 } @ObfuscatedName("dd") @ObfuscatedSignature( descriptor = "(II)Z", garbageValue = "1915493362" ) public boolean method4350(int var1) { return this.getGroupFileIds(var1) != null; // L: 210 } @ObfuscatedName("db") @ObfuscatedSignature( descriptor = "(B)I", garbageValue = "-18" ) @Export("loadPercent") public int loadPercent() { int var1 = 0; // L: 214 int var2 = 0; // L: 215 int var3; for (var3 = 0; var3 < super.groups.length; ++var3) { // L: 216 if (super.fileCounts[var3] > 0) { // L: 217 var1 += 100; // L: 218 var2 += this.groupLoadPercent(var3); // L: 219 } } if (var1 == 0) { // L: 222 return 100; } else { var3 = var2 * 100 / var1; // L: 223 return var3; // L: 224 } } @ObfuscatedName("s") @ObfuscatedSignature( descriptor = "(S)Lgb;", garbageValue = "-18940" ) public static PacketBufferNode method4385() { PacketBufferNode var0 = ItemContainer.method1226(); // L: 42 var0.clientPacket = null; // L: 43 var0.clientPacketLength = 0; // L: 44 var0.packetBuffer = new PacketBuffer(5000); // L: 45 return var0; // L: 46 } @ObfuscatedName("t") @ObfuscatedSignature( descriptor = "(II)Z", garbageValue = "961891121" ) public static boolean method4386(int var0) { return (var0 >> 20 & 1) != 0; // L: 21 } @ObfuscatedName("hx") @ObfuscatedSignature( descriptor = "(Lky;I)V", garbageValue = "2129310615" ) static final void method4357(PacketBuffer var0) { for (int var1 = 0; var1 < Client.field702; ++var1) { // L: 6858 int var2 = Client.field721[var1]; // L: 6859 NPC var3 = Client.npcs[var2]; // L: 6860 int var4 = var0.readUnsignedByte(); // L: 6861 int var5; int var6; int var7; int var8; if ((var4 & 128) != 0) { // L: 6862 var5 = var0.method5639(); // L: 6863 int var9; int var10; int var11; if (var5 > 0) { // L: 6864 for (var6 = 0; var6 < var5; ++var6) { // L: 6865 var8 = -1; // L: 6867 var9 = -1; // L: 6868 var10 = -1; // L: 6869 var7 = var0.readUShortSmart(); // L: 6870 if (var7 == 32767) { // L: 6871 var7 = var0.readUShortSmart(); // L: 6872 var9 = var0.readUShortSmart(); // L: 6873 var8 = var0.readUShortSmart(); // L: 6874 var10 = var0.readUShortSmart(); // L: 6875 } else if (var7 != 32766) { // L: 6877 var9 = var0.readUShortSmart(); // L: 6878 } else { var7 = -1; // L: 6880 } var11 = var0.readUShortSmart(); // L: 6881 var3.addHitSplat(var7, var9, var8, var10, Client.cycle, var11); // L: 6882 } } var6 = var0.readUnsignedByte(); // L: 6885 if (var6 > 0) { // L: 6886 for (var7 = 0; var7 < var6; ++var7) { // L: 6887 var8 = var0.readUShortSmart(); // L: 6888 var9 = var0.readUShortSmart(); // L: 6889 if (var9 != 32767) { // L: 6890 var10 = var0.readUShortSmart(); // L: 6891 var11 = var0.method5612(); // L: 6892 int var12 = var9 > 0 ? var0.method5639() : var11; // L: 6893 var3.addHealthBar(var8, Client.cycle, var9, var10, var11, var12); // L: 6894 } else { var3.removeHealthBar(var8); // L: 6896 } } } } if ((var4 & 16) != 0) { // L: 6900 var3.targetIndex = var0.method5656(); // L: 6901 if (var3.targetIndex == 65535) { // L: 6902 var3.targetIndex = -1; } } if ((var4 & 8) != 0) { // L: 6904 var3.field997 = var0.method5650(); // L: 6905 var3.field1016 = var0.method5730(); // L: 6906 var3.field1015 = var0.method5649(); // L: 6907 var3.field1017 = var0.method5649(); // L: 6908 var3.field1026 = var0.method5657() + Client.cycle; // L: 6909 var3.field1019 = var0.method5657() + Client.cycle; // L: 6910 var3.field1027 = var0.readUnsignedShort(); // L: 6911 var3.pathLength = 1; // L: 6912 var3.field973 = 0; // L: 6913 var3.field997 += var3.pathX[0]; // L: 6914 var3.field1016 += var3.pathY[0]; // L: 6915 var3.field1015 += var3.pathX[0]; // L: 6916 var3.field1017 += var3.pathY[0]; // L: 6917 } if ((var4 & 2) != 0) { // L: 6919 var3.definition = Skeleton.getNpcDefinition(var0.readUnsignedShort()); // L: 6920 var3.field1014 = var3.definition.size; // L: 6921 var3.field1025 = var3.definition.rotation; // L: 6922 var3.walkSequence = var3.definition.walkSequence; // L: 6923 var3.walkBackSequence = var3.definition.walkBackSequence; // L: 6924 var3.walkLeftSequence = var3.definition.walkLeftSequence; // L: 6925 var3.walkRightSequence = var3.definition.walkRightSequence; // L: 6926 var3.idleSequence = var3.definition.idleSequence; // L: 6927 var3.turnLeftSequence = var3.definition.turnLeftSequence; // L: 6928 var3.turnRightSequence = var3.definition.turnRightSequence; // L: 6929 } if ((var4 & 4) != 0) { // L: 6931 var5 = var0.readUnsignedShort(); // L: 6932 if (var5 == 65535) { // L: 6933 var5 = -1; } var6 = var0.method5639(); // L: 6934 if (var5 == var3.sequence && var5 != -1) { // L: 6935 var7 = WorldMapRegion.SequenceDefinition_get(var5).field3535; // L: 6936 if (var7 == 1) { // L: 6937 var3.sequenceFrame = 0; // L: 6938 var3.sequenceFrameCycle = 0; // L: 6939 var3.sequenceDelay = var6; // L: 6940 var3.field1009 = 0; // L: 6941 } if (var7 == 2) { // L: 6943 var3.field1009 = 0; // L: 6944 } } else if (var5 == -1 || var3.sequence == -1 || WorldMapRegion.SequenceDefinition_get(var5).field3537 >= WorldMapRegion.SequenceDefinition_get(var3.sequence).field3537) { // L: 6947 var3.sequence = var5; // L: 6948 var3.sequenceFrame = 0; // L: 6949 var3.sequenceFrameCycle = 0; // L: 6950 var3.sequenceDelay = var6; // L: 6951 var3.field1009 = 0; // L: 6952 var3.field973 = var3.pathLength; // L: 6953 } } if ((var4 & 1) != 0) { // L: 6957 var3.overheadText = var0.readStringCp1252NullTerminated(); // L: 6958 var3.overheadTextCyclesRemaining = 100; // L: 6959 } if ((var4 & 32) != 0) { // L: 6961 var3.spotAnimation = var0.method5655(); // L: 6962 var5 = var0.method5678(); // L: 6963 var3.field1003 = var5 >> 16; // L: 6964 var3.field1013 = (var5 & 65535) + Client.cycle; // L: 6965 var3.spotAnimationFrame = 0; // L: 6966 var3.spotAnimationFrameCycle = 0; // L: 6967 if (var3.field1013 > Client.cycle) { // L: 6968 var3.spotAnimationFrame = -1; } if (var3.spotAnimation == 65535) { // L: 6969 var3.spotAnimation = -1; } } if ((var4 & 64) != 0) { // L: 6971 var5 = var0.method5656(); // L: 6972 var6 = var0.method5655(); // L: 6973 var7 = var3.x - (var5 - WorldMapManager.baseX - WorldMapManager.baseX) * 64; // L: 6974 var8 = var3.y - (var6 - WorldMapLabel.baseY - WorldMapLabel.baseY) * 64; // L: 6975 if (var7 != 0 || var8 != 0) { // L: 6976 var3.field1000 = (int)(Math.atan2((double)var7, (double)var8) * 325.949D) & 2047; } } } } // L: 6979 @ObfuscatedName("hc") @ObfuscatedSignature( descriptor = "(ILjava/lang/String;I)V", garbageValue = "-1501250507" ) static void method4383(int var0, String var1) { int var2 = Players.Players_count; // L: 8057 int[] var3 = Players.Players_indices; // L: 8058 boolean var4 = false; // L: 8059 Username var5 = new Username(var1, WorldMapAreaData.loginType); // L: 8060 for (int var6 = 0; var6 < var2; ++var6) { // L: 8061 Player var7 = Client.players[var3[var6]]; // L: 8062 if (var7 != null && var7 != WorldMapLabelSize.localPlayer && var7.username != null && var7.username.equals(var5)) { // L: 8063 PacketBufferNode var8; if (var0 == 1) { // L: 8064 var8 = Client.getPacketBufferNode(ClientPacket.field2320, Client.packetWriter.isaacCipher); // L: 8066 var8.packetBuffer.method5665(var3[var6]); // L: 8067 var8.packetBuffer.method5644(0); // L: 8068 Client.packetWriter.addNode(var8); // L: 8069 } else if (var0 == 4) { // L: 8071 var8 = Client.getPacketBufferNode(ClientPacket.field2246, Client.packetWriter.isaacCipher); // L: 8073 var8.packetBuffer.method5653(var3[var6]); // L: 8074 var8.packetBuffer.writeIntME(0); // L: 8075 Client.packetWriter.addNode(var8); // L: 8076 } else if (var0 == 6) { // L: 8078 var8 = Client.getPacketBufferNode(ClientPacket.field2274, Client.packetWriter.isaacCipher); // L: 8080 var8.packetBuffer.method5665(var3[var6]); // L: 8081 var8.packetBuffer.writeIntME(0); // L: 8082 Client.packetWriter.addNode(var8); // L: 8083 } else if (var0 == 7) { // L: 8085 var8 = Client.getPacketBufferNode(ClientPacket.field2343, Client.packetWriter.isaacCipher); // L: 8087 var8.packetBuffer.writeIntME(0); // L: 8088 var8.packetBuffer.method5654(var3[var6]); // L: 8089 Client.packetWriter.addNode(var8); // L: 8090 } var4 = true; // L: 8092 break; } } if (!var4) { // L: 8096 WorldMapRectangle.addGameMessage(4, "", "Unable to find " + var1); } } // L: 8097 }