import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("ds") @Implements("SoundCache") public class SoundCache { @ObfuscatedName("n") @Export("ByteArrayPool_alternativeSizes") public static int[] ByteArrayPool_alternativeSizes; @ObfuscatedName("cq") @ObfuscatedSignature( descriptor = "Lbv;" ) @Export("mouseRecorder") static MouseRecorder mouseRecorder; @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "Lib;" ) @Export("soundEffectIndex") AbstractArchive soundEffectIndex; @ObfuscatedName("v") @ObfuscatedSignature( descriptor = "Lib;" ) @Export("musicSampleIndex") AbstractArchive musicSampleIndex; @ObfuscatedName("x") @ObfuscatedSignature( descriptor = "Lls;" ) @Export("musicSamples") NodeHashTable musicSamples; @ObfuscatedName("w") @ObfuscatedSignature( descriptor = "Lls;" ) @Export("rawSounds") NodeHashTable rawSounds; @ObfuscatedSignature( descriptor = "(Lib;Lib;)V" ) public SoundCache(AbstractArchive var1, AbstractArchive var2) { this.musicSamples = new NodeHashTable(256); // L: 9 this.rawSounds = new NodeHashTable(256); // L: 10 this.soundEffectIndex = var1; // L: 13 this.musicSampleIndex = var2; // L: 14 } // L: 15 @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "(II[II)Ldf;", garbageValue = "-2076179570" ) @Export("getSoundEffect0") RawSound getSoundEffect0(int var1, int var2, int[] var3) { int var4 = var2 ^ (var1 << 4 & 65535 | var1 >>> 12); // L: 18 var4 |= var1 << 16; // L: 19 long var5 = (long)var4; // L: 20 RawSound var7 = (RawSound)this.rawSounds.get(var5); // L: 21 if (var7 != null) { // L: 22 return var7; } else if (var3 != null && var3[0] <= 0) { return null; // L: 23 } else { SoundEffect var8 = SoundEffect.readSoundEffect(this.soundEffectIndex, var1, var2); // L: 24 if (var8 == null) { // L: 25 return null; } else { var7 = var8.toRawSound(); // L: 26 this.rawSounds.put(var7, var5); // L: 27 if (var3 != null) { // L: 28 var3[0] -= var7.samples.length; } return var7; // L: 29 } } } @ObfuscatedName("v") @ObfuscatedSignature( descriptor = "(II[II)Ldf;", garbageValue = "1195097760" ) @Export("getMusicSample0") RawSound getMusicSample0(int var1, int var2, int[] var3) { int var4 = var2 ^ (var1 << 4 & 65535 | var1 >>> 12); // L: 33 var4 |= var1 << 16; // L: 34 long var5 = (long)var4 ^ 4294967296L; // L: 35 RawSound var7 = (RawSound)this.rawSounds.get(var5); // L: 36 if (var7 != null) { // L: 37 return var7; } else if (var3 != null && var3[0] <= 0) { // L: 38 return null; } else { VorbisSample var8 = (VorbisSample)this.musicSamples.get(var5); // L: 39 if (var8 == null) { // L: 40 var8 = VorbisSample.readMusicSample(this.musicSampleIndex, var1, var2); // L: 41 if (var8 == null) { // L: 42 return null; } this.musicSamples.put(var8, var5); // L: 43 } var7 = var8.toRawSound(var3); // L: 45 if (var7 == null) { // L: 46 return null; } else { var8.remove(); // L: 47 this.rawSounds.put(var7, var5); // L: 48 return var7; // L: 49 } } } @ObfuscatedName("x") @ObfuscatedSignature( descriptor = "(I[II)Ldf;", garbageValue = "122861408" ) @Export("getSoundEffect") public RawSound getSoundEffect(int var1, int[] var2) { if (this.soundEffectIndex.getGroupCount() == 1) { // L: 53 return this.getSoundEffect0(0, var1, var2); } else if (this.soundEffectIndex.getGroupFileCount(var1) == 1) { return this.getSoundEffect0(var1, 0, var2); // L: 54 } else { throw new RuntimeException(); // L: 55 } } @ObfuscatedName("w") @ObfuscatedSignature( descriptor = "(I[II)Ldf;", garbageValue = "-2010455709" ) @Export("getMusicSample") public RawSound getMusicSample(int var1, int[] var2) { if (this.musicSampleIndex.getGroupCount() == 1) { // L: 59 return this.getMusicSample0(0, var1, var2); } else if (this.musicSampleIndex.getGroupFileCount(var1) == 1) { return this.getMusicSample0(var1, 0, var2); // L: 60 } else { throw new RuntimeException(); // L: 61 } } }