mixins: update menu action printing, map new fields in player

This commit is contained in:
ThatGamerBlue
2021-03-24 16:18:29 +00:00
parent f41aa220a4
commit 7a261c4873
4 changed files with 24 additions and 16 deletions

View File

@@ -1409,11 +1409,14 @@ public abstract class RSClientMixin implements RSClient
@Replace("menuAction") @Replace("menuAction")
static void copy$menuAction(int param0, int param1, int opcode, int id, String option, String target, int canvasX, int canvasY) static void copy$menuAction(int param0, int param1, int opcode, int id, String option, String target, int canvasX, int canvasY)
{ {
/* Along the way, the RuneScape client may change a menuAction by incrementing it with 2000. /*
* I have no idea why, but it does. Their code contains the same conditional statement. * The RuneScape client may deprioritize an action in the menu by incrementing the opcode with 2000,
* undo it here so we can get the correct opcode
*/ */
boolean decremented = false;
if (opcode >= 2000) if (opcode >= 2000)
{ {
decremented = true;
opcode -= 2000; opcode -= 2000;
} }
@@ -1435,15 +1438,16 @@ public abstract class RSClientMixin implements RSClient
if (printMenuActions) if (printMenuActions)
{ {
client.getLogger().info( client.getLogger().info(
"|MenuAction|: MenuOption={} MenuTarget={} Id={} Opcode={} Param0={} Param1={} CanvasX={} CanvasY={}", "|MenuAction|: MenuOption={} MenuTarget={} Id={} Opcode={}/{} Param0={} Param1={} CanvasX={} CanvasY={}",
menuOptionClicked.getMenuOption(), menuOptionClicked.getMenuTarget(), menuOptionClicked.getId(), menuOptionClicked.getMenuOption(), menuOptionClicked.getMenuTarget(), menuOptionClicked.getId(),
menuOptionClicked.getMenuAction(), menuOptionClicked.getActionParam(), menuOptionClicked.getWidgetId(), menuOptionClicked.getMenuAction(), opcode + (decremented ? 2000 : 0),
canvasX, canvasY menuOptionClicked.getActionParam(), menuOptionClicked.getWidgetId(), canvasX, canvasY
); );
} }
copy$menuAction(menuOptionClicked.getActionParam(), menuOptionClicked.getWidgetId(), menuOptionClicked.getMenuAction().getId(), copy$menuAction(menuOptionClicked.getActionParam(), menuOptionClicked.getWidgetId(),
menuOptionClicked.getId(), menuOptionClicked.getMenuOption(), menuOptionClicked.getMenuTarget(), canvasX, canvasY); menuOptionClicked.getMenuAction().getId(), menuOptionClicked.getId(),
menuOptionClicked.getMenuOption(), menuOptionClicked.getMenuTarget(), canvasX, canvasY);
} }
@Override @Override

View File

@@ -502,10 +502,10 @@ public class PacketWriter {
var37 = var30; // L: 7233 var37 = var30; // L: 7233
} }
var17.field641 = var10 + var15; // L: 7235 var17.minX = var10 + var15; // L: 7235
var17.field640 = var10 + var13; // L: 7236 var17.maxX = var10 + var13; // L: 7236
var17.field642 = var11 + var16; // L: 7237 var17.minY = var11 + var16; // L: 7237
var17.field644 = var11 + var37; // L: 7238 var17.maxY = var11 + var37; // L: 7238
} }
} }
} }

View File

@@ -90,22 +90,26 @@ public final class Player extends Actor {
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 123594343 intValue = 123594343
) )
int field641; @Export("minX")
int minX;
@ObfuscatedName("x") @ObfuscatedName("x")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 2053334325 intValue = 2053334325
) )
int field642; @Export("minY")
int minY;
@ObfuscatedName("f") @ObfuscatedName("f")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = 1294199975 intValue = 1294199975
) )
int field640; @Export("maxX")
int maxX;
@ObfuscatedName("g") @ObfuscatedName("g")
@ObfuscatedGetter( @ObfuscatedGetter(
intValue = -1259880177 intValue = -1259880177
) )
int field644; @Export("maxY")
int maxY;
@ObfuscatedName("u") @ObfuscatedName("u")
@Export("isUnanimated") @Export("isUnanimated")
boolean isUnanimated; boolean isUnanimated;

View File

@@ -661,7 +661,7 @@ public class WorldMapScaleHandler {
var0.isUnanimated = false; // L: 4274 var0.isUnanimated = false; // L: 4274
var0.tileHeight = WorldMapRegion.getTileHeight(var0.x, var0.y, class90.Client_plane); // L: 4275 var0.tileHeight = WorldMapRegion.getTileHeight(var0.x, var0.y, class90.Client_plane); // L: 4275
var0.playerCycle = Client.cycle; // L: 4276 var0.playerCycle = Client.cycle; // L: 4276
MilliClock.scene.addNullableObject(class90.Client_plane, var0.x, var0.y, var0.tileHeight, 60, var0, var0.rotation, var4, var0.field641, var0.field642, var0.field640, var0.field644); // L: 4277 MilliClock.scene.addNullableObject(class90.Client_plane, var0.x, var0.y, var0.tileHeight, 60, var0, var0.rotation, var4, var0.minX, var0.minY, var0.maxX, var0.maxY); // L: 4277
} else { } else {
if ((var0.x & 127) == 64 && (var0.y & 127) == 64) { // L: 4280 if ((var0.x & 127) == 64 && (var0.y & 127) == 64) { // L: 4280
if (Client.tileLastDrawnActor[var2][var3] == Client.viewportDrawCount) { // L: 4281 if (Client.tileLastDrawnActor[var2][var3] == Client.viewportDrawCount) { // L: 4281