Narrow down onVolumeChanged to only volume changed's

This commit is contained in:
Lucwousin
2019-10-24 10:10:08 +02:00
parent 45c0774093
commit 6a8fbf9868
6 changed files with 31 additions and 7 deletions

View File

@@ -1784,10 +1784,21 @@ public abstract class RSClientMixin implements RSClient
}
}
@Inject
@MethodHook("changeGameOptions")
@Copy("changeGameOptions")
public static void rs$changeGameOptions(int var0)
{
throw new RuntimeException();
}
@Replace("changeGameOptions")
public static void changeGameOptions(int var0)
{
client.getCallbacks().post(VolumeChanged.class, VolumeChanged.INSTANCE);
rs$changeGameOptions(var0);
int type = client.getVarpDefinition(var0).getType();
if (type == 3 || type == 4 || type == 10)
{
client.getCallbacks().post(VolumeChanged.class, VolumeChanged.INSTANCE);
}
}
}

View File

@@ -1117,4 +1117,7 @@ public interface RSClient extends RSGameShell, Client
*/
@Import("Login_promptCredentials")
void promptCredentials(boolean clearPass);
@Import("VarpDefinition_get")
RSVarpDefinition getVarpDefinition(int id);
}

View File

@@ -0,0 +1,9 @@
package net.runelite.rs.api;
import net.runelite.mapping.Import;
public interface RSVarpDefinition extends RSDualNode
{
@Import("type")
int getType();
}

View File

@@ -245,7 +245,8 @@ public abstract class AbstractWorldMapData {
signature = "(IB)Liq;",
garbageValue = "1"
)
public static VarpDefinition method288(int var0) {
@Export("VarpDefinition_get")
public static VarpDefinition VarpDefinition_get(int var0) {
VarpDefinition var1 = (VarpDefinition)VarpDefinition.VarpDefinition_cached.get((long)var0);
if (var1 != null) {
return var1;

View File

@@ -2680,7 +2680,7 @@ public final class Client extends GameShell implements Usernamed {
Tiles.friendSystem.clear();
for (var33 = 0; var33 < VarpDefinition.VarpDefinition_fileCount; ++var33) {
VarpDefinition var28 = AbstractWorldMapData.method288(var33);
VarpDefinition var28 = AbstractWorldMapData.VarpDefinition_get(var33);
if (var28 != null) {
Varps.Varps_temp[var33] = 0;
Varps.Varps_main[var33] = 0;
@@ -4870,7 +4870,7 @@ public final class Client extends GameShell implements Usernamed {
if (ServerPacket.field2099 == var1.serverPacket) {
for (var16 = 0; var16 < VarpDefinition.VarpDefinition_fileCount; ++var16) {
VarpDefinition var54 = AbstractWorldMapData.method288(var16);
VarpDefinition var54 = AbstractWorldMapData.VarpDefinition_get(var16);
if (var54 != null) {
Varps.Varps_temp[var16] = 0;
Varps.Varps_main[var16] = 0;

View File

@@ -388,7 +388,7 @@ public final class NetSocket extends AbstractSocket implements Runnable {
}
}
int var4 = AbstractWorldMapData.method288(var0).type;
int var4 = AbstractWorldMapData.VarpDefinition_get(var0).type;
if (var4 != 0) {
int var2 = Varps.Varps_main[var0];
if (var4 == 1) {