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 @Copy("changeGameOptions")
@MethodHook("changeGameOptions") public static void rs$changeGameOptions(int var0)
{
throw new RuntimeException();
}
@Replace("changeGameOptions")
public static void changeGameOptions(int var0) 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") @Import("Login_promptCredentials")
void promptCredentials(boolean clearPass); 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;", signature = "(IB)Liq;",
garbageValue = "1" 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); VarpDefinition var1 = (VarpDefinition)VarpDefinition.VarpDefinition_cached.get((long)var0);
if (var1 != null) { if (var1 != null) {
return var1; return var1;

View File

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