api: more imports and tile stuff

This commit is contained in:
ThatGamerBlue
2020-07-19 18:19:17 +01:00
parent 2c8ca731e6
commit cc28d4d2f2
33 changed files with 288 additions and 170 deletions

View File

@@ -94,8 +94,8 @@ public final class Client extends GameShell implements Usernamed {
@ObfuscatedSignature(
signature = "Lle;"
)
@Export("widgetClickMasks")
static NodeHashTable widgetClickMasks;
@Export("widgetFlags")
static NodeHashTable widgetFlags;
@ObfuscatedName("np")
@ObfuscatedGetter(
intValue = 152745331
@@ -1492,7 +1492,7 @@ public final class Client extends GameShell implements Usernamed {
scriptEvents = new NodeDeque();
field891 = new NodeDeque();
field691 = new NodeDeque();
widgetClickMasks = new NodeHashTable(512);
widgetFlags = new NodeHashTable(512);
rootWidgetCount = 0;
field877 = -2;
field813 = new boolean[100];
@@ -3503,7 +3503,7 @@ public final class Client extends GameShell implements Usernamed {
++itemDragDuration;
if (MouseHandler.MouseHandler_currentButton == 0) {
if (field785) {
if (KeyHandler.dragInventoryWidget == TaskHandler.field2066 && dragItemSlotSource != dragItemSlotDestination) {
if (KeyHandler.dragInventoryWidget == TaskHandler.hoveredItemContainer && dragItemSlotSource != dragItemSlotDestination) {
Widget var43 = KeyHandler.dragInventoryWidget;
byte var31 = 0;
if (field838 == 1 && var43.contentType == 206) {
@@ -3514,7 +3514,7 @@ public final class Client extends GameShell implements Usernamed {
var31 = 0;
}
if (Projectile.method2249(KeyHandler.getWidgetClickMask(var43))) {
if (Projectile.method2249(KeyHandler.getWidgetFlags(var43))) {
var6 = dragItemSlotSource;
var7 = dragItemSlotDestination;
var43.itemIds[var7] = var43.itemIds[var6];
@@ -3559,7 +3559,7 @@ public final class Client extends GameShell implements Usernamed {
}
}
if (Scene.method3230()) {
if (Scene.shouldSendWalk()) {
var4 = Scene.Scene_selectedX;
var5 = Scene.Scene_selectedY;
var18 = UserComparator4.getPacketBufferNode(ClientPacket.field2311, packetWriter.isaacCipher);
@@ -3568,7 +3568,7 @@ public final class Client extends GameShell implements Usernamed {
var18.packetBuffer.writeShort(var4 + class182.baseX);
var18.packetBuffer.method5744(KeyHandler.KeyHandler_pressedKeys[82] ? (KeyHandler.KeyHandler_pressedKeys[81] ? 2 : 1) : 0);
packetWriter.addNode(var18);
Scene.method3346();
Scene.resetWalking();
mouseCrossX = MouseHandler.MouseHandler_lastPressedX;
mouseCrossY = MouseHandler.MouseHandler_lastPressedY;
mouseCrossColor = 1;
@@ -3905,7 +3905,7 @@ public final class Client extends GameShell implements Usernamed {
field877 = cycle;
viewportX = -1;
viewportY = -1;
TaskHandler.field2066 = null;
TaskHandler.hoveredItemContainer = null;
if (rootInterface != -1) {
rootWidgetCount = 0;
NetFileRequest.drawWidgets(rootInterface, 0, 0, Varcs.canvasWidth, class52.canvasHeight, 0, 0, -1);
@@ -4509,12 +4509,12 @@ public final class Client extends GameShell implements Usernamed {
for (var29 = var5; var29 <= var21; ++var29) {
var23 = (long)var29 + ((long)var16 << 32);
Node var11 = widgetClickMasks.get(var23);
Node var11 = widgetFlags.get(var23);
if (var11 != null) {
var11.remove();
}
widgetClickMasks.put(new IntegerNode(var22), var23);
widgetFlags.put(new IntegerNode(var22), var23);
}
var1.serverPacket = null;
@@ -4677,7 +4677,7 @@ public final class Client extends GameShell implements Usernamed {
}
}
widgetClickMasks = new NodeHashTable(512);
widgetFlags = new NodeHashTable(512);
while (var3.offset < var16) {
var22 = var3.readInt();
@@ -4687,7 +4687,7 @@ public final class Client extends GameShell implements Usernamed {
for (int var33 = var29; var33 <= var30; ++var33) {
var25 = (long)var33 + ((long)var22 << 32);
widgetClickMasks.put(new IntegerNode(var31), var25);
widgetFlags.put(new IntegerNode(var31), var25);
}
}
@@ -5435,14 +5435,14 @@ public final class Client extends GameShell implements Usernamed {
var12 = menuArguments1[var2];
var5 = menuArguments2[var2];
Widget var13 = WorldMapSprite.getWidget(var5);
var8 = KeyHandler.getWidgetClickMask(var13);
var8 = KeyHandler.getWidgetFlags(var13);
boolean var7 = (var8 >> 28 & 1) != 0;
if (var7) {
break label281;
}
Object var10000 = null;
if (Projectile.method2249(KeyHandler.getWidgetClickMask(var13))) {
if (Projectile.method2249(KeyHandler.getWidgetFlags(var13))) {
break label281;
}
}

View File

@@ -257,7 +257,8 @@ public class FloorUnderlayDefinition extends DualNode {
signature = "(IB)Z",
garbageValue = "7"
)
public static boolean method4615(int var0) {
@Export("Widget_isItemContainer")
public static boolean Widget_isItemContainer(int var0) {
return (var0 >> 30 & 1) != 0;
}
}

View File

@@ -318,7 +318,7 @@ public class FriendSystem {
garbageValue = "74"
)
static Widget method1994(Widget var0) {
int var1 = WorldMapDecoration.method402(KeyHandler.getWidgetClickMask(var0));
int var1 = WorldMapDecoration.method402(KeyHandler.getWidgetFlags(var0));
if (var1 == 0) {
return null;
} else {

View File

@@ -85,7 +85,7 @@ final class GrandExchangeOfferWorldComparator implements Comparator {
var4.actions = null;
return 1;
} else if (var0 == 1308) {
var4.field2744 = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize] == 1;
var4.prioritizeMenuEntry = Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize] == 1;
return 1;
} else if (var0 == 1309) {
--UrlRequester.Interpreter_intStackSize;

View File

@@ -656,9 +656,9 @@ public final class KeyHandler implements KeyListener, FocusListener {
signature = "(Lhd;I)I",
garbageValue = "-1756984804"
)
@Export("getWidgetClickMask")
static int getWidgetClickMask(Widget var0) {
IntegerNode var1 = (IntegerNode)Client.widgetClickMasks.get(((long)var0.id << 32) + (long)var0.childIndex);
return var1 != null ? var1.integer : var0.clickMask;
@Export("getWidgetFlags")
static int getWidgetFlags(Widget var0) {
IntegerNode var1 = (IntegerNode)Client.widgetFlags.get(((long)var0.id << 32) + (long)var0.childIndex);
return var1 != null ? var1.integer : var0.flags;
}
}

View File

@@ -178,127 +178,128 @@ public class Message extends DualNode {
signature = "(Lhd;III)V",
garbageValue = "-1019531565"
)
static final void method1283(Widget var0, int var1, int var2) {
if (var0.buttonType == 1) {
ScriptEvent.insertMenuItemNoShift(var0.buttonText, "", 24, 0, 0, var0.id);
@Export("Widget_addToMenu")
static final void Widget_addToMenu(Widget widget, int var1, int var2) {
if (widget.buttonType == 1) {
ScriptEvent.insertMenuItemNoShift(widget.buttonText, "", 24, 0, 0, widget.id);
}
String var3;
if (var0.buttonType == 2 && !Client.isSpellSelected) {
var3 = WorldMapAreaData.method762(var0);
if (widget.buttonType == 2 && !Client.isSpellSelected) {
var3 = WorldMapAreaData.Widget_getSpellActionName(widget);
if (var3 != null) {
ScriptEvent.insertMenuItemNoShift(var3, ItemContainer.colorStartTag(65280) + var0.spellName, 25, 0, -1, var0.id);
ScriptEvent.insertMenuItemNoShift(var3, ItemContainer.colorStartTag(65280) + widget.spellName, 25, 0, -1, widget.id);
}
}
if (var0.buttonType == 3) {
ScriptEvent.insertMenuItemNoShift("Close", "", 26, 0, 0, var0.id);
if (widget.buttonType == 3) {
ScriptEvent.insertMenuItemNoShift("Close", "", 26, 0, 0, widget.id);
}
if (var0.buttonType == 4) {
ScriptEvent.insertMenuItemNoShift(var0.buttonText, "", 28, 0, 0, var0.id);
if (widget.buttonType == 4) {
ScriptEvent.insertMenuItemNoShift(widget.buttonText, "", 28, 0, 0, widget.id);
}
if (var0.buttonType == 5) {
ScriptEvent.insertMenuItemNoShift(var0.buttonText, "", 29, 0, 0, var0.id);
if (widget.buttonType == 5) {
ScriptEvent.insertMenuItemNoShift(widget.buttonText, "", 29, 0, 0, widget.id);
}
if (var0.buttonType == 6 && Client.meslayerContinueWidget == null) {
ScriptEvent.insertMenuItemNoShift(var0.buttonText, "", 30, 0, -1, var0.id);
if (widget.buttonType == 6 && Client.meslayerContinueWidget == null) {
ScriptEvent.insertMenuItemNoShift(widget.buttonText, "", 30, 0, -1, widget.id);
}
int var4;
int var6;
int var7;
int var13;
if (var0.type == 2) {
if (widget.type == 2) {
var13 = 0;
for (var4 = 0; var4 < var0.height; ++var4) {
for (int var5 = 0; var5 < var0.width; ++var5) {
var6 = (var0.paddingX + 32) * var5;
var7 = (var0.paddingY + 32) * var4;
for (var4 = 0; var4 < widget.height; ++var4) {
for (int var5 = 0; var5 < widget.width; ++var5) {
var6 = (widget.paddingX + 32) * var5;
var7 = (widget.paddingY + 32) * var4;
if (var13 < 20) {
var6 += var0.inventoryXOffsets[var13];
var7 += var0.inventoryYOffsets[var13];
var6 += widget.inventoryXOffsets[var13];
var7 += widget.inventoryYOffsets[var13];
}
if (var1 >= var6 && var2 >= var7 && var1 < var6 + 32 && var2 < var7 + 32) {
Client.dragItemSlotDestination = var13;
TaskHandler.field2066 = var0;
if (var0.itemIds[var13] > 0) {
ItemDefinition var8 = KitDefinition.ItemDefinition_get(var0.itemIds[var13] - 1);
if (Client.isItemSelected == 1 && FloorUnderlayDefinition.method4615(KeyHandler.getWidgetClickMask(var0))) {
if (var0.id != AbstractUserComparator.selectedItemWidget || var13 != LoginScreenAnimation.selectedItemSlot) {
ScriptEvent.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ItemContainer.colorStartTag(16748608) + var8.name, 31, var8.id, var13, var0.id);
TaskHandler.hoveredItemContainer = widget;
if (widget.itemIds[var13] > 0) {
ItemDefinition itemDef = KitDefinition.ItemDefinition_get(widget.itemIds[var13] - 1);
if (Client.isItemSelected == 1 && FloorUnderlayDefinition.Widget_isItemContainer(KeyHandler.getWidgetFlags(widget))) {
if (widget.id != AbstractUserComparator.selectedItemWidget || var13 != LoginScreenAnimation.selectedItemSlot) {
ScriptEvent.insertMenuItemNoShift("Use", Client.selectedItemName + " " + "->" + " " + ItemContainer.colorStartTag(16748608) + itemDef.name, 31, itemDef.id, var13, widget.id);
}
} else if (Client.isSpellSelected && FloorUnderlayDefinition.method4615(KeyHandler.getWidgetClickMask(var0))) {
} else if (Client.isSpellSelected && FloorUnderlayDefinition.Widget_isItemContainer(KeyHandler.getWidgetFlags(widget))) {
if ((WorldMapSprite.selectedSpellFlags & 16) == 16) {
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ItemContainer.colorStartTag(16748608) + var8.name, 32, var8.id, var13, var0.id);
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + ItemContainer.colorStartTag(16748608) + itemDef.name, 32, itemDef.id, var13, widget.id);
}
} else {
String[] var9 = var8.inventoryActions;
int var10 = -1;
if (Client.shiftClickDrop && ModelData0.method3375()) {
var10 = var8.getShiftClickIndex();
String[] actionsAry = itemDef.inventoryActions;
int shiftClickIdx = -1;
if (Client.shiftClickDrop && ModelData0.shouldPrioritizeDrop()) {
shiftClickIdx = itemDef.getShiftClickIndex();
}
int var11;
if (FloorUnderlayDefinition.method4615(KeyHandler.getWidgetClickMask(var0))) {
for (var11 = 4; var11 >= 3; --var11) {
if (var11 != var10) {
WallDecoration.addWidgetItemMenuItem(var0, var8, var13, var11, false);
int loopIdx;
if (FloorUnderlayDefinition.Widget_isItemContainer(KeyHandler.getWidgetFlags(widget))) {
for (loopIdx = 4; loopIdx >= 3; --loopIdx) {
if (loopIdx != shiftClickIdx) {
WallDecoration.addWidgetItemMenuItem(widget, itemDef, var13, loopIdx, false);
}
}
}
if (class198.method3774(KeyHandler.getWidgetClickMask(var0))) {
ScriptEvent.insertMenuItemNoShift("Use", ItemContainer.colorStartTag(16748608) + var8.name, 38, var8.id, var13, var0.id);
if (class198.Widget_containerHasUseOption(KeyHandler.getWidgetFlags(widget))) {
ScriptEvent.insertMenuItemNoShift("Use", ItemContainer.colorStartTag(16748608) + itemDef.name, 38, itemDef.id, var13, widget.id);
}
if (FloorUnderlayDefinition.method4615(KeyHandler.getWidgetClickMask(var0))) {
for (var11 = 2; var11 >= 0; --var11) {
if (var11 != var10) {
WallDecoration.addWidgetItemMenuItem(var0, var8, var13, var11, false);
if (FloorUnderlayDefinition.Widget_isItemContainer(KeyHandler.getWidgetFlags(widget))) {
for (loopIdx = 2; loopIdx >= 0; --loopIdx) {
if (loopIdx != shiftClickIdx) {
WallDecoration.addWidgetItemMenuItem(widget, itemDef, var13, loopIdx, false);
}
}
if (var10 >= 0) {
WallDecoration.addWidgetItemMenuItem(var0, var8, var13, var10, true);
if (shiftClickIdx >= 0) {
WallDecoration.addWidgetItemMenuItem(widget, itemDef, var13, shiftClickIdx, true);
}
}
var9 = var0.itemActions;
if (var9 != null) {
for (var11 = 4; var11 >= 0; --var11) {
if (var9[var11] != null) {
byte var12 = 0;
if (var11 == 0) {
var12 = 39;
actionsAry = widget.itemActions;
if (actionsAry != null) {
for (loopIdx = 4; loopIdx >= 0; --loopIdx) {
if (actionsAry[loopIdx] != null) {
byte opcode = 0;
if (loopIdx == 0) {
opcode = 39;
}
if (var11 == 1) {
var12 = 40;
if (loopIdx == 1) {
opcode = 40;
}
if (var11 == 2) {
var12 = 41;
if (loopIdx == 2) {
opcode = 41;
}
if (var11 == 3) {
var12 = 42;
if (loopIdx == 3) {
opcode = 42;
}
if (var11 == 4) {
var12 = 43;
if (loopIdx == 4) {
opcode = 43;
}
ScriptEvent.insertMenuItemNoShift(var9[var11], ItemContainer.colorStartTag(16748608) + var8.name, var12, var8.id, var13, var0.id);
ScriptEvent.insertMenuItemNoShift(actionsAry[loopIdx], ItemContainer.colorStartTag(16748608) + itemDef.name, opcode, itemDef.id, var13, widget.id);
}
}
}
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(16748608) + var8.name, 1005, var8.id, var13, var0.id);
ScriptEvent.insertMenuItemNoShift("Examine", ItemContainer.colorStartTag(16748608) + itemDef.name, 1005, itemDef.id, var13, widget.id);
}
}
}
@@ -308,55 +309,55 @@ public class Message extends DualNode {
}
}
if (var0.isIf3) {
if (widget.isIf3) {
if (Client.isSpellSelected) {
var4 = KeyHandler.getWidgetClickMask(var0);
var4 = KeyHandler.getWidgetFlags(widget);
boolean var19 = (var4 >> 21 & 1) != 0;
if (var19 && (WorldMapSprite.selectedSpellFlags & 32) == 32) {
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + var0.dataText, 58, 0, var0.childIndex, var0.id);
ScriptEvent.insertMenuItemNoShift(Client.selectedSpellActionName, Client.selectedSpellName + " " + "->" + " " + widget.dataText, 58, 0, widget.childIndex, widget.id);
}
} else {
for (var13 = 9; var13 >= 5; --var13) {
var6 = KeyHandler.getWidgetClickMask(var0);
var6 = KeyHandler.getWidgetFlags(widget);
boolean var17 = (var6 >> var13 + 1 & 1) != 0;
String var14;
if (!var17 && var0.onOp == null) {
if (!var17 && widget.onOp == null) {
var14 = null;
} else if (var0.actions != null && var0.actions.length > var13 && var0.actions[var13] != null && var0.actions[var13].trim().length() != 0) {
var14 = var0.actions[var13];
} else if (widget.actions != null && widget.actions.length > var13 && widget.actions[var13] != null && widget.actions[var13].trim().length() != 0) {
var14 = widget.actions[var13];
} else {
var14 = null;
}
if (var14 != null) {
ScriptEvent.insertMenuItemNoShift(var14, var0.dataText, 1007, var13 + 1, var0.childIndex, var0.id);
ScriptEvent.insertMenuItemNoShift(var14, widget.dataText, 1007, var13 + 1, widget.childIndex, widget.id);
}
}
var3 = WorldMapAreaData.method762(var0);
var3 = WorldMapAreaData.Widget_getSpellActionName(widget);
if (var3 != null) {
ScriptEvent.insertMenuItemNoShift(var3, var0.dataText, 25, 0, var0.childIndex, var0.id);
ScriptEvent.insertMenuItemNoShift(var3, widget.dataText, 25, 0, widget.childIndex, widget.id);
}
for (var4 = 4; var4 >= 0; --var4) {
var7 = KeyHandler.getWidgetClickMask(var0);
var7 = KeyHandler.getWidgetFlags(widget);
boolean var18 = (var7 >> var4 + 1 & 1) != 0;
String var15;
if (!var18 && var0.onOp == null) {
if (!var18 && widget.onOp == null) {
var15 = null;
} else if (var0.actions != null && var0.actions.length > var4 && var0.actions[var4] != null && var0.actions[var4].trim().length() != 0) {
var15 = var0.actions[var4];
} else if (widget.actions != null && widget.actions.length > var4 && widget.actions[var4] != null && widget.actions[var4].trim().length() != 0) {
var15 = widget.actions[var4];
} else {
var15 = null;
}
if (var15 != null) {
ApproximateRouteStrategy.insertMenuItem(var15, var0.dataText, 57, var4 + 1, var0.childIndex, var0.id, var0.field2744);
ApproximateRouteStrategy.insertMenuItem(var15, widget.dataText, 57, var4 + 1, widget.childIndex, widget.id, widget.prioritizeMenuEntry);
}
}
if (WorldMapLabel.method487(KeyHandler.getWidgetClickMask(var0))) {
ScriptEvent.insertMenuItemNoShift("Continue", "", 30, 0, var0.childIndex, var0.id);
if (WorldMapLabel.Widget_hasContinueOption(KeyHandler.getWidgetFlags(widget))) {
ScriptEvent.insertMenuItemNoShift("Continue", "", 30, 0, widget.childIndex, widget.id);
}
}
}

View File

@@ -1,3 +1,4 @@
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@@ -32,7 +33,8 @@ public class ModelData0 {
signature = "(I)Z",
garbageValue = "1532544056"
)
static boolean method3375() {
@Export("shouldPrioritizeDrop")
static boolean shouldPrioritizeDrop() {
return Client.tapToDrop || KeyHandler.KeyHandler_pressedKeys[81];
}
}

View File

@@ -422,7 +422,7 @@ public class PlayerAppearance {
garbageValue = "1446127367"
)
static void method4177(int var0) {
for (IntegerNode var1 = (IntegerNode)Client.widgetClickMasks.first(); var1 != null; var1 = (IntegerNode)Client.widgetClickMasks.next()) {
for (IntegerNode var1 = (IntegerNode)Client.widgetFlags.first(); var1 != null; var1 = (IntegerNode)Client.widgetFlags.next()) {
if ((long)var0 == (var1.key >> 48 & 65535L)) {
var1.remove();
}

View File

@@ -1037,13 +1037,13 @@ public class Scene {
@ObfuscatedName("av")
@Export("menuOpen")
public void menuOpen(int var1, int var2, int var3, boolean var4) {
if (!method3230() || var4) {
public void menuOpen(int plane, int mouseX, int mouseY, boolean walking) {
if (!shouldSendWalk() || walking) {
checkClick = true;
viewportWalking = var4;
Scene_selectedPlane = var1;
Scene_selectedScreenX = var2;
Scene_selectedScreenY = var3;
viewportWalking = walking;
Scene_selectedPlane = plane;
Scene_selectedScreenX = mouseX;
Scene_selectedScreenY = mouseY;
Scene_selectedX = -1;
Scene_selectedY = -1;
}
@@ -2541,12 +2541,14 @@ public class Scene {
}
@ObfuscatedName("at")
public static boolean method3230() {
@Export("shouldSendWalk")
public static boolean shouldSendWalk() {
return viewportWalking && Scene_selectedX != -1;
}
@ObfuscatedName("aa")
public static void method3346() {
@Export("resetWalking")
public static void resetWalking() {
Scene_selectedX = -1;
viewportWalking = false;
}

View File

@@ -21,7 +21,8 @@ public class TaskHandler implements Runnable {
@ObfuscatedSignature(
signature = "Lhd;"
)
static Widget field2066;
@Export("hoveredItemContainer")
static Widget hoveredItemContainer;
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "Lfa;"

View File

@@ -146,31 +146,31 @@ public final class WallDecoration {
garbageValue = "-771039466"
)
@Export("addWidgetItemMenuItem")
static final void addWidgetItemMenuItem(Widget var0, ItemDefinition var1, int var2, int var3, boolean var4) {
String[] var5 = var1.inventoryActions;
byte var6 = -1;
String var7 = null;
if (var5 != null && var5[var3] != null) {
if (var3 == 0) {
var6 = 33;
} else if (var3 == 1) {
var6 = 34;
} else if (var3 == 2) {
var6 = 35;
} else if (var3 == 3) {
var6 = 36;
static final void addWidgetItemMenuItem(Widget widget, ItemDefinition itemDef, int slotIdx, int actionIdx, boolean forceLeftClick) {
String[] itemActions = itemDef.inventoryActions;
byte opcode = -1;
String action = null;
if (itemActions != null && itemActions[actionIdx] != null) {
if (actionIdx == 0) {
opcode = 33;
} else if (actionIdx == 1) {
opcode = 34;
} else if (actionIdx == 2) {
opcode = 35;
} else if (actionIdx == 3) {
opcode = 36;
} else {
var6 = 37;
opcode = 37;
}
var7 = var5[var3];
} else if (var3 == 4) {
var6 = 37;
var7 = "Drop";
action = itemActions[actionIdx];
} else if (actionIdx == 4) {
opcode = 37;
action = "Drop";
}
if (var6 != -1 && var7 != null) {
ApproximateRouteStrategy.insertMenuItem(var7, ItemContainer.colorStartTag(16748608) + var1.name, var6, var1.id, var2, var0.id, var4);
if (opcode != -1 && action != null) {
ApproximateRouteStrategy.insertMenuItem(action, ItemContainer.colorStartTag(16748608) + itemDef.name, opcode, itemDef.id, slotIdx, widget.id, forceLeftClick);
}
}

View File

@@ -440,8 +440,8 @@ public class Widget extends Node {
@ObfuscatedGetter(
intValue = 1451565177
)
@Export("clickMask")
public int clickMask;
@Export("flags")
public int flags;
@ObfuscatedName("cq")
public boolean field2709;
@ObfuscatedName("co")
@@ -681,7 +681,8 @@ public class Widget extends Node {
@Export("noScrollThrough")
public boolean noScrollThrough;
@ObfuscatedName("fn")
public boolean field2744;
@Export("prioritizeMenuEntry")
public boolean prioritizeMenuEntry;
static {
Widget_cachedSprites = new EvictingDualNodeHashTable(200);
@@ -759,7 +760,7 @@ public class Widget extends Node {
this.textShadowed = false;
this.paddingX = 0;
this.paddingY = 0;
this.clickMask = 0;
this.flags = 0;
this.field2709 = false;
this.dataText = "";
this.parent = null;
@@ -785,7 +786,7 @@ public class Widget extends Node {
this.cycle = -1;
this.noClickThrough = false;
this.noScrollThrough = false;
this.field2744 = false;
this.prioritizeMenuEntry = false;
}
@ObfuscatedName("g")
@@ -863,22 +864,22 @@ public class Widget extends Node {
this.itemQuantities = new int[this.rawWidth * this.rawHeight];
var4 = var1.readUnsignedByte();
if (var4 == 1) {
this.clickMask |= 268435456;
this.flags |= 268435456;
}
var5 = var1.readUnsignedByte();
if (var5 == 1) {
this.clickMask |= 1073741824;
this.flags |= 1073741824;
}
var6 = var1.readUnsignedByte();
if (var6 == 1) {
this.clickMask |= Integer.MIN_VALUE;
this.flags |= Integer.MIN_VALUE;
}
int var7 = var1.readUnsignedByte();
if (var7 == 1) {
this.clickMask |= 536870912;
this.flags |= 536870912;
}
this.paddingX = var1.readUnsignedByte();
@@ -905,7 +906,7 @@ public class Widget extends Node {
String var10 = var1.readStringCp1252NullTerminated();
if (var10.length() > 0) {
this.itemActions[var8] = var10;
this.clickMask |= 1 << var8 + 23;
this.flags |= 1 << var8 + 23;
}
}
}
@@ -989,7 +990,7 @@ public class Widget extends Node {
this.paddingY = var1.readShort();
var4 = var1.readUnsignedByte();
if (var4 == 1) {
this.clickMask |= 1073741824;
this.flags |= 1073741824;
}
this.itemActions = new String[5];
@@ -998,7 +999,7 @@ public class Widget extends Node {
String var11 = var1.readStringCp1252NullTerminated();
if (var11.length() > 0) {
this.itemActions[var5] = var11;
this.clickMask |= 1 << var5 + 23;
this.flags |= 1 << var5 + 23;
}
}
}
@@ -1011,7 +1012,7 @@ public class Widget extends Node {
this.spellActionName = var1.readStringCp1252NullTerminated();
this.spellName = var1.readStringCp1252NullTerminated();
var4 = var1.readUnsignedShort() & 63;
this.clickMask |= var4 << 11;
this.flags |= var4 << 11;
}
if (this.buttonType == 1 || this.buttonType == 4 || this.buttonType == 5 || this.buttonType == 6) {
@@ -1036,11 +1037,11 @@ public class Widget extends Node {
}
if (this.buttonType == 1 || this.buttonType == 4 || this.buttonType == 5) {
this.clickMask |= 4194304;
this.flags |= 4194304;
}
if (this.buttonType == 6) {
this.clickMask |= 1;
this.flags |= 1;
}
}
@@ -1149,7 +1150,7 @@ public class Widget extends Node {
this.field2633 = var1.readUnsignedByte() == 1;
}
this.clickMask = var1.readMedium();
this.flags = var1.readMedium();
this.dataText = var1.readStringCp1252NullTerminated();
int var2 = var1.readUnsignedByte();
if (var2 > 0) {

View File

@@ -198,8 +198,9 @@ public class WorldMapAreaData extends WorldMapArea {
signature = "(Lhd;B)Ljava/lang/String;",
garbageValue = "-51"
)
static String method762(Widget var0) {
if (WorldMapID.method617(KeyHandler.getWidgetClickMask(var0)) == 0) {
@Export("Widget_getSpellActionName")
static String Widget_getSpellActionName(Widget var0) {
if (WorldMapID.Widget_unpackTargetMask(KeyHandler.getWidgetFlags(var0)) == 0) {
return null;
} else {
return var0.spellActionName != null && var0.spellActionName.trim().length() != 0 ? var0.spellActionName : null;

View File

@@ -59,7 +59,8 @@ public class WorldMapID {
signature = "(II)I",
garbageValue = "-211582550"
)
public static int method617(int var0) {
@Export("Widget_unpackTargetMask")
public static int Widget_unpackTargetMask(int var0) {
return var0 >> 11 & 63;
}

View File

@@ -76,7 +76,8 @@ public class WorldMapLabel {
signature = "(II)Z",
garbageValue = "578317705"
)
public static boolean method487(int var0) {
@Export("Widget_hasContinueOption")
public static boolean Widget_hasContinueOption(int var0) {
return (var0 & 1) != 0;
}

View File

@@ -494,7 +494,7 @@ public final class WorldMapManager {
static int method717(int var0, Script var1, boolean var2) {
Widget var3 = WorldMapSprite.getWidget(Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize]);
if (var0 == ScriptOpcodes.IF_GETTARGETMASK) {
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = WorldMapID.method617(KeyHandler.getWidgetClickMask(var3));
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = WorldMapID.Widget_unpackTargetMask(KeyHandler.getWidgetFlags(var3));
return 1;
} else if (var0 != ScriptOpcodes.IF_GETOP) {
if (var0 == ScriptOpcodes.IF_GETOPBASE) {

View File

@@ -613,9 +613,9 @@ public class WorldMapSection0 implements WorldMapSection {
var16 = WorldMapLabelSize.getWidgetChild(var1, var0);
if (var16 != null) {
GrandExchangeOffer.Widget_runOnTargetLeave();
AttackOption.selectSpell(var1, var0, WorldMapID.method617(KeyHandler.getWidgetClickMask(var16)), var16.itemId);
AttackOption.selectSpell(var1, var0, WorldMapID.Widget_unpackTargetMask(KeyHandler.getWidgetFlags(var16)), var16.itemId);
Client.isItemSelected = 0;
Client.selectedSpellActionName = WorldMapAreaData.method762(var16);
Client.selectedSpellActionName = WorldMapAreaData.Widget_getSpellActionName(var16);
if (Client.selectedSpellActionName == null) {
Client.selectedSpellActionName = "null";
}

View File

@@ -16,7 +16,8 @@ public class class198 {
signature = "(IB)Z",
garbageValue = "-100"
)
public static boolean method3774(int var0) {
@Export("Widget_containerHasUseOption")
public static boolean Widget_containerHasUseOption(int var0) {
return (var0 >> 31 & 1) != 0;
}
}

View File

@@ -243,7 +243,7 @@ public class class247 {
}
if (var11) {
int var8 = KeyHandler.getWidgetClickMask(var5);
int var8 = KeyHandler.getWidgetFlags(var5);
int var9 = var0 - 1;
boolean var7 = (var8 >> var9 + 1 & 1) != 0;
if (var7) {

View File

@@ -86,7 +86,7 @@ public enum class7 implements Enumerated {
static int method100(int var0, Script var1, boolean var2) {
Widget var3 = var2 ? KeyHandler.field407 : SecureRandomCallable.field544;
if (var0 == ScriptOpcodes.CC_GETTARGETMASK) {
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = WorldMapID.method617(KeyHandler.getWidgetClickMask(var3));
Interpreter.Interpreter_intStack[++UrlRequester.Interpreter_intStackSize - 1] = WorldMapID.Widget_unpackTargetMask(KeyHandler.getWidgetFlags(var3));
return 1;
} else if (var0 != ScriptOpcodes.CC_GETOP) {
if (var0 == ScriptOpcodes.CC_GETOPBASE) {

View File

@@ -134,7 +134,7 @@ public class class9 {
static final void updateInterface(Widget[] var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
for (int var8 = 0; var8 < var0.length; ++var8) {
Widget var9 = var0[var8];
if (var9 != null && var9.parentId == var1 && (!var9.isIf3 || var9.type == 0 || var9.hasListener || KeyHandler.getWidgetClickMask(var9) != 0 || var9 == Client.clickedWidgetParent || var9.contentType == 1338)) {
if (var9 != null && var9.parentId == var1 && (!var9.isIf3 || var9.type == 0 || var9.hasListener || KeyHandler.getWidgetFlags(var9) != 0 || var9 == Client.clickedWidgetParent || var9.contentType == 1338)) {
if (var9.isIf3) {
if (Entity.isComponentHidden(var9)) {
continue;
@@ -268,7 +268,7 @@ public class class9 {
if (var9.contentType == 1400) {
class228.worldMap.addElementMenuOptions(var10, var11, var9.width, var9.height, var26, var18);
} else {
Message.method1283(var9, var26 - var10, var18 - var11);
Message.Widget_addToMenu(var9, var26 - var10, var18 - var11);
}
}
@@ -305,8 +305,8 @@ public class class9 {
class247.widgetDefaultMenuAction(var20 + 1, var9.id, var9.childIndex, var9.itemId, "");
} else if (var20 == 10) {
GrandExchangeOffer.Widget_runOnTargetLeave();
AttackOption.selectSpell(var9.id, var9.childIndex, WorldMapID.method617(KeyHandler.getWidgetClickMask(var9)), var9.itemId);
Client.selectedSpellActionName = WorldMapAreaData.method762(var9);
AttackOption.selectSpell(var9.id, var9.childIndex, WorldMapID.Widget_unpackTargetMask(KeyHandler.getWidgetFlags(var9)), var9.itemId);
Client.selectedSpellActionName = WorldMapAreaData.Widget_getSpellActionName(var9);
if (Client.selectedSpellActionName == null) {
Client.selectedSpellActionName = "null";
}
@@ -365,7 +365,7 @@ public class class9 {
class228.worldMap.method6693(var26, var18, var33 & var34, var33 & var21);
}
if (Client.clickedWidget != null && var9 != Client.clickedWidget && var33 && WorldMapScaleHandler.method819(KeyHandler.getWidgetClickMask(var9))) {
if (Client.clickedWidget != null && var9 != Client.clickedWidget && var33 && WorldMapScaleHandler.method819(KeyHandler.getWidgetFlags(var9))) {
Client.draggedOnWidget = var9;
}