import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("dq") @Implements("SoundCache") public class SoundCache { @ObfuscatedName("z") @ObfuscatedSignature( signature = "Lhp;" ) @Export("soundEffectIndex") AbstractArchive soundEffectIndex; @ObfuscatedName("n") @ObfuscatedSignature( signature = "Lhp;" ) @Export("musicSampleIndex") AbstractArchive musicSampleIndex; @ObfuscatedName("v") @ObfuscatedSignature( signature = "Llq;" ) @Export("musicSamples") NodeHashTable musicSamples; @ObfuscatedName("u") @ObfuscatedSignature( signature = "Llq;" ) @Export("rawSounds") NodeHashTable rawSounds; @ObfuscatedSignature( signature = "(Lhp;Lhp;)V" ) public SoundCache(AbstractArchive var1, AbstractArchive var2) { this.musicSamples = new NodeHashTable(256); this.rawSounds = new NodeHashTable(256); this.soundEffectIndex = var1; this.musicSampleIndex = var2; } @ObfuscatedName("z") @ObfuscatedSignature( signature = "(II[II)Lch;", garbageValue = "1393796182" ) @Export("getSoundEffect0") RawSound getSoundEffect0(int var1, int var2, int[] var3) { int var4 = var2 ^ (var1 << 4 & 65535 | var1 >>> 12); var4 |= var1 << 16; long var5 = (long)var4; RawSound var7 = (RawSound)this.rawSounds.get(var5); if (var7 != null) { return var7; } else if (var3 != null && var3[0] <= 0) { return null; } else { SoundEffect var8 = SoundEffect.readSoundEffect(this.soundEffectIndex, var1, var2); if (var8 == null) { return null; } else { var7 = var8.toRawSound(); this.rawSounds.put(var7, var5); if (var3 != null) { var3[0] -= var7.samples.length; } return var7; } } } @ObfuscatedName("n") @ObfuscatedSignature( signature = "(II[II)Lch;", garbageValue = "2026666010" ) @Export("getMusicSample0") RawSound getMusicSample0(int var1, int var2, int[] var3) { int var4 = var2 ^ (var1 << 4 & 65535 | var1 >>> 12); var4 |= var1 << 16; long var5 = (long)var4 ^ 4294967296L; RawSound var7 = (RawSound)this.rawSounds.get(var5); if (var7 != null) { return var7; } else if (var3 != null && var3[0] <= 0) { return null; } else { VorbisSample var8 = (VorbisSample)this.musicSamples.get(var5); if (var8 == null) { var8 = VorbisSample.readMusicSample(this.musicSampleIndex, var1, var2); if (var8 == null) { return null; } this.musicSamples.put(var8, var5); } var7 = var8.toRawSound(var3); if (var7 == null) { return null; } else { var8.remove(); this.rawSounds.put(var7, var5); return var7; } } } @ObfuscatedName("v") @ObfuscatedSignature( signature = "(I[II)Lch;", garbageValue = "223393704" ) @Export("getSoundEffect") public RawSound getSoundEffect(int var1, int[] var2) { if (this.soundEffectIndex.getGroupCount() == 1) { return this.getSoundEffect0(0, var1, var2); } else if (this.soundEffectIndex.getGroupFileCount(var1) == 1) { return this.getSoundEffect0(var1, 0, var2); } else { throw new RuntimeException(); } } @ObfuscatedName("u") @ObfuscatedSignature( signature = "(I[II)Lch;", garbageValue = "-1432840715" ) @Export("getMusicSample") public RawSound getMusicSample(int var1, int[] var2) { if (this.musicSampleIndex.getGroupCount() == 1) { return this.getMusicSample0(0, var1, var2); } else if (this.musicSampleIndex.getGroupFileCount(var1) == 1) { return this.getMusicSample0(var1, 0, var2); } else { throw new RuntimeException(); } } @ObfuscatedName("p") @ObfuscatedSignature( signature = "(Ljava/lang/CharSequence;IZI)I", garbageValue = "2108549296" ) @Export("parseIntCustomRadix") static int parseIntCustomRadix(CharSequence var0, int var1, boolean var2) { if (var1 >= 2 && var1 <= 36) { boolean var3 = false; boolean var4 = false; int var5 = 0; int var6 = var0.length(); for (int var7 = 0; var7 < var6; ++var7) { char var8 = var0.charAt(var7); if (var7 == 0) { if (var8 == '-') { var3 = true; continue; } if (var8 == '+') { continue; } } int var10; if (var8 >= '0' && var8 <= '9') { var10 = var8 - '0'; } else if (var8 >= 'A' && var8 <= 'Z') { var10 = var8 - '7'; } else { if (var8 < 'a' || var8 > 'z') { throw new NumberFormatException(); } var10 = var8 - 'W'; } if (var10 >= var1) { throw new NumberFormatException(); } if (var3) { var10 = -var10; } int var9 = var5 * var1 + var10; if (var9 / var1 != var5) { throw new NumberFormatException(); } var5 = var9; var4 = true; } if (!var4) { throw new NumberFormatException(); } else { return var5; } } else { throw new IllegalArgumentException("" + var1); } } }