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("it") @Implements("IndexCache") public class IndexCache extends AbstractIndexCache { @ObfuscatedName("aj") @Export("IndexCache_crc") static CRC32 IndexCache_crc; @ObfuscatedName("c") @ObfuscatedSignature( signature = "Lff;" ) @Export("indexStore") IndexStore indexStore; @ObfuscatedName("r") @ObfuscatedSignature( signature = "Lff;" ) @Export("referenceStore") IndexStore referenceStore; @ObfuscatedName("p") @ObfuscatedGetter( intValue = -1579549759 ) @Export("index") int index; @ObfuscatedName("v") @Export("__v") volatile boolean __v; @ObfuscatedName("ag") @Export("__ag") boolean __ag; @ObfuscatedName("aq") @Export("validArchives") volatile boolean[] validArchives; @ObfuscatedName("av") @ObfuscatedGetter( intValue = 1472870917 ) @Export("indexReferenceCrc") int indexReferenceCrc; @ObfuscatedName("ar") @ObfuscatedGetter( intValue = -785528219 ) @Export("indexReferenceVersion") int indexReferenceVersion; @ObfuscatedName("ac") @ObfuscatedGetter( intValue = -1884661133 ) @Export("__ac") int __ac; static { IndexCache_crc = new CRC32(); } @ObfuscatedSignature( signature = "(Lff;Lff;IZZZ)V" ) public IndexCache(IndexStore var1, IndexStore var2, int var3, boolean var4, boolean var5, boolean var6) { super(var4, var5); this.__v = false; this.__ag = false; this.__ac = -1; this.indexStore = var1; this.referenceStore = var2; this.index = var3; this.__ag = var6; int var8 = this.index; if(Players.NetCache_reference != null) { Players.NetCache_reference.index = var8 * 8 + 5; int var9 = Players.NetCache_reference.readInt(); int var10 = Players.NetCache_reference.readInt(); this.loadIndexReference(var9, var10); } else { PacketBuffer.requestNetFile((IndexCache)null, 255, 255, 0, (byte)0, true); NetCache.NetCache_indexCaches[var8] = this; } } @ObfuscatedName("f") @ObfuscatedSignature( signature = "(II)V", garbageValue = "2102142648" ) void __f_392(int var1) { int var2 = this.index; long var3 = (long)((var2 << 16) + var1); NetFileRequest var5 = (NetFileRequest)NetCache.NetCache_pendingWrites.get(var3); if(var5 != null) { NetCache.NetCache_pendingWritesQueue.addLast(var5); } } @ObfuscatedName("e") @ObfuscatedSignature( signature = "(II)I", garbageValue = "-1809769865" ) int archiveLoadPercent(int var1) { return super.archives[var1] != null?100:(this.validArchives[var1]?100:class54.method1086(this.index, var1)); } @ObfuscatedName("z") @ObfuscatedSignature( signature = "(II)V", garbageValue = "-1829145107" ) void loadArchive(int var1) { if(this.indexStore != null && this.validArchives != null && this.validArchives[var1]) { IndexStore var2 = this.indexStore; byte[] var4 = null; NodeDeque var5 = IndexStoreActionHandler.IndexStoreActionHandler_requestQueue; synchronized(IndexStoreActionHandler.IndexStoreActionHandler_requestQueue) { for(IndexStoreAction var6 = (IndexStoreAction)IndexStoreActionHandler.IndexStoreActionHandler_requestQueue.last(); var6 != null; var6 = (IndexStoreAction)IndexStoreActionHandler.IndexStoreActionHandler_requestQueue.previous()) { if(var6.key == (long)var1 && var2 == var6.indexStore && var6.type == 0) { var4 = var6.data; break; } } } if(var4 != null) { this.load(var2, var1, var4, true); } else { byte[] var9 = var2.read(var1); this.load(var2, var1, var9, true); } } else { PacketBuffer.requestNetFile(this, this.index, var1, super.archiveCrcs[var1], (byte)2, true); } } @ObfuscatedName("cx") @ObfuscatedSignature( signature = "(I)Z", garbageValue = "1750279412" ) @Export("__cx_404") public boolean __cx_404() { return this.__v; } @ObfuscatedName("ca") @ObfuscatedSignature( signature = "(I)I", garbageValue = "1671499504" ) @Export("__ca_405") public int __ca_405() { if(this.__v) { return 100; } else if(super.archives != null) { return 99; } else { int var1 = class54.method1086(255, this.index); if(var1 >= 100) { var1 = 99; } return var1; } } @ObfuscatedName("co") @ObfuscatedSignature( signature = "(III)V", garbageValue = "-1621053520" ) @Export("loadIndexReference") public void loadIndexReference(int var1, int var2) { this.indexReferenceCrc = var1; this.indexReferenceVersion = var2; if(this.referenceStore != null) { int var3 = this.index; IndexStore var4 = this.referenceStore; byte[] var6 = null; NodeDeque var7 = IndexStoreActionHandler.IndexStoreActionHandler_requestQueue; synchronized(IndexStoreActionHandler.IndexStoreActionHandler_requestQueue) { for(IndexStoreAction var8 = (IndexStoreAction)IndexStoreActionHandler.IndexStoreActionHandler_requestQueue.last(); var8 != null; var8 = (IndexStoreAction)IndexStoreActionHandler.IndexStoreActionHandler_requestQueue.previous()) { if(var8.key == (long)var3 && var4 == var8.indexStore && var8.type == 0) { var6 = var8.data; break; } } } if(var6 != null) { this.load(var4, var3, var6, true); } else { byte[] var11 = var4.read(var3); this.load(var4, var3, var11, true); } } else { PacketBuffer.requestNetFile(this, 255, this.index, this.indexReferenceCrc, (byte)0, true); } } @ObfuscatedName("de") @ObfuscatedSignature( signature = "(I[BZZB)V", garbageValue = "24" ) @Export("write") public void write(int var1, byte[] var2, boolean var3, boolean var4) { if(var3) { if(this.__v) { throw new RuntimeException(); } if(this.referenceStore != null) { Widget.method4499(this.index, var2, this.referenceStore); } this.setIndexReference(var2); this.loadAllLocal(); } else { var2[var2.length - 2] = (byte)(super.archiveVersions[var1] >> 8); var2[var2.length - 1] = (byte)super.archiveVersions[var1]; if(this.indexStore != null) { Widget.method4499(var1, var2, this.indexStore); this.validArchives[var1] = true; } if(var4) { super.archives[var1] = Projectile.byteArrayToObject(var2, false); } } } @ObfuscatedName("dx") @ObfuscatedSignature( signature = "(Lff;I[BZI)V", garbageValue = "-2045340856" ) @Export("load") void load(IndexStore var1, int var2, byte[] var3, boolean var4) { int var5; if(var1 == this.referenceStore) { if(this.__v) { throw new RuntimeException(); } if(var3 == null) { PacketBuffer.requestNetFile(this, 255, this.index, this.indexReferenceCrc, (byte)0, true); return; } IndexCache_crc.reset(); IndexCache_crc.update(var3, 0, var3.length); var5 = (int)IndexCache_crc.getValue(); if(var5 != this.indexReferenceCrc) { PacketBuffer.requestNetFile(this, 255, this.index, this.indexReferenceCrc, (byte)0, true); return; } Buffer var9 = new Buffer(Strings.decompressBytes(var3)); int var7 = var9.readUnsignedByte(); if(var7 != 5 && var7 != 6) { throw new RuntimeException(var7 + "," + this.index + "," + var2); } int var8 = 0; if(var7 >= 6) { var8 = var9.readInt(); } if(var8 != this.indexReferenceVersion) { PacketBuffer.requestNetFile(this, 255, this.index, this.indexReferenceCrc, (byte)0, true); return; } this.setIndexReference(var3); this.loadAllLocal(); } else { if(!var4 && var2 == this.__ac) { this.__v = true; } if(var3 == null || var3.length <= 2) { this.validArchives[var2] = false; if(this.__ag || var4) { PacketBuffer.requestNetFile(this, this.index, var2, super.archiveCrcs[var2], (byte)2, var4); } return; } IndexCache_crc.reset(); IndexCache_crc.update(var3, 0, var3.length - 2); var5 = (int)IndexCache_crc.getValue(); int var6 = ((var3[var3.length - 2] & 255) << 8) + (var3[var3.length - 1] & 255); if(var5 != super.archiveCrcs[var2] || var6 != super.archiveVersions[var2]) { this.validArchives[var2] = false; if(this.__ag || var4) { PacketBuffer.requestNetFile(this, this.index, var2, super.archiveCrcs[var2], (byte)2, var4); } return; } this.validArchives[var2] = true; if(var4) { super.archives[var2] = Projectile.byteArrayToObject(var3, false); } } } @ObfuscatedName("dt") @ObfuscatedSignature( signature = "(I)V", garbageValue = "1357733042" ) @Export("loadAllLocal") void loadAllLocal() { this.validArchives = new boolean[super.archives.length]; int var1; for(var1 = 0; var1 < this.validArchives.length; ++var1) { this.validArchives[var1] = false; } if(this.indexStore == null) { this.__v = true; } else { this.__ac = -1; for(var1 = 0; var1 < this.validArchives.length; ++var1) { if(super.recordCounts[var1] > 0) { NPC.method2009(var1, this.indexStore, this); this.__ac = var1; } } if(this.__ac == -1) { this.__v = true; } } } @ObfuscatedName("dn") @ObfuscatedSignature( signature = "(IB)Z", garbageValue = "0" ) @Export("__dn_407") public boolean __dn_407(int var1) { return this.validArchives[var1]; } @ObfuscatedName("df") @ObfuscatedSignature( signature = "(II)Z", garbageValue = "1419648188" ) @Export("__df_408") public boolean __df_408(int var1) { return this.__j_395(var1) != null; } @ObfuscatedName("da") @ObfuscatedSignature( signature = "(I)I", garbageValue = "-1809381772" ) @Export("loadPercent") public int loadPercent() { int var1 = 0; int var2 = 0; int var3; for(var3 = 0; var3 < super.archives.length; ++var3) { if(super.recordCounts[var3] > 0) { var1 += 100; var2 += this.archiveLoadPercent(var3); } } if(var1 == 0) { return 100; } else { var3 = var2 * 100 / var1; return var3; } } @ObfuscatedName("jc") @ObfuscatedSignature( signature = "(IB)V", garbageValue = "-34" ) static final void method4703(int var0) { class12.method159(); for(ObjectSound var1 = (ObjectSound)ObjectSound.objectSounds.last(); var1 != null; var1 = (ObjectSound)ObjectSound.objectSounds.previous()) { if(var1.obj != null) { var1.set(); } } int var4 = SecureRandomCallable.method1140(var0).type; if(var4 != 0) { int var2 = Varps.Varps_main[var0]; if(var4 == 1) { if(var2 == 1) { Rasterizer3D.Rasterizer3D_setBrightness(0.9D); ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.9D); } if(var2 == 2) { Rasterizer3D.Rasterizer3D_setBrightness(0.8D); ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.8D); } if(var2 == 3) { Rasterizer3D.Rasterizer3D_setBrightness(0.7D); ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.7D); } if(var2 == 4) { Rasterizer3D.Rasterizer3D_setBrightness(0.6D); ((TextureProvider)Rasterizer3D.Rasterizer3D_textureLoader).setBrightness(0.6D); } ObjectDefinition.method5041(); } if(var4 == 3) { short var3 = 0; if(var2 == 0) { var3 = 255; } if(var2 == 1) { var3 = 192; } if(var2 == 2) { var3 = 128; } if(var2 == 3) { var3 = 64; } if(var2 == 4) { var3 = 0; } if(var3 != Client.__client_qf) { if(Client.__client_qf == 0 && Client.__client_qy != -1) { Login.method2076(UserComparator3.indexCache6, Client.__client_qy, 0, var3, false); Client.__client_qq = false; } else if(var3 == 0) { class214.midiPcmStream.clear(); class214.__hf_o = 1; class214.__hf_u = null; Client.__client_qq = false; } else { class203.method4008(var3); } Client.__client_qf = var3; } } if(var4 == 4) { if(var2 == 0) { Client.__client_qp = 127; } if(var2 == 1) { Client.__client_qp = 96; } if(var2 == 2) { Client.__client_qp = 64; } if(var2 == 3) { Client.__client_qp = 32; } if(var2 == 4) { Client.__client_qp = 0; } } if(var4 == 5) { Client.__client_ku = var2; } if(var4 == 6) { Client.chatEffects = var2; } if(var4 == 9) { Client.__client_mb = var2; } if(var4 == 10) { if(var2 == 0) { Client.__client_qc = 127; } if(var2 == 1) { Client.__client_qc = 96; } if(var2 == 2) { Client.__client_qc = 64; } if(var2 == 3) { Client.__client_qc = 32; } if(var2 == 4) { Client.__client_qc = 0; } } if(var4 == 17) { Client.followerIndex = var2 & 65535; } if(var4 == 18) { Client.playerAttackOption = (AttackOption)ScriptFrame.findEnumerated(ClientPacket.method3665(), var2); if(Client.playerAttackOption == null) { Client.playerAttackOption = AttackOption.AttackOption_dependsOnCombatLevels; } } if(var4 == 19) { if(var2 == -1) { Client.combatTargetPlayerIndex = -1; } else { Client.combatTargetPlayerIndex = var2 & 2047; } } if(var4 == 22) { Client.npcAttackOption = (AttackOption)ScriptFrame.findEnumerated(ClientPacket.method3665(), var2); if(Client.npcAttackOption == null) { Client.npcAttackOption = AttackOption.AttackOption_dependsOnCombatLevels; } } } } }