Files
runelite/runescape-client/src/main/java/MusicPatchPcmStream.java
2020-04-11 13:13:55 +01:00

322 lines
8.7 KiB
Java

import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("hs")
@Implements("MusicPatchPcmStream")
public class MusicPatchPcmStream extends PcmStream {
@ObfuscatedName("as")
@ObfuscatedSignature(
signature = "Lld;"
)
static Bounds field2495;
@ObfuscatedName("x")
@ObfuscatedSignature(
signature = "Lgi;"
)
@Export("superStream")
MidiPcmStream superStream;
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "Ljh;"
)
@Export("queue")
NodeDeque queue;
@ObfuscatedName("k")
@ObfuscatedSignature(
signature = "Ldz;"
)
@Export("mixer")
PcmStreamMixer mixer;
@ObfuscatedSignature(
signature = "(Lgi;)V"
)
MusicPatchPcmStream(MidiPcmStream var1) {
this.queue = new NodeDeque();
this.mixer = new PcmStreamMixer();
this.superStream = var1;
}
@ObfuscatedName("x")
@ObfuscatedSignature(
signature = "(Lhz;[IIIIB)V",
garbageValue = "56"
)
void method3992(MusicPatchNode var1, int[] var2, int var3, int var4, int var5) {
if ((this.superStream.field2428[var1.field2452] & 4) != 0 && var1.field2459 < 0) {
int var6 = this.superStream.field2433[var1.field2452] / PcmPlayer.field1421;
while (true) {
int var7 = (var6 + 1048575 - var1.field2462) / var6;
if (var7 > var4) {
var1.field2462 += var4 * var6;
break;
}
var1.stream.fill(var2, var3, var7);
var3 += var7;
var4 -= var7;
var1.field2462 += var7 * var6 - 1048576;
int var8 = PcmPlayer.field1421 / 100;
int var9 = 262144 / var6;
if (var9 < var8) {
var8 = var9;
}
RawPcmStream var10 = var1.stream;
if (this.superStream.field2431[var1.field2452] == 0) {
var1.stream = RawPcmStream.method2685(var1.rawSound, var10.method2670(), var10.method2662(), var10.method2663());
} else {
var1.stream = RawPcmStream.method2685(var1.rawSound, var10.method2670(), 0, var10.method2663());
this.superStream.method3852(var1, var1.patch.field2485[var1.field2464] < 0);
var1.stream.method2666(var8, var10.method2662());
}
if (var1.patch.field2485[var1.field2464] < 0) {
var1.stream.setNumLoops(-1);
}
var10.method2706(var8);
var10.fill(var2, var3, var5 - var3);
if (var10.method2672()) {
this.mixer.addSubStream(var10);
}
}
}
var1.stream.fill(var2, var3, var4);
}
@ObfuscatedName("m")
@ObfuscatedSignature(
signature = "(Lhz;II)V",
garbageValue = "2036025263"
)
void method3989(MusicPatchNode var1, int var2) {
if ((this.superStream.field2428[var1.field2452] & 4) != 0 && var1.field2459 < 0) {
int var3 = this.superStream.field2433[var1.field2452] / PcmPlayer.field1421;
int var4 = (var3 + 1048575 - var1.field2462) / var3;
var1.field2462 = var3 * var2 + var1.field2462 & 1048575;
if (var4 <= var2) {
if (this.superStream.field2431[var1.field2452] == 0) {
var1.stream = RawPcmStream.method2685(var1.rawSound, var1.stream.method2670(), var1.stream.method2662(), var1.stream.method2663());
} else {
var1.stream = RawPcmStream.method2685(var1.rawSound, var1.stream.method2670(), 0, var1.stream.method2663());
this.superStream.method3852(var1, var1.patch.field2485[var1.field2464] < 0);
}
if (var1.patch.field2485[var1.field2464] < 0) {
var1.stream.setNumLoops(-1);
}
var2 = var1.field2462 / var3;
}
}
var1.stream.skip(var2);
}
@ObfuscatedName("v")
@ObfuscatedSignature(
signature = "()Lds;"
)
@Export("firstSubStream")
protected PcmStream firstSubStream() {
MusicPatchNode var1 = (MusicPatchNode)this.queue.last();
if (var1 == null) {
return null;
} else {
return (PcmStream)(var1.stream != null ? var1.stream : this.nextSubStream());
}
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "()Lds;"
)
@Export("nextSubStream")
protected PcmStream nextSubStream() {
MusicPatchNode var1;
do {
var1 = (MusicPatchNode)this.queue.previous();
if (var1 == null) {
return null;
}
} while(var1.stream == null);
return var1.stream;
}
@ObfuscatedName("z")
protected int vmethod3984() {
return 0;
}
@ObfuscatedName("t")
@Export("fill")
protected void fill(int[] var1, int var2, int var3) {
this.mixer.fill(var1, var2, var3);
for (MusicPatchNode var6 = (MusicPatchNode)this.queue.last(); var6 != null; var6 = (MusicPatchNode)this.queue.previous()) {
if (!this.superStream.method3826(var6)) {
int var4 = var2;
int var5 = var3;
do {
if (var5 <= var6.field2453) {
this.method3992(var6, var1, var4, var5, var4 + var5);
var6.field2453 -= var5;
break;
}
this.method3992(var6, var1, var4, var6.field2453, var4 + var5);
var4 += var6.field2453;
var5 -= var6.field2453;
} while(!this.superStream.method3884(var6, var1, var4, var5));
}
}
}
@ObfuscatedName("s")
@Export("skip")
protected void skip(int var1) {
this.mixer.skip(var1);
for (MusicPatchNode var3 = (MusicPatchNode)this.queue.last(); var3 != null; var3 = (MusicPatchNode)this.queue.previous()) {
if (!this.superStream.method3826(var3)) {
int var2 = var1;
do {
if (var2 <= var3.field2453) {
this.method3989(var3, var2);
var3.field2453 -= var2;
break;
}
this.method3989(var3, var3.field2453);
var2 -= var3.field2453;
} while(!this.superStream.method3884(var3, (int[])null, 0, var2));
}
}
}
@ObfuscatedName("fv")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "-1600061666"
)
static void method4004() {
Client.mouseLastLastPressedTimeMillis = -1L;
MidiPcmStream.mouseRecorder.index = 0;
GameShell.hasFocus = true;
Client.hadFocus = true;
Client.field904 = -1L;
class25.method277();
Client.packetWriter.clearBuffer();
Client.packetWriter.packetBuffer.offset = 0;
Client.packetWriter.serverPacket = null;
Client.packetWriter.field1334 = null;
Client.packetWriter.field1329 = null;
Client.packetWriter.field1339 = null;
Client.packetWriter.serverPacketLength = 0;
Client.packetWriter.field1338 = 0;
Client.rebootTimer = 0;
Client.logoutTimer = 0;
Client.hintArrowType = 0;
AbstractByteArrayCopier.method4023();
ServerPacket.method3684(0);
Interpreter.method2112();
Client.isItemSelected = 0;
Client.isSpellSelected = false;
Client.soundEffectCount = 0;
Client.camAngleY = 0;
Client.oculusOrbState = 0;
WorldMapRectangle.field222 = null;
Client.minimapState = 0;
Client.field695 = -1;
Client.destinationX = 0;
Client.destinationY = 0;
Client.playerAttackOption = AttackOption.AttackOption_hidden;
Client.npcAttackOption = AttackOption.AttackOption_hidden;
Client.npcCount = 0;
Player.method1383();
int var0;
for (var0 = 0; var0 < 2048; ++var0) {
Client.players[var0] = null;
}
for (var0 = 0; var0 < 32768; ++var0) {
Client.npcs[var0] = null;
}
Client.combatTargetPlayerIndex = -1;
Client.projectiles.clear();
Client.graphicsObjects.clear();
for (var0 = 0; var0 < 4; ++var0) {
for (int var1 = 0; var1 < 104; ++var1) {
for (int var2 = 0; var2 < 104; ++var2) {
Client.groundItems[var0][var1][var2] = null;
}
}
}
Client.pendingSpawns = new NodeDeque();
Projectile.friendSystem.clear();
for (var0 = 0; var0 < VarpDefinition.VarpDefinition_fileCount; ++var0) {
VarpDefinition var3 = class228.VarpDefinition_get(var0);
if (var3 != null) {
Varps.Varps_temp[var0] = 0;
Varps.Varps_main[var0] = 0;
}
}
UserComparator4.varcs.clearTransient();
Client.followerIndex = -1;
if (Client.rootInterface != -1) {
EnumDefinition.method4614(Client.rootInterface);
}
for (InterfaceParent var4 = (InterfaceParent)Client.interfaceParents.first(); var4 != null; var4 = (InterfaceParent)Client.interfaceParents.next()) {
class41.closeInterface(var4, true);
}
Client.rootInterface = -1;
Client.interfaceParents = new NodeHashTable(8);
Client.meslayerContinueWidget = null;
AbstractByteArrayCopier.method4023();
Client.playerAppearance.update((int[])null, new int[]{0, 0, 0, 0, 0}, false, -1);
for (var0 = 0; var0 < 8; ++var0) {
Client.playerMenuActions[var0] = null;
Client.playerOptionsPriorities[var0] = false;
}
ItemContainer.itemContainers = new NodeHashTable(32);
Client.isLoading = true;
for (var0 = 0; var0 < 100; ++var0) {
Client.field679[var0] = true;
}
PacketBufferNode var5 = FaceNormal.getPacketBufferNode(ClientPacket.field2257, Client.packetWriter.isaacCipher);
var5.packetBuffer.writeByte(ApproximateRouteStrategy.getWindowedMode());
var5.packetBuffer.writeShort(WorldMapLabel.canvasWidth);
var5.packetBuffer.writeShort(Varps.canvasHeight);
Client.packetWriter.addNode(var5);
InterfaceParent.clanChat = null;
for (var0 = 0; var0 < 8; ++var0) {
Client.grandExchangeOffers[var0] = new GrandExchangeOffer();
}
GrandExchangeEvent.grandExchangeEvents = null;
}
}