Merge pull request #2751 from ThatGamerBlue/rsc-refactor

api: more imports and tile stuff
This commit is contained in:
ThatGamerBlue
2020-07-23 01:00:42 +01:00
committed by GitHub
33 changed files with 288 additions and 170 deletions

View File

@@ -1883,6 +1883,10 @@ public interface Client extends GameShell
boolean isSpellSelected(); boolean isSpellSelected();
String getSelectedSpellActionName();
int getSelectedSpellFlags();
/** /**
* Set whether or not player attack options will be hidden for friends * Set whether or not player attack options will be hidden for friends
*/ */
@@ -1937,8 +1941,12 @@ public interface Client extends GameShell
void setSelectedItemID(int id); void setSelectedItemID(int id);
int getSelectedItemWidget();
void setSelectedItemWidget(int widgetID); void setSelectedItemWidget(int widgetID);
int getSelectedItemSlot();
void setSelectedItemSlot(int idx); void setSelectedItemSlot(int idx);
int getSelectedSpellWidget(); int getSelectedSpellWidget();
@@ -2067,4 +2075,8 @@ public interface Client extends GameShell
int getFollowerIndex(); int getFollowerIndex();
int isItemSelected(); int isItemSelected();
String getSelectedItemName();
Widget getMessageContinueWidget();
} }

View File

@@ -111,6 +111,8 @@ public interface ItemDefinition
*/ */
String[] getInventoryActions(); String[] getInventoryActions();
String[] getGroundActions();
/** /**
* Gets the menu action index of the shift-click action. * Gets the menu action index of the shift-click action.
* *

View File

@@ -89,4 +89,12 @@ public interface Player extends Actor
*/ */
@Nullable @Nullable
SkullIcon getSkullIcon(); SkullIcon getSkullIcon();
/**
* This is almost always not what you want
* @return literal 0
*/
int getRSSkillLevel();
String[] getActions();
} }

View File

@@ -42,4 +42,9 @@ public interface TileItem extends Entity
* @return * @return
*/ */
int getSpawnTime(); int getSpawnTime();
/**
* @return the tile this item is on
*/
Tile getTile();
} }

View File

