client: add setters for selected spells and items (#1634)
* client: add setters for selected spells and items (thanks to Skitzo the absolute beast.) * deob: change "changeSpellFlag" method name to "selectSpell" * deob: export "selectSpell" for tests.
This commit is contained in:
@@ -1236,7 +1236,8 @@ public final class Client extends GameShell implements Usernamed {
|
||||
@ObfuscatedGetter(
|
||||
intValue = -465859219
|
||||
)
|
||||
static int field687;
|
||||
@Export("selectedSpellChildIndex")
|
||||
static int selectedSpellChildIndex;
|
||||
@ObfuscatedName("ml")
|
||||
@ObfuscatedGetter(
|
||||
intValue = -1436921851
|
||||
@@ -1410,7 +1411,7 @@ public final class Client extends GameShell implements Usernamed {
|
||||
isItemSelected = 0;
|
||||
selectedItemName = null;
|
||||
isSpellSelected = false;
|
||||
field687 = -1;
|
||||
selectedSpellChildIndex = -1;
|
||||
field648 = -1;
|
||||
selectedSpellActionName = null;
|
||||
selectedSpellName = null;
|
||||
|
||||
@@ -323,11 +323,11 @@ public class EnumDefinition extends DualNode {
|
||||
Client.destinationX = var0;
|
||||
Client.destinationY = var1;
|
||||
var8 = MenuAction.getPacketBufferNode(ClientPacket.field2196, Client.packetWriter.isaacCipher);
|
||||
var8.packetBuffer.writeIntLE16(class83.field1138);
|
||||
var8.packetBuffer.writeIntLE16(class83.selectedSpellWidget);
|
||||
var8.packetBuffer.writeShort(var3);
|
||||
var8.packetBuffer.method5500(ScriptEvent.baseY + var1);
|
||||
var8.packetBuffer.method5566(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0);
|
||||
var8.packetBuffer.writeIntME(Client.field687);
|
||||
var8.packetBuffer.writeIntME(Client.selectedSpellChildIndex);
|
||||
var8.packetBuffer.writeIntME(class4.baseX * 64 + var0);
|
||||
Client.packetWriter.addNode(var8);
|
||||
} else if (var2 == 3) {
|
||||
@@ -412,8 +412,8 @@ public class EnumDefinition extends DualNode {
|
||||
Client.destinationX = var0;
|
||||
Client.destinationY = var1;
|
||||
var9 = MenuAction.getPacketBufferNode(ClientPacket.field2280, Client.packetWriter.isaacCipher);
|
||||
var9.packetBuffer.method5502(Client.field687);
|
||||
var9.packetBuffer.writeIntLE16(class83.field1138);
|
||||
var9.packetBuffer.method5502(Client.selectedSpellChildIndex);
|
||||
var9.packetBuffer.writeIntLE16(class83.selectedSpellWidget);
|
||||
var9.packetBuffer.method5500(var3);
|
||||
var9.packetBuffer.method5493(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0);
|
||||
Client.packetWriter.addNode(var9);
|
||||
@@ -517,9 +517,9 @@ public class EnumDefinition extends DualNode {
|
||||
Client.destinationX = var0;
|
||||
Client.destinationY = var1;
|
||||
var9 = MenuAction.getPacketBufferNode(ClientPacket.field2194, Client.packetWriter.isaacCipher);
|
||||
var9.packetBuffer.writeIntLE(class83.field1138);
|
||||
var9.packetBuffer.writeIntLE(class83.selectedSpellWidget);
|
||||
var9.packetBuffer.writeShort(var3);
|
||||
var9.packetBuffer.method5500(Client.field687);
|
||||
var9.packetBuffer.method5500(Client.selectedSpellChildIndex);
|
||||
var9.packetBuffer.method5566(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0);
|
||||
Client.packetWriter.addNode(var9);
|
||||
}
|
||||
@@ -547,8 +547,8 @@ public class EnumDefinition extends DualNode {
|
||||
Client.destinationX = var0;
|
||||
Client.destinationY = var1;
|
||||
var8 = MenuAction.getPacketBufferNode(ClientPacket.field2233, Client.packetWriter.isaacCipher);
|
||||
var8.packetBuffer.writeIntLE(class83.field1138);
|
||||
var8.packetBuffer.writeShort(Client.field687);
|
||||
var8.packetBuffer.writeIntLE(class83.selectedSpellWidget);
|
||||
var8.packetBuffer.writeShort(Client.selectedSpellChildIndex);
|
||||
var8.packetBuffer.method5500(ScriptEvent.baseY + var1);
|
||||
var8.packetBuffer.method5500(var3);
|
||||
var8.packetBuffer.method5500(class4.baseX * 64 + var0);
|
||||
@@ -645,7 +645,7 @@ public class EnumDefinition extends DualNode {
|
||||
var16 = class49.getWidgetChild(var1, var0);
|
||||
if (var16 != null) {
|
||||
FloorDecoration.Widget_runOnTargetLeave();
|
||||
Player.method1196(var1, var0, WorldMapElement.method4390(class60.getWidgetClickMask(var16)), var16.itemId);
|
||||
Player.selectSpell(var1, var0, WorldMapElement.method4390(class60.getWidgetClickMask(var16)), var16.itemId);
|
||||
Client.isItemSelected = 0;
|
||||
Client.selectedSpellActionName = class16.method165(var16);
|
||||
if (Client.selectedSpellActionName == null) {
|
||||
@@ -709,11 +709,11 @@ public class EnumDefinition extends DualNode {
|
||||
Client.field728 = var0;
|
||||
} else if (var2 == 32) {
|
||||
var8 = MenuAction.getPacketBufferNode(ClientPacket.field2219, Client.packetWriter.isaacCipher);
|
||||
var8.packetBuffer.writeShort(Client.field687);
|
||||
var8.packetBuffer.writeShort(Client.selectedSpellChildIndex);
|
||||
var8.packetBuffer.method5500(var0);
|
||||
var8.packetBuffer.writeShortLE(var1);
|
||||
var8.packetBuffer.method5500(var3);
|
||||
var8.packetBuffer.writeIntLE16(class83.field1138);
|
||||
var8.packetBuffer.writeIntLE16(class83.selectedSpellWidget);
|
||||
Client.packetWriter.addNode(var8);
|
||||
Client.field727 = 0;
|
||||
Entity.field1835 = Player.getWidget(var1);
|
||||
@@ -944,8 +944,8 @@ public class EnumDefinition extends DualNode {
|
||||
var16 = class49.getWidgetChild(var1, var0);
|
||||
if (var16 != null) {
|
||||
var9 = MenuAction.getPacketBufferNode(ClientPacket.field2229, Client.packetWriter.isaacCipher);
|
||||
var9.packetBuffer.writeShortLE(class83.field1138);
|
||||
var9.packetBuffer.writeIntME(Client.field687);
|
||||
var9.packetBuffer.writeShortLE(class83.selectedSpellWidget);
|
||||
var9.packetBuffer.writeIntME(Client.selectedSpellChildIndex);
|
||||
var9.packetBuffer.writeIntLE(var1);
|
||||
var9.packetBuffer.writeShort(var0);
|
||||
var9.packetBuffer.writeIntME(Client.field648);
|
||||
|
||||
@@ -139,7 +139,7 @@ public final class FloorDecoration {
|
||||
@Export("Widget_runOnTargetLeave")
|
||||
static void Widget_runOnTargetLeave() {
|
||||
if (Client.isSpellSelected) {
|
||||
Widget var0 = class49.getWidgetChild(class83.field1138, Client.field687);
|
||||
Widget var0 = class49.getWidgetChild(class83.selectedSpellWidget, Client.selectedSpellChildIndex);
|
||||
if (var0 != null && var0.onTargetLeave != null) {
|
||||
ScriptEvent var1 = new ScriptEvent();
|
||||
var1.widget = var0;
|
||||
|
||||
@@ -741,8 +741,9 @@ public final class Player extends Actor {
|
||||
signature = "(IIIII)V",
|
||||
garbageValue = "16777215"
|
||||
)
|
||||
static void method1196(int var0, int var1, int var2, int var3) {
|
||||
Widget var4 = class49.getWidgetChild(var0, var1);
|
||||
@Export("selectSpell")
|
||||
static void selectSpell(int widgetId, int childId, int clickMaskId, int id) {
|
||||
Widget var4 = class49.getWidgetChild(widgetId, childId);
|
||||
if (var4 != null && var4.onTargetEnter != null) {
|
||||
ScriptEvent var5 = new ScriptEvent();
|
||||
var5.widget = var4;
|
||||
@@ -750,11 +751,11 @@ public final class Player extends Actor {
|
||||
SecureRandomFuture.runScriptEvent(var5);
|
||||
}
|
||||
|
||||
Client.field648 = var3;
|
||||
Client.field648 = id;
|
||||
Client.isSpellSelected = true;
|
||||
class83.field1138 = var0;
|
||||
Client.field687 = var1;
|
||||
BuddyRankComparator.selectedSpellFlags = var2;
|
||||
class83.selectedSpellWidget = widgetId;
|
||||
Client.selectedSpellChildIndex = childId;
|
||||
BuddyRankComparator.selectedSpellFlags = clickMaskId;
|
||||
WorldMapID.invalidateWidget(var4);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -360,7 +360,7 @@ public final class Tiles {
|
||||
TileItem.method2093(var20 + 1, var9.id, var9.childIndex, var9.itemId, "");
|
||||
} else if (var20 == 10) {
|
||||
FloorDecoration.Widget_runOnTargetLeave();
|
||||
Player.method1196(var9.id, var9.childIndex, WorldMapElement.method4390(class60.getWidgetClickMask(var9)), var9.itemId);
|
||||
Player.selectSpell(var9.id, var9.childIndex, WorldMapElement.method4390(class60.getWidgetClickMask(var9)), var9.itemId);
|
||||
Client.selectedSpellActionName = class16.method165(var9);
|
||||
if (Client.selectedSpellActionName == null) {
|
||||
Client.selectedSpellActionName = "null";
|
||||
|
||||
@@ -20,7 +20,8 @@ public class class83 {
|
||||
@ObfuscatedGetter(
|
||||
intValue = 670190247
|
||||
)
|
||||
static int field1138;
|
||||
@Export("selectedSpellWidget")
|
||||
static int selectedSpellWidget;
|
||||
|
||||
static {
|
||||
field1142 = new BigInteger("10001", 16);
|
||||
|
||||
Reference in New Issue
Block a user