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("dh") @Implements("SoundCache") public class SoundCache { @ObfuscatedName("qo") @ObfuscatedSignature( signature = "Ldd;" ) @Export("pcmPlayer1") static PcmPlayer pcmPlayer1; @ObfuscatedName("d") public static short[][] field1418; @ObfuscatedName("f") @ObfuscatedGetter( intValue = -1949899187 ) static int field1424; @ObfuscatedName("bv") @ObfuscatedSignature( signature = "[Lls;" ) @Export("worldSelectBackSprites") static Sprite[] worldSelectBackSprites; @ObfuscatedName("df") @ObfuscatedSignature( signature = "Lid;" ) @Export("archive19") static Archive archive19; @ObfuscatedName("s") @ObfuscatedSignature( signature = "Lhz;" ) @Export("soundEffectIndex") AbstractArchive soundEffectIndex; @ObfuscatedName("j") @ObfuscatedSignature( signature = "Lhz;" ) @Export("musicSampleIndex") AbstractArchive musicSampleIndex; @ObfuscatedName("i") @ObfuscatedSignature( signature = "Llm;" ) @Export("musicSamples") NodeHashTable musicSamples; @ObfuscatedName("k") @ObfuscatedSignature( signature = "Llm;" ) @Export("rawSounds") NodeHashTable rawSounds; @ObfuscatedSignature( signature = "(Lhz;Lhz;)V" ) public SoundCache(AbstractArchive var1, AbstractArchive var2) { this.musicSamples = new NodeHashTable(256); this.rawSounds = new NodeHashTable(256); this.soundEffectIndex = var1; this.musicSampleIndex = var2; } @ObfuscatedName("s") @ObfuscatedSignature( signature = "(II[II)Lco;", garbageValue = "2104823387" ) @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("j") @ObfuscatedSignature( signature = "(II[II)Lco;", garbageValue = "-1528849608" ) @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("i") @ObfuscatedSignature( signature = "(I[II)Lco;", garbageValue = "-743934209" ) @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("k") @ObfuscatedSignature( signature = "(I[IB)Lco;", garbageValue = "-113" ) @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("ft") @ObfuscatedSignature( signature = "(II)V", garbageValue = "954967907" ) @Export("playSong") static void playSong(int var0) { if (var0 == -1 && !Client.field858) { class197.midiPcmStream.clear(); class197.field2378 = 1; WorldMapDecoration.musicTrackArchive = null; } else if (var0 != -1 && var0 != Client.field857 && Client.field856 != 0 && !Client.field858) { Projectile.method2040(2, GrandExchangeEvent.archive6, var0, 0, Client.field856, false); } Client.field857 = var0; } @ObfuscatedName("kt") @ObfuscatedSignature( signature = "(Lhp;IIII)V", garbageValue = "-1061413321" ) @Export("drawCompass") static final void drawCompass(Widget var0, int var1, int var2, int var3) { SpriteMask var4 = var0.getSpriteMask(false); if (var4 != null) { if (Client.minimapState < 3) { class32.compass.drawRotatedMaskedCenteredAround(var1, var2, var4.width, var4.height, 25, 25, Client.camAngleY, 256, var4.xStarts, var4.xWidths); } else { Rasterizer2D.Rasterizer2D_fillMaskedRectangle(var1, var2, 0, var4.xStarts, var4.xWidths); } } } }