@@ -68,6 +68,8 @@ public interface Widget
*/ */
void setType(int type); void setType(int type);
int getButtonType();
/** /**
* Gets the type of content displayed by the widget. * Gets the type of content displayed by the widget.
*/ */
@@ -179,6 +181,18 @@ public interface Widget
@Deprecated @Deprecated
void setRelativeY(int y); void setRelativeY(int y);
String getSpellName();
/**
* You probably want {@link Widget#getText()} instead
*/
String getRSButtonText();
/**
* You probably want {@link Widget#getText()} instead
*/
String getButtonText();
/** /**
* Gets the text displayed on this widget. * Gets the text displayed on this widget.
* *
@@ -235,6 +249,12 @@ public interface Widget
*/ */
String getName(); String getName();
/**
* Gets the internal field returned by getName unfiltered
* @return the unfiltered name
*/
String getRSName();
/** /**
* Sets the name of the widget. * Sets the name of the widget.
* *
@@ -605,6 +625,8 @@ public interface Widget
*/ */
String[] getActions(); String[] getActions();
String[] getItemActions();
/** /**
* Creates a dynamic widget child * Creates a dynamic widget child
* *

View File

@@ -1862,8 +1862,8 @@ public abstract class RSClientMixin implements RSClient
} }
} }
@Replace("getWidgetClickMask") @Replace("getWidgetFlags")
public static int getWidgetClickMask(Widget widget) public static int getWidgetFlags(Widget widget)
{ {
IntegerNode integerNode = (IntegerNode) client.getWidgetFlags().get(((long) widget.getId() << 32) + (long) widget.getIndex()); IntegerNode integerNode = (IntegerNode) client.getWidgetFlags().get(((long) widget.getId() << 32) + (long) widget.getIndex());

View File

@@ -245,9 +245,12 @@ public abstract class RSTileMixin implements RSTile
List<TileItem> result = new ArrayList<TileItem>(); List<TileItem> result = new ArrayList<TileItem>();
Node node = layer.getBottom(); Node node = layer.getBottom();
while (node instanceof TileItem) while (node instanceof RSTileItem)
{ {
result.add((TileItem) node); RSTileItem item = (RSTileItem) node;
item.setX(getX());
item.setY(getY());
result.add(item);
node = node.getNext(); node = node.getNext();
} }
return result; return result;

View File

@@ -176,6 +176,13 @@ public abstract class RSWidgetMixin implements RSWidget
return -1; return -1;
} }
@Inject
@Override
public String getButtonText()
{
return getRSButtonText().replace('\u00A0', ' ');
}
@Inject @Inject
@Override @Override
public String getText() public String getText()

View File

@@ -472,7 +472,7 @@ public interface RSClient extends RSGameShell, Client
@Override @Override
RSArchive getIndexScripts(); RSArchive getIndexScripts();
@Import("widgetClickMasks") @Import("widgetFlags")
@Override @Override
RSNodeHashTable getWidgetFlags(); RSNodeHashTable getWidgetFlags();
@@ -1070,6 +1070,14 @@ public interface RSClient extends RSGameShell, Client
@Override @Override
void setSelectedSpellName(String name); void setSelectedSpellName(String name);
@Override
@Import("selectedSpellActionName")
String getSelectedSpellActionName();
@Override
@Import("selectedSpellFlags")
int getSelectedSpellFlags();
@Import("isSpellSelected") @Import("isSpellSelected")
boolean isSpellSelected(); boolean isSpellSelected();
@@ -1143,10 +1151,18 @@ public interface RSClient extends RSGameShell, Client
@Override @Override
void setSelectedItemID(int id); void setSelectedItemID(int id);
@Import("selectedItemSlot")
@Override
int getSelectedItemSlot();
@Import("selectedItemSlot") @Import("selectedItemSlot")
@Override @Override
void setSelectedItemSlot(int index); void setSelectedItemSlot(int index);
@Import("selectedItemWidget")
@Override
int getSelectedItemWidget();
@Import("selectedItemWidget") @Import("selectedItemWidget")
@Override @Override
void setSelectedItemWidget(int widgetID); void setSelectedItemWidget(int widgetID);
@@ -1290,4 +1306,11 @@ public interface RSClient extends RSGameShell, Client
@Override @Override
@Import("isItemSelected") @Import("isItemSelected")
int isItemSelected(); int isItemSelected();
@Override
@Import("selectedItemName")
String getSelectedItemName();
@Import("meslayerContinueWidget")
Widget getMessageContinueWidget();
} }

View File

@@ -65,6 +65,10 @@ public interface RSItemDefinition extends ItemDefinition
@Override @Override
String[] getInventoryActions(); String[] getInventoryActions();
@Import("groundActions")
@Override
String[] getGroundActions();
@Import("getShiftClickIndex") @Import("getShiftClickIndex")
@Override @Override
int getShiftClickActionIndex(); int getShiftClickActionIndex();

View File

@@ -65,4 +65,10 @@ public interface RSPlayer extends RSActor, Player
@Import("headIconPk") @Import("headIconPk")
int getRsSkullIcon(); int getRsSkullIcon();
@Import("skillLevel")
int getRSSkillLevel();
@Import("actions")
String[] getActions();
} }

View File

@@ -60,10 +60,10 @@ public interface RSWidget extends Widget
@Import("parentId") @Import("parentId")
void setParentId(int id); void setParentId(int id);
@Import("clickMask") @Import("flags")
int getClickMask(); int getClickMask();
@Import("clickMask") @Import("flags")
void setClickMask(int mask); void setClickMask(int mask);
//@Import("boundsIndex") -- unused for now //@Import("boundsIndex") -- unused for now
@@ -99,6 +99,16 @@ public interface RSWidget extends Widget
@Override @Override
String[] getActions(); String[] getActions();
@Import("itemActions")
@Override
String[] getItemActions();
@Import("spellName")
String getSpellName();
@Import("buttonText")
String getRSButtonText();
@Import("text") @Import("text")
String getRSText(); String getRSText();
@@ -221,6 +231,10 @@ public interface RSWidget extends Widget
@Override @Override
void setType(int type); void setType(int type);
@Import("buttonType")
@Override
int getButtonType();
@Import("scrollX") @Import("scrollX")
@Override @Override
int getScrollX(); int getScrollX();

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -422,7 +422,7 @@ public class PlayerAppearance {
garbageValue = "1446127367" garbageValue = "1446127367"
) )
static void method4177(int var0) { 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)) { if ((long)var0 == (var1.key >> 48 & 65535L)) {
var1.remove(); var1.remove();
} }

View File

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

View File

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

View File

@@ -146,31 +146,31 @@ public final class WallDecoration {
garbageValue = "-771039466" garbageValue = "-771039466"
) )
@Export("addWidgetItemMenuItem") @Export("addWidgetItemMenuItem")
static final void addWidgetItemMenuItem(Widget var0, ItemDefinition var1, int var2, int var3, boolean var4) { static final void addWidgetItemMenuItem(Widget widget, ItemDefinition itemDef, int slotIdx, int actionIdx, boolean forceLeftClick) {
String[] var5 = var1.inventoryActions; String[] itemActions = itemDef.inventoryActions;
byte var6 = -1; byte opcode = -1;
String var7 = null; String action = null;
if (var5 != null && var5[var3] != null) { if (itemActions != null && itemActions[actionIdx] != null) {
if (var3 == 0) { if (actionIdx == 0) {
var6 = 33; opcode = 33;
} else if (var3 == 1) { } else if (actionIdx == 1) {
var6 = 34; opcode = 34;
} else if (var3 == 2) { } else if (actionIdx == 2) {
var6 = 35; opcode = 35;
} else if (var3 == 3) { } else if (actionIdx == 3) {
var6 = 36; opcode = 36;
} else { } else {
var6 = 37; opcode = 37;
} }
var7 = var5[var3]; action = itemActions[actionIdx];
} else if (var3 == 4) { } else if (actionIdx == 4) {
var6 = 37; opcode = 37;
var7 = "Drop"; action = "Drop";
} }
if (var6 != -1 && var7 != null) { if (opcode != -1 && action != null) {
ApproximateRouteStrategy.insertMenuItem(var7, ItemContainer.colorStartTag(16748608) + var1.name, var6, var1.id, var2, var0.id, var4); 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( @ObfuscatedGetter(
intValue = 1451565177 intValue = 1451565177
) )
@Export("clickMask") @Export("flags")
public int clickMask; public int flags;
@ObfuscatedName("cq") @ObfuscatedName("cq")
public boolean field2709; public boolean field2709;
@ObfuscatedName("co") @ObfuscatedName("co")
@@ -681,7 +681,8 @@ public class Widget extends Node {
@Export("noScrollThrough") @Export("noScrollThrough")
public boolean noScrollThrough; public boolean noScrollThrough;
@ObfuscatedName("fn") @ObfuscatedName("fn")
public boolean field2744; @Export("prioritizeMenuEntry")
public boolean prioritizeMenuEntry;
static { static {
Widget_cachedSprites = new EvictingDualNodeHashTable(200); Widget_cachedSprites = new EvictingDualNodeHashTable(200);
@@ -759,7 +760,7 @@ public class Widget extends Node {
this.textShadowed = false; this.textShadowed = false;
this.paddingX = 0; this.paddingX = 0;
this.paddingY = 0; this.paddingY = 0;
this.clickMask = 0; this.flags = 0;
this.field2709 = false; this.field2709 = false;
this.dataText = ""; this.dataText = "";
this.parent = null; this.parent = null;
@@ -785,7 +786,7 @@ public class Widget extends Node {
this.cycle = -1; this.cycle = -1;
this.noClickThrough = false; this.noClickThrough = false;
this.noScrollThrough = false; this.noScrollThrough = false;
this.field2744 = false; this.prioritizeMenuEntry = false;
} }
@ObfuscatedName("g") @ObfuscatedName("g")
@@ -863,22 +864,22 @@ public class Widget extends Node {
this.itemQuantities = new int[this.rawWidth * this.rawHeight]; this.itemQuantities = new int[this.rawWidth * this.rawHeight];
var4 = var1.readUnsignedByte(); var4 = var1.readUnsignedByte();
if (var4 == 1) { if (var4 == 1) {
this.clickMask |= 268435456; this.flags |= 268435456;
} }
var5 = var1.readUnsignedByte(); var5 = var1.readUnsignedByte();
if (var5 == 1) { if (var5 == 1) {
this.clickMask |= 1073741824; this.flags |= 1073741824;
} }
var6 = var1.readUnsignedByte(); var6 = var1.readUnsignedByte();
if (var6 == 1) { if (var6 == 1) {
this.clickMask |= Integer.MIN_VALUE; this.flags |= Integer.MIN_VALUE;
} }
int var7 = var1.readUnsignedByte(); int var7 = var1.readUnsignedByte();
if (var7 == 1) { if (var7 == 1) {
this.clickMask |= 536870912; this.flags |= 536870912;
} }
this.paddingX = var1.readUnsignedByte(); this.paddingX = var1.readUnsignedByte();
@@ -905,7 +906,7 @@ public class Widget extends Node {
String var10 = var1.readStringCp1252NullTerminated(); String var10 = var1.readStringCp1252NullTerminated();
if (var10.length() > 0) { if (var10.length() > 0) {
this.itemActions[var8] = var10; 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(); this.paddingY = var1.readShort();
var4 = var1.readUnsignedByte(); var4 = var1.readUnsignedByte();
if (var4 == 1) { if (var4 == 1) {
this.clickMask |= 1073741824; this.flags |= 1073741824;
} }
this.itemActions = new String[5]; this.itemActions = new String[5];
@@ -998,7 +999,7 @@ public class Widget extends Node {
String var11 = var1.readStringCp1252NullTerminated(); String var11 = var1.readStringCp1252NullTerminated();
if (var11.length() > 0) { if (var11.length() > 0) {
this.itemActions[var5] = var11; 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.spellActionName = var1.readStringCp1252NullTerminated();
this.spellName = var1.readStringCp1252NullTerminated(); this.spellName = var1.readStringCp1252NullTerminated();
var4 = var1.readUnsignedShort() & 63; 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) { 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) { if (this.buttonType == 1 || this.buttonType == 4 || this.buttonType == 5) {
this.clickMask |= 4194304; this.flags |= 4194304;
} }
if (this.buttonType == 6) { 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.field2633 = var1.readUnsignedByte() == 1;
} }
this.clickMask = var1.readMedium(); this.flags = var1.readMedium();
this.dataText = var1.readStringCp1252NullTerminated(); this.dataText = var1.readStringCp1252NullTerminated();
int var2 = var1.readUnsignedByte(); int var2 = var1.readUnsignedByte();
if (var2 > 0) { if (var2 > 0) {

View File

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

View File

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

View File

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

View File

@@ -494,7 +494,7 @@ public final class WorldMapManager {
static int method717(int var0, Script var1, boolean var2) { static int method717(int var0, Script var1, boolean var2) {
Widget var3 = WorldMapSprite.getWidget(Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize]); Widget var3 = WorldMapSprite.getWidget(Interpreter.Interpreter_intStack[--UrlRequester.Interpreter_intStackSize]);
if (var0 == ScriptOpcodes.IF_GETTARGETMASK) { 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; return 1;
} else if (var0 != ScriptOpcodes.IF_GETOP) { } else if (var0 != ScriptOpcodes.IF_GETOP) {
if (var0 == ScriptOpcodes.IF_GETOPBASE) { if (var0 == ScriptOpcodes.IF_GETOPBASE) {

View File

@@ -613,9 +613,9 @@ public class WorldMapSection0 implements WorldMapSection {
var16 = WorldMapLabelSize.getWidgetChild(var1, var0); var16 = WorldMapLabelSize.getWidgetChild(var1, var0);
if (var16 != null) { if (var16 != null) {
GrandExchangeOffer.Widget_runOnTargetLeave(); 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.isItemSelected = 0;
Client.selectedSpellActionName = WorldMapAreaData.method762(var16); Client.selectedSpellActionName = WorldMapAreaData.Widget_getSpellActionName(var16);
if (Client.selectedSpellActionName == null) { if (Client.selectedSpellActionName == null) {
Client.selectedSpellActionName = "null"; Client.selectedSpellActionName = "null";
} }

View File

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

View File

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

View File

@@ -86,7 +86,7 @@ public enum class7 implements Enumerated {
static int method100(int var0, Script var1, boolean var2) { static int method100(int var0, Script var1, boolean var2) {
Widget var3 = var2 ? KeyHandler.field407 : SecureRandomCallable.field544; Widget var3 = var2 ? KeyHandler.field407 : SecureRandomCallable.field544;
if (var0 == ScriptOpcodes.CC_GETTARGETMASK) { 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; return 1;
} else if (var0 != ScriptOpcodes.CC_GETOP) { } else if (var0 != ScriptOpcodes.CC_GETOP) {
if (var0 == ScriptOpcodes.CC_GETOPBASE) { 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) { 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) { for (int var8 = 0; var8 < var0.length; ++var8) {
Widget var9 = var0[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 (var9.isIf3) {
if (Entity.isComponentHidden(var9)) { if (Entity.isComponentHidden(var9)) {
continue; continue;
@@ -268,7 +268,7 @@ public class class9 {
if (var9.contentType == 1400) { if (var9.contentType == 1400) {
class228.worldMap.addElementMenuOptions(var10, var11, var9.width, var9.height, var26, var18); class228.worldMap.addElementMenuOptions(var10, var11, var9.width, var9.height, var26, var18);
} else { } 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, ""); class247.widgetDefaultMenuAction(var20 + 1, var9.id, var9.childIndex, var9.itemId, "");
} else if (var20 == 10) { } else if (var20 == 10) {
GrandExchangeOffer.Widget_runOnTargetLeave(); GrandExchangeOffer.Widget_runOnTargetLeave();
AttackOption.selectSpell(var9.id, var9.childIndex, WorldMapID.method617(KeyHandler.getWidgetClickMask(var9)), var9.itemId); AttackOption.selectSpell(var9.id, var9.childIndex, WorldMapID.Widget_unpackTargetMask(KeyHandler.getWidgetFlags(var9)), var9.itemId);
Client.selectedSpellActionName = WorldMapAreaData.method762(var9); Client.selectedSpellActionName = WorldMapAreaData.Widget_getSpellActionName(var9);
if (Client.selectedSpellActionName == null) { if (Client.selectedSpellActionName == null) {
Client.selectedSpellActionName = "null"; Client.selectedSpellActionName = "null";
} }
@@ -365,7 +365,7 @@ public class class9 {
class228.worldMap.method6693(var26, var18, var33 & var34, var33 & var21); 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; Client.draggedOnWidget = var9;
} }