Files
runelite/runescape-client/src/main/java/SoundCache.java
Owain van Brakel 6485eb9bed project: Rev 182
2019-08-29 16:17:19 +02:00

206 lines
5.2 KiB
Java

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);
}
}
}
}