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("im") @Implements("KitDefinition") public class KitDefinition extends DualNode { @ObfuscatedName("q") @ObfuscatedSignature( signature = "Lhp;" ) @Export("KitDefinition_archive") static AbstractArchive KitDefinition_archive; @ObfuscatedName("e") @ObfuscatedGetter( intValue = -2099754999 ) @Export("KitDefinition_fileCount") public static int KitDefinition_fileCount; @ObfuscatedName("p") @ObfuscatedSignature( signature = "Lel;" ) @Export("KitDefinition_cached") public static EvictingDualNodeHashTable KitDefinition_cached; @ObfuscatedName("k") @ObfuscatedGetter( intValue = 603181695 ) @Export("bodypartID") public int bodypartID; @ObfuscatedName("l") @Export("models2") int[] models2; @ObfuscatedName("b") @Export("recolorFrom") short[] recolorFrom; @ObfuscatedName("i") @Export("recolorTo") short[] recolorTo; @ObfuscatedName("c") @Export("retextureFrom") short[] retextureFrom; @ObfuscatedName("f") @Export("retextureTo") short[] retextureTo; @ObfuscatedName("m") @Export("models") int[] models; @ObfuscatedName("u") @Export("nonSelectable") public boolean nonSelectable; static { KitDefinition_cached = new EvictingDualNodeHashTable(64); } KitDefinition() { this.bodypartID = -1; this.models = new int[]{-1, -1, -1, -1, -1}; this.nonSelectable = false; } @ObfuscatedName("e") @ObfuscatedSignature( signature = "(Lkf;I)V", garbageValue = "517161236" ) @Export("decode") void decode(Buffer var1) { while (true) { int var2 = var1.readUnsignedByte(); if (var2 == 0) { return; } this.decodeNext(var1, var2); } } @ObfuscatedName("p") @ObfuscatedSignature( signature = "(Lkf;II)V", garbageValue = "-1946344058" ) @Export("decodeNext") void decodeNext(Buffer var1, int var2) { if (var2 == 1) { this.bodypartID = var1.readUnsignedByte(); } else { int var3; int var4; if (var2 == 2) { var3 = var1.readUnsignedByte(); this.models2 = new int[var3]; for (var4 = 0; var4 < var3; ++var4) { this.models2[var4] = var1.readUnsignedShort(); } } else if (var2 == 3) { this.nonSelectable = true; } else if (var2 == 40) { var3 = var1.readUnsignedByte(); this.recolorFrom = new short[var3]; this.recolorTo = new short[var3]; for (var4 = 0; var4 < var3; ++var4) { this.recolorFrom[var4] = (short)var1.readUnsignedShort(); this.recolorTo[var4] = (short)var1.readUnsignedShort(); } } else if (var2 == 41) { var3 = var1.readUnsignedByte(); this.retextureFrom = new short[var3]; this.retextureTo = new short[var3]; for (var4 = 0; var4 < var3; ++var4) { this.retextureFrom[var4] = (short)var1.readUnsignedShort(); this.retextureTo[var4] = (short)var1.readUnsignedShort(); } } else if (var2 >= 60 && var2 < 70) { this.models[var2 - 60] = var1.readUnsignedShort(); } } } @ObfuscatedName("k") @ObfuscatedSignature( signature = "(I)Z", garbageValue = "-1807295410" ) @Export("ready") public boolean ready() { if (this.models2 == null) { return true; } else { boolean var1 = true; for (int var2 = 0; var2 < this.models2.length; ++var2) { if (!class288.KitDefinition_modelsArchive.tryLoadFile(this.models2[var2], 0)) { var1 = false; } } return var1; } } @ObfuscatedName("l") @ObfuscatedSignature( signature = "(I)Lds;", garbageValue = "-1043358409" ) @Export("getModelData") public ModelData getModelData() { if (this.models2 == null) { return null; } else { ModelData[] var1 = new ModelData[this.models2.length]; for (int var2 = 0; var2 < this.models2.length; ++var2) { var1[var2] = ModelData.method2769(class288.KitDefinition_modelsArchive, this.models2[var2], 0); } ModelData var4; if (var1.length == 1) { var4 = var1[0]; } else { var4 = new ModelData(var1, var1.length); } int var3; if (this.recolorFrom != null) { for (var3 = 0; var3 < this.recolorFrom.length; ++var3) { var4.recolor(this.recolorFrom[var3], this.recolorTo[var3]); } } if (this.retextureFrom != null) { for (var3 = 0; var3 < this.retextureFrom.length; ++var3) { var4.retexture(this.retextureFrom[var3], this.retextureTo[var3]); } } return var4; } } @ObfuscatedName("b") @ObfuscatedSignature( signature = "(I)Z", garbageValue = "1439364369" ) public boolean method4445() { boolean var1 = true; for (int var2 = 0; var2 < 5; ++var2) { if (this.models[var2] != -1 && !class288.KitDefinition_modelsArchive.tryLoadFile(this.models[var2], 0)) { var1 = false; } } return var1; } @ObfuscatedName("i") @ObfuscatedSignature( signature = "(B)Lds;", garbageValue = "-27" ) public ModelData method4441() { ModelData[] var1 = new ModelData[5]; int var2 = 0; for (int var3 = 0; var3 < 5; ++var3) { if (this.models[var3] != -1) { var1[var2++] = ModelData.method2769(class288.KitDefinition_modelsArchive, this.models[var3], 0); } } ModelData var5 = new ModelData(var1, var2); int var4; if (this.recolorFrom != null) { for (var4 = 0; var4 < this.recolorFrom.length; ++var4) { var5.recolor(this.recolorFrom[var4], this.recolorTo[var4]); } } if (this.retextureFrom != null) { for (var4 = 0; var4 < this.retextureFrom.length; ++var4) { var5.retexture(this.retextureFrom[var4], this.retextureTo[var4]); } } return var5; } @ObfuscatedName("fn") @ObfuscatedSignature( signature = "(I)V", garbageValue = "1752614077" ) static final void method4461() { for (int var0 = 0; var0 < Client.soundEffectCount; ++var0) { int var10002 = Client.queuedSoundEffectDelays[var0]--; if (Client.queuedSoundEffectDelays[var0] >= -10) { SoundEffect var9 = Client.soundEffects[var0]; if (var9 == null) { Object var10000 = null; var9 = SoundEffect.readSoundEffect(class13.archive4, Client.soundEffectIds[var0], 0); if (var9 == null) { continue; } int[] var13 = Client.queuedSoundEffectDelays; var13[var0] += var9.calculateDelay(); Client.soundEffects[var0] = var9; } if (Client.queuedSoundEffectDelays[var0] < 0) { int var2; if (Client.soundLocations[var0] != 0) { int var3 = (Client.soundLocations[var0] & 255) * 128; int var4 = Client.soundLocations[var0] >> 16 & 255; int var5 = var4 * 128 + 64 - Client.localPlayer.x; if (var5 < 0) { var5 = -var5; } int var6 = Client.soundLocations[var0] >> 8 & 255; int var7 = var6 * 128 + 64 - Client.localPlayer.y; if (var7 < 0) { var7 = -var7; } int var8 = var5 + var7 - 128; if (var8 > var3) { Client.queuedSoundEffectDelays[var0] = -100; continue; } if (var8 < 0) { var8 = 0; } var2 = (var3 - var8) * Client.field892 / var3; } else { var2 = Client.soundEffectVolume; } if (var2 > 0) { RawSound var10 = var9.toRawSound().resample(AttackOption.decimator); RawPcmStream var11 = RawPcmStream.createRawPcmStream(var10, 100, var2); var11.setNumLoops(Client.queuedSoundEffectLoops[var0] - 1); SecureRandomCallable.pcmStreamMixer.addSubStream(var11); } Client.queuedSoundEffectDelays[var0] = -100; } } else { --Client.soundEffectCount; for (int var1 = var0; var1 < Client.soundEffectCount; ++var1) { Client.soundEffectIds[var1] = Client.soundEffectIds[var1 + 1]; Client.soundEffects[var1] = Client.soundEffects[var1 + 1]; Client.queuedSoundEffectLoops[var1] = Client.queuedSoundEffectLoops[var1 + 1]; Client.queuedSoundEffectDelays[var1] = Client.queuedSoundEffectDelays[var1 + 1]; Client.soundLocations[var1] = Client.soundLocations[var1 + 1]; } --var0; } } if (Client.field699) { boolean var12; if (class197.field2402 != 0) { var12 = true; } else { var12 = Interpreter.midiPcmStream.isReady(); } if (!var12) { if (Client.field911 != 0 && Client.field889 != -1) { class169.method3503(WorldMapRegion.archive6, Client.field889, 0, Client.field911, false); } Client.field699 = false; } } } }