Audio related update trying to track down why some sounds aren't playing properly/too fast.

This commit is contained in:
Woah 2021-03-25 15:32:26 -04:00
parent 0b498fc455
commit 98450d84a1
14 changed files with 72 additions and 67 deletions

View file

@ -20,19 +20,6 @@ public final class AtmosphereParser {
static int anInt1191; static int anInt1191;
static int screenLowerY; static int screenLowerY;
public static void musicHandler(int var1) {
try {
if (-1 == var1 && !Class83.aBoolean1158) {
GameObject.method1870();
} else if (var1 != -1 && (Class129.anInt1691 != var1 || Class79.method1391(-1)) && Unsorted.anInt120 != 0 && !Class83.aBoolean1158) {
Unsorted.method2099(var1, CacheIndex.musicIndex, Unsorted.anInt120);
}
Class129.anInt1691 = var1;
} catch (RuntimeException var3) {
throw ClientErrorException.clientError(var3, "li.B(" + true + ',' + var1 + ')');
}
}
static void method1428(int var0, int var2) { static void method1428(int var0, int var2) {
try { try {
ItemDefinition.ram[var0] = var2; ItemDefinition.ram[var0] = var2;

View file

@ -0,0 +1,37 @@
package org.runite.client;
public final class AudioHandler {
static int currentSoundEffectCount = 0;
static int soundEffectVolume = 127;
public static void musicHandler(int var1) {
try {
if (-1 == var1 && !Class83.aBoolean1158) {
GameObject.method1870();
} else if (var1 != -1 && (Class129.anInt1691 != var1 || Class79.method1391(-1)) && Unsorted.anInt120 != 0 && !Class83.aBoolean1158) {
Unsorted.method2099(var1, CacheIndex.musicIndex, Unsorted.anInt120);
}
Class129.anInt1691 = var1;
} catch (RuntimeException var3) {
throw ClientErrorException.clientError(var3, "li.B(" + true + ',' + var1 + ')');
}
}
static void soundEffectHandler(int soundEffectID, int soundEffectDelay, int soundEffectVolume) {
try {
if(soundEffectVolume != 0 && soundEffectID != 0 && currentSoundEffectCount < 50 && soundEffectDelay != -1) {
Class166.anIntArray2068[currentSoundEffectCount] = soundEffectID;
Class3_Sub25.anIntArray2550[currentSoundEffectCount] = soundEffectDelay;
Unsorted.anIntArray2157[currentSoundEffectCount] = soundEffectVolume;
Class102.aClass135Array2131[currentSoundEffectCount] = null;
Class3_Sub8.anIntArray3083[currentSoundEffectCount] = 0;
currentSoundEffectCount++;
}
} catch (RuntimeException var5) {
throw ClientErrorException.clientError(var5, "ca.C(" + soundEffectID + ',' + soundEffectDelay + ',' + soundEffectVolume + ',' + -799 + ')');
}
}
}

View file

@ -29,7 +29,6 @@ public final class CS2Script extends Linkable {
static ReferenceCache aReferenceCache_2442 = new ReferenceCache(50); static ReferenceCache aReferenceCache_2442 = new ReferenceCache(50);
static ReferenceCache aReferenceCache_2450 = new ReferenceCache(64); static ReferenceCache aReferenceCache_2450 = new ReferenceCache(64);
static byte[][][] aByteArrayArrayArray2452; static byte[][][] aByteArrayArrayArray2452;
static int anInt2453 = 127;
RSInterface aClass11_2438; RSInterface aClass11_2438;
RSString aClass94_2439; RSString aClass94_2439;
int scrollbarScrollAmount; int scrollbarScrollAmount;
@ -938,11 +937,11 @@ public final class CS2Script extends Linkable {
if (opcode < 3300) { if (opcode < 3300) {
if (opcode == 3200) { if (opcode == 3200) {
iStackCounter -= 3; iStackCounter -= 3;
TextureOperation26.method199(ItemDefinition.intsStack[iStackCounter - -1], ItemDefinition.intsStack[iStackCounter], ItemDefinition.intsStack[iStackCounter + 2]); AudioHandler.soundEffectHandler(ItemDefinition.intsStack[iStackCounter - -1], ItemDefinition.intsStack[iStackCounter], ItemDefinition.intsStack[iStackCounter + 2]);
continue; continue;
} }
if (opcode == 3201) { if (opcode == 3201) {
AtmosphereParser.musicHandler(ItemDefinition.intsStack[--iStackCounter]); AudioHandler.musicHandler(ItemDefinition.intsStack[--iStackCounter]);
continue; continue;
} }
if (opcode != 3202) if (opcode != 3202)
@ -2664,7 +2663,7 @@ public final class CS2Script extends Linkable {
j35 = 0; j35 = 0;
if (j35 > 127) if (j35 > 127)
j35 = 127; j35 = 127;
anInt2453 = j35; AudioHandler.soundEffectVolume = j35;
Class119.method1730(Class38.signlink); Class119.method1730(Class38.signlink);
aBoolean2705 = false; aBoolean2705 = false;
continue; continue;
@ -2800,7 +2799,7 @@ public final class CS2Script extends Linkable {
continue; continue;
} }
if (opcode == 6118) { if (opcode == 6118) {
ItemDefinition.intsStack[iStackCounter++] = anInt2453; ItemDefinition.intsStack[iStackCounter++] = AudioHandler.soundEffectVolume;
continue; continue;
} }
if (6119 == opcode) { if (6119 == opcode) {

View file

@ -3,7 +3,6 @@ package org.runite.client;
final class Class113 { final class Class113 {
static int interfacePacketCounter = 0; static int interfacePacketCounter = 0;
static int anInt1552 = 0;
static int anInt1559; static int anInt1559;
int anInt1544; int anInt1544;
int anInt1545; int anInt1545;

View file

@ -39,7 +39,7 @@ public final class Class23 {
var1.writeByte(Class38.aBoolean661 ? 1 : 0); var1.writeByte(Class38.aBoolean661 ? 1 : 0);
var1.writeByte(Class3_Sub28_Sub9.anInt3622); var1.writeByte(Class3_Sub28_Sub9.anInt3622);
var1.writeByte(!TextureOperation17.aBoolean3184 ? 0 : 1); var1.writeByte(!TextureOperation17.aBoolean3184 ? 0 : 1);
var1.writeByte(CS2Script.anInt2453); var1.writeByte(AudioHandler.soundEffectVolume);
var1.writeByte(Unsorted.anInt120); var1.writeByte(Unsorted.anInt120);
var1.writeByte(Sprites.anInt340); var1.writeByte(Sprites.anInt340);
var1.writeShort(TextureOperation.anInt2378); var1.writeShort(TextureOperation.anInt2378);

View file

@ -557,13 +557,13 @@ public final class Class39 {
var7 = 7 & var5; var7 = 7 & var5;
if (var2 >= 0 && var3 >= 0 && var2 < 104 && var3 < 104) { if (var2 >= 0 && var3 >= 0 && var2 < 104 && var3 < 104) {
var28 = 1 + var6; var28 = 1 + var6;
if (var2 + -var28 <= Class102.player.anIntArray2767[0] && Class102.player.anIntArray2767[0] <= var28 + var2 && Class102.player.anIntArray2755[0] >= -var28 + var3 && Class102.player.anIntArray2755[0] <= var28 + var3 && 0 != Sprites.anInt340 && var7 > 0 && 50 > Class113.anInt1552 && var4 != -1) { if (var2 + -var28 <= Class102.player.anIntArray2767[0] && Class102.player.anIntArray2767[0] <= var28 + var2 && Class102.player.anIntArray2755[0] >= -var28 + var3 && Class102.player.anIntArray2755[0] <= var28 + var3 && 0 != Sprites.anInt340 && var7 > 0 && 50 > AudioHandler.currentSoundEffectCount && var4 != -1) {
Class3_Sub25.anIntArray2550[Class113.anInt1552] = var4; Class3_Sub25.anIntArray2550[AudioHandler.currentSoundEffectCount] = var4;
Class166.anIntArray2068[Class113.anInt1552] = var7; Class166.anIntArray2068[AudioHandler.currentSoundEffectCount] = var7;
Unsorted.anIntArray2157[Class113.anInt1552] = var8; Unsorted.anIntArray2157[AudioHandler.currentSoundEffectCount] = var8;
Class102.aClass135Array2131[Class113.anInt1552] = null; Class102.aClass135Array2131[AudioHandler.currentSoundEffectCount] = null;
Class3_Sub8.anIntArray3083[Class113.anInt1552] = var6 + ((var2 << 16) - -(var3 << 8)); Class3_Sub8.anIntArray3083[AudioHandler.currentSoundEffectCount] = var6 + ((var2 << 16) - -(var3 << 8));
++Class113.anInt1552; ++AudioHandler.currentSoundEffectCount;
} }
} }

View file

@ -131,12 +131,12 @@ final class Class3_Sub8 extends Linkable {
static void method132() { static void method132() {
try { try {
for(int var1 = 0; var1 < Class113.anInt1552; ++var1) { for(int var1 = 0; var1 < AudioHandler.currentSoundEffectCount; ++var1) {
--Unsorted.anIntArray2157[var1]; --Unsorted.anIntArray2157[var1];
if(Unsorted.anIntArray2157[var1] < -10) { if(Unsorted.anIntArray2157[var1] < -10) {
--Class113.anInt1552; --AudioHandler.currentSoundEffectCount;
for(int var2 = var1; var2 < Class113.anInt1552; ++var2) { for(int var2 = var1; var2 < AudioHandler.currentSoundEffectCount; ++var2) {
Class3_Sub25.anIntArray2550[var2] = Class3_Sub25.anIntArray2550[var2 - -1]; Class3_Sub25.anIntArray2550[var2] = Class3_Sub25.anIntArray2550[var2 - -1];
Class102.aClass135Array2131[var2] = Class102.aClass135Array2131[var2 + 1]; Class102.aClass135Array2131[var2] = Class102.aClass135Array2131[var2 + 1];
Class166.anIntArray2068[var2] = Class166.anIntArray2068[1 + var2]; Class166.anIntArray2068[var2] = Class166.anIntArray2068[1 + var2];
@ -160,7 +160,7 @@ final class Class3_Sub8 extends Linkable {
if(0 > Unsorted.anIntArray2157[var1]) { if(0 > Unsorted.anIntArray2157[var1]) {
int var3; int var3;
if(anIntArray3083[var1] == 0) { if(anIntArray3083[var1] == 0) {
var3 = CS2Script.anInt2453; var3 = AudioHandler.soundEffectVolume;
} else { } else {
int var4 = 128 * (255 & anIntArray3083[var1]); int var4 = 128 * (255 & anIntArray3083[var1]);
int var7 = anIntArray3083[var1] >> 8 & 0xFF; int var7 = anIntArray3083[var1] >> 8 & 0xFF;

View file

@ -109,9 +109,9 @@ final class Class79 {
Unsorted.anInt3671 = Class3_Sub28_Sub9.anInt3622; Unsorted.anInt3671 = Class3_Sub28_Sub9.anInt3622;
TextureOperation17.aBoolean3184 = var0.readUnsignedByte() == 1; TextureOperation17.aBoolean3184 = var0.readUnsignedByte() == 1;
CS2Script.anInt2453 = var0.readUnsignedByte(); AudioHandler.soundEffectVolume = var0.readUnsignedByte();
if (CS2Script.anInt2453 > 127) { if (AudioHandler.soundEffectVolume > 127) {
CS2Script.anInt2453 = 127; AudioHandler.soundEffectVolume = 127;
} }
Unsorted.anInt120 = var0.readUnsignedByte(); Unsorted.anInt120 = var0.readUnsignedByte();

View file

@ -80,7 +80,7 @@ public final class Class84 {
static int method1421() { static int method1421() {
try { try {
return ((TextureOperation17.aBoolean3184 ? 1 : 0) << 19) + (((Class38.aBoolean661 ? 1 : 0) << 16) + ((!Class128.aBoolean1685 ? 0 : 1) << 15) + ((!Class106.aBoolean1441 ? 0 : 1) << 13) + ((Class140_Sub6.aBoolean2910 ? 1 : 0) << 10) + ((Unsorted.aBoolean3275 ? 1 : 0) << 9) + ((RSInterface.aBoolean236 ? 1 : 0) << 7) + ((!Class25.aBoolean488 ? 0 : 1) << 6) + ((KeyboardListener.aBoolean1905 ? 1 : 0) << 5) + (((!Unsorted.aBoolean3665 ? 0 : 1) << 3) + (Unsorted.anInt3625 & 7) - (-((!Unsorted.aBoolean3604 ? 0 : 1) << 4) + -((WorldListEntry.aBoolean2623 ? 1 : 0) << 8)) - (-(Unsorted.anInt1137 << 11 & 6144) + -((CS2Script.anInt2453 == 0 ? 0 : 1) << 20) - (((Unsorted.anInt120 != 0 ? 1 : 0) << 21) + ((Sprites.anInt340 == 0 ? 0 : 1) << 22)))) - -(Class127_Sub1.method1757() << 23)); return ((TextureOperation17.aBoolean3184 ? 1 : 0) << 19) + (((Class38.aBoolean661 ? 1 : 0) << 16) + ((!Class128.aBoolean1685 ? 0 : 1) << 15) + ((!Class106.aBoolean1441 ? 0 : 1) << 13) + ((Class140_Sub6.aBoolean2910 ? 1 : 0) << 10) + ((Unsorted.aBoolean3275 ? 1 : 0) << 9) + ((RSInterface.aBoolean236 ? 1 : 0) << 7) + ((!Class25.aBoolean488 ? 0 : 1) << 6) + ((KeyboardListener.aBoolean1905 ? 1 : 0) << 5) + (((!Unsorted.aBoolean3665 ? 0 : 1) << 3) + (Unsorted.anInt3625 & 7) - (-((!Unsorted.aBoolean3604 ? 0 : 1) << 4) + -((WorldListEntry.aBoolean2623 ? 1 : 0) << 8)) - (-(Unsorted.anInt1137 << 11 & 6144) + -((AudioHandler.soundEffectVolume == 0 ? 0 : 1) << 20) - (((Unsorted.anInt120 != 0 ? 1 : 0) << 21) + ((Sprites.anInt340 == 0 ? 0 : 1) << 22)))) - -(Class127_Sub1.method1757() << 23));
} catch (RuntimeException var2) { } catch (RuntimeException var2) {
throw ClientErrorException.clientError(var2, "lf.F(" + -2 + ')'); throw ClientErrorException.clientError(var2, "lf.F(" + -2 + ')');
} }

View file

@ -1369,7 +1369,7 @@ public final class PacketParser {
} }
modelId = BufferedDataStream.incomingBuffer.readUnsignedShort(); modelId = BufferedDataStream.incomingBuffer.readUnsignedShort();
TextureOperation26.method199(var19, nodeModelId, modelId); AudioHandler.soundEffectHandler(var19, nodeModelId, modelId);
Unsorted.incomingOpcode = -1; Unsorted.incomingOpcode = -1;
return true; return true;
} else if (Unsorted.incomingOpcode == 66) { } else if (Unsorted.incomingOpcode == 66) {
@ -1697,7 +1697,7 @@ public final class PacketParser {
nodeModelId = -1; nodeModelId = -1;
} }
AtmosphereParser.musicHandler(nodeModelId); AudioHandler.musicHandler(nodeModelId);
Unsorted.incomingOpcode = -1; Unsorted.incomingOpcode = -1;
return true; return true;
} else if (Unsorted.incomingOpcode == 208) { } else if (Unsorted.incomingOpcode == 208) {

View file

@ -447,7 +447,7 @@ public final class SequenceDefinition {
Unsorted.anInt42 = (int)(110.0D * Math.random()) + -55; Unsorted.anInt42 = (int)(110.0D * Math.random()) + -55;
GameObject.aBoolean1837 = false; GameObject.aBoolean1837 = false;
Class164_Sub2.anInt3020 = -20 + (int)(30.0D * Math.random()); Class164_Sub2.anInt3020 = -20 + (int)(30.0D * Math.random());
Class113.anInt1552 = 0; AudioHandler.currentSoundEffectCount = 0;
Class65.anInt987 = 0; Class65.anInt987 = 0;
TextureOperation9.anInt3102 = -60 + (int)(Math.random() * 120.0D); TextureOperation9.anInt3102 = -60 + (int)(Math.random() * 120.0D);
TextureOperation16.anInt3114 = 0; TextureOperation16.anInt3114 = 0;

View file

@ -193,21 +193,4 @@ final class TextureOperation26 extends TextureOperation {
} }
} }
static void method199(int var0, int var1, int var2) {
try {
if(CS2Script.anInt2453 != 0 && var0 != 0 && Class113.anInt1552 < 50 && var1 != -1) {
Class3_Sub25.anIntArray2550[Class113.anInt1552] = var1;
Class166.anIntArray2068[Class113.anInt1552] = var0;
Unsorted.anIntArray2157[Class113.anInt1552] = var2;
Class102.aClass135Array2131[Class113.anInt1552] = null;
Class3_Sub8.anIntArray3083[Class113.anInt1552] = 0;
++Class113.anInt1552;
}
} catch (RuntimeException var5) {
throw ClientErrorException.clientError(var5, "ca.C(" + var0 + ',' + var1 + ',' + var2 + ',' + -799 + ')');
}
}
} }

View file

@ -895,7 +895,7 @@ public class Unsorted {
public static void method1470(int var0, SequenceDefinition var1, int var2, int var3, boolean var4, int var5) { public static void method1470(int var0, SequenceDefinition var1, int var2, int var3, boolean var4, int var5) {
try { try {
if (Class113.anInt1552 < 50) { if (AudioHandler.currentSoundEffectCount < 50) {
if (var1.sounds != null && var1.sounds.length > var5 && null != var1.sounds[var5]) { if (var1.sounds != null && var1.sounds.length > var5 && null != var1.sounds[var5]) {
int var6 = var1.sounds[var5][0]; int var6 = var1.sounds[var5][0];
int var7 = var6 >> 8; int var7 = var6 >> 8;
@ -911,22 +911,22 @@ public class Unsorted {
int var9 = var6 & 31; int var9 = var6 & 31;
if (var9 == 0) { if (var9 == 0) {
if (var4) { if (var4) {
TextureOperation26.method199(var8, var7, 0); AudioHandler.soundEffectHandler(var8, var7, 0);
} }
} else if (0 != Sprites.anInt340) { } else if (0 != Sprites.anInt340) {
Class3_Sub25.anIntArray2550[Class113.anInt1552] = var7; Class3_Sub25.anIntArray2550[AudioHandler.currentSoundEffectCount] = var7;
Class166.anIntArray2068[Class113.anInt1552] = var8; Class166.anIntArray2068[AudioHandler.currentSoundEffectCount] = var8;
int var11 = (-64 + var0) / 128; int var11 = (-64 + var0) / 128;
var10 = (var3 + -64) / 128; var10 = (var3 + -64) / 128;
anIntArray2157[Class113.anInt1552] = 0; anIntArray2157[AudioHandler.currentSoundEffectCount] = 0;
Class102.aClass135Array2131[Class113.anInt1552] = null; Class102.aClass135Array2131[AudioHandler.currentSoundEffectCount] = null;
Class3_Sub8.anIntArray3083[Class113.anInt1552] = var9 + (var10 << 16) + (var11 << 8); Class3_Sub8.anIntArray3083[AudioHandler.currentSoundEffectCount] = var9 + (var10 << 16) + (var11 << 8);
if (var2 != 183921384) { if (var2 != 183921384) {
aClass33_1238 = null; aClass33_1238 = null;
} }
++Class113.anInt1552; ++AudioHandler.currentSoundEffectCount;
} }
} }
} }
@ -2222,7 +2222,7 @@ public class Unsorted {
Class133.anInt1753 = 1; Class133.anInt1753 = 1;
} }
Class113.anInt1552 = 0; AudioHandler.currentSoundEffectCount = 0;
if (Class65.anInt987 != 0) { if (Class65.anInt987 != 0) {
Class45.anInt733 -= var10; Class45.anInt733 -= var10;
Class65.anInt987 -= var9; Class65.anInt987 -= var9;
@ -4799,7 +4799,7 @@ public class Unsorted {
Class25.aBoolean488 = true; Class25.aBoolean488 = true;
anInt3671 = 0; anInt3671 = 0;
RandomAccessFileWrapper var2 = null; RandomAccessFileWrapper var2 = null;
CS2Script.anInt2453 = 127; AudioHandler.soundEffectVolume = 127;
if (Class3_Sub24_Sub3.maxClientMemory >= 96) { if (Class3_Sub24_Sub3.maxClientMemory >= 96) {
Class127_Sub1.method1758(2); Class127_Sub1.method1758(2);
} else { } else {

View file

@ -247,7 +247,7 @@ object DeveloperConsole {
if (argSize in 2..4) { if (argSize in 2..4) {
if (clientCommand[1].toIntOrNull() == null) { if (clientCommand[1].toIntOrNull() == null) {
clientCommand.removeFirst() clientCommand.removeFirst()
AtmosphereParser.musicHandler( AudioHandler.musicHandler(
CacheIndex.musicIndex.getArchiveForName( CacheIndex.musicIndex.getArchiveForName(
RSString.of( RSString.of(
clientCommand.joinToString( clientCommand.joinToString(
@ -258,7 +258,7 @@ object DeveloperConsole {
) )
} else { } else {
args = clientCommand[1].toInt() args = clientCommand[1].toInt()
AtmosphereParser.musicHandler(args) AudioHandler.musicHandler(args)
} }
} else { } else {
println("Error. Plays music. Use: playsong # OR playsong songName") println("Error. Plays music. Use: playsong # OR playsong songName")