diff --git a/runelite-api/src/main/java/net/runelite/api/MenuOpcode.java b/runelite-api/src/main/java/net/runelite/api/MenuOpcode.java index 886ce7aa56..1d38976bbf 100644 --- a/runelite-api/src/main/java/net/runelite/api/MenuOpcode.java +++ b/runelite-api/src/main/java/net/runelite/api/MenuOpcode.java @@ -232,6 +232,11 @@ public enum MenuOpcode */ WIDGET_DEFAULT(57), + /** + * Sub 1000 so it doesn't get sorted down in the list + */ + PRIO_RUNELITE(666), + /** * Menu action triggered by examining an object. */ diff --git a/runelite-api/src/main/java/net/runelite/api/events/Menu.java b/runelite-api/src/main/java/net/runelite/api/events/Menu.java new file mode 100644 index 0000000000..d344397221 --- /dev/null +++ b/runelite-api/src/main/java/net/runelite/api/events/Menu.java @@ -0,0 +1,31 @@ +package net.runelite.api.events; + +/** + * Gets sent before menu handling code is ran, once per client tick. + * Can be consumed, skipping this method this tick. + */ +public class Menu implements Event +{ + public static final Menu MENU = new Menu(); + + private Menu() + { + } + + private boolean run; + + public void reset() + { + run = true; + } + + public void dontRun() + { + run = false; + } + + public boolean shouldRun() + { + return run; + } +} diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java b/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java index f581bd8245..aaed685a2c 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java @@ -626,6 +626,7 @@ public interface Widget Object[] getOnInvTransmit(); + Object[] getOnOp(); /** * Returns the archive id of the font used diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java index 13822a3544..71bc87ab2a 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetID.java @@ -156,6 +156,7 @@ public class WidgetID public static final int EXPLORERS_RING_ALCH_GROUP_ID = 483; public static final int LMS_GROUP_ID = 333; public static final int LMS_INGAME_GROUP_ID = 328; + public static final int JEWELLERY_BOX_GROUP_ID = 590; static class WorldMap { @@ -1154,4 +1155,14 @@ public class WidgetID { static final int INFO = 4; } + + static class JewelBox + { + static final int DUEL_RING = 2; + static final int GAME_NECK = 3; + static final int COMB_BRAC = 4; + static final int SKIL_NECK = 5; + static final int RING_OFGP = 6; + static final int AMUL_GLOR = 7; // yes + } } diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java index 808c0eb8ff..1566ccd00f 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/WidgetInfo.java @@ -767,7 +767,14 @@ public enum WidgetInfo SEED_VAULT_TITLE_CONTAINER(WidgetID.SEED_VAULT_GROUP_ID, WidgetID.SeedVault.TITLE_CONTAINER), SEED_VAULT_ITEM_CONTAINER(WidgetID.SEED_VAULT_GROUP_ID, WidgetID.SeedVault.ITEM_CONTAINER), - SEED_VAULT_ITEM_TEXT(WidgetID.SEED_VAULT_GROUP_ID, WidgetID.SeedVault.ITEM_TEXT); + SEED_VAULT_ITEM_TEXT(WidgetID.SEED_VAULT_GROUP_ID, WidgetID.SeedVault.ITEM_TEXT), + + JEWELLERY_BOX_DUEL_RING(WidgetID.JEWELLERY_BOX_GROUP_ID, WidgetID.JewelBox.DUEL_RING), + JEWELLERY_BOX_GAME_NECK(WidgetID.JEWELLERY_BOX_GROUP_ID, WidgetID.JewelBox.GAME_NECK), + JEWELLERY_BOX_COMB_BRAC(WidgetID.JEWELLERY_BOX_GROUP_ID, WidgetID.JewelBox.COMB_BRAC), + JEWELLERY_BOX_SKIL_NECK(WidgetID.JEWELLERY_BOX_GROUP_ID, WidgetID.JewelBox.SKIL_NECK), + JEWELLERY_BOX_RING_OFGP(WidgetID.JEWELLERY_BOX_GROUP_ID, WidgetID.JewelBox.RING_OFGP), + JEWELLERY_BOX_AMUL_GLOR(WidgetID.JEWELLERY_BOX_GROUP_ID, WidgetID.JewelBox.AMUL_GLOR); private final int groupId; private final int childId; diff --git a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java index b07357ac41..ce202b1040 100644 --- a/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java +++ b/runelite-client/src/main/java/net/runelite/client/eventbus/EventBus.java @@ -12,7 +12,6 @@ import java.util.Objects; import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.api.events.Event; -import org.apache.commons.lang3.exception.ExceptionUtils; @Slf4j @Singleton @@ -55,8 +54,7 @@ public class EventBus implements EventBusInterface .cast(eventClass) // Cast it for easier usage .subscribe(action, error -> { - log.error("Error in eventbus: {}", error.getMessage()); - log.error(ExceptionUtils.getStackTrace(error)); + log.error("Error in eventbus", error); }); getCompositeDisposable(lifecycle).add(disposable); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java index 04e6fb49d6..6f52d0653e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/GpuPlugin.java @@ -291,11 +291,6 @@ public class GpuPlugin extends Plugin implements DrawCallbacks modelBufferSmall = new GpuIntBuffer(); modelBuffer = new GpuIntBuffer(); - if (log.isDebugEnabled()) - { - System.setProperty("jogl.debug", "true"); - } - GLProfile.initSingleton(); GLProfile glProfile = GLProfile.get(GLProfile.GL4); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java index b492bf5ea7..b2f1ae1c5f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperConfig.java @@ -2,7 +2,7 @@ * Copyright (c) 2018, Adam * Copyright (c) 2019, alanbaumgartner * Copyright (c) 2019, Kyle - * Copyright (c) 2019, lucouswin + * Copyright (c) 2019, Lucas * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -1292,6 +1292,17 @@ public interface MenuEntrySwapperConfig extends Config // Teleportation //------------------------------------------------------------// + @ConfigItem( + keyName = "lastJewel", + name = "Last Destination for Jewellery Box", + description = "Adds a \"Last-destination\" menu option when Jewellery Boxes are right clicked", + section = "teleportationSection" + ) + default boolean lastJewel() + { + return true; + } + @ConfigItem( keyName = "swapFairyRing", name = "Fairy Ring", @@ -1913,4 +1924,23 @@ public interface MenuEntrySwapperConfig extends Config { return "cure other, energy transfer, heal other, vengeance other"; } + + @ConfigItem( + keyName = "lastDes", + name = "", + description = "Last jewellery box destination (option)", + hidden = true + ) + default String lastDes() + { + return ""; + } + + @ConfigItem( + keyName = "lastDes", + name = "", + description = "Last jewellery box destination (option)", + hidden = true + ) + void lastDes(String des); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 3cfa9cc17f..d2f55aa849 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -3,7 +3,7 @@ * Copyright (c) 2018, Kamiel * Copyright (c) 2019, alanbaumgartner * Copyright (c) 2019, Kyle - * Copyright (c) 2019, lucouswin + * Copyright (c) 2019, Lucas * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -65,10 +65,16 @@ import net.runelite.api.events.ClientTick; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.FocusChanged; import net.runelite.api.events.GameStateChanged; +import net.runelite.api.events.Menu; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuOpened; +import net.runelite.api.events.MenuOptionClicked; +import net.runelite.api.events.ScriptCallbackEvent; import net.runelite.api.events.VarbitChanged; import net.runelite.api.util.Text; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetID; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.config.Keybind; @@ -102,6 +108,7 @@ import net.runelite.client.plugins.menuentryswapper.util.GamesNecklaceMode; import net.runelite.client.plugins.menuentryswapper.util.GloryMode; import net.runelite.client.plugins.menuentryswapper.util.HouseAdvertisementMode; import net.runelite.client.plugins.menuentryswapper.util.HouseMode; +import net.runelite.client.plugins.menuentryswapper.util.JewelleryBoxDestination; import net.runelite.client.plugins.menuentryswapper.util.MaxCapeMode; import net.runelite.client.plugins.menuentryswapper.util.NecklaceOfPassageMode; import net.runelite.client.plugins.menuentryswapper.util.ObeliskMode; @@ -115,6 +122,7 @@ import net.runelite.client.plugins.pvptools.PvpToolsConfig; import net.runelite.client.plugins.pvptools.PvpToolsPlugin; import net.runelite.client.util.HotkeyListener; import static net.runelite.client.util.MenuUtil.swap; +import org.apache.commons.lang3.ArrayUtils; @PluginDescriptor( name = "Menu Entry Swapper", @@ -127,10 +135,14 @@ import static net.runelite.client.util.MenuUtil.swap; @PluginDependency(PvpToolsPlugin.class) public class MenuEntrySwapperPlugin extends Plugin { - private static final String HOTKEY = "menuentryswapper hotkey"; - private static final String CONTROL = "menuentryswapper control"; - private static final String HOTKEY_CHECK = "menuentryswapper hotkey check"; - private static final String CONTROL_CHECK = "menuentryswapper control check"; + private static final Object HOTKEY = new Object(); + private static final Object CONTROL = new Object(); + private static final Object HOTKEY_CHECK = new Object(); + private static final Object CONTROL_CHECK = new Object(); + private static final Object JEWEL_CLICKED = new Object(); + private static final Object JEWEL_TELE = new Object(); + private static final Object JEWEL_WIDGET = new Object(); + private static final int PURO_PURO_REGION_ID = 10307; private static final Set NPC_MENU_TYPES = ImmutableSet.of( MenuOpcode.NPC_FIRST_OPTION, MenuOpcode.NPC_SECOND_OPTION, MenuOpcode.NPC_THIRD_OPTION, @@ -286,6 +298,8 @@ public class MenuEntrySwapperPlugin extends Plugin private boolean swapTravel; private boolean swapWildernessLever; + private JewelleryBoxDestination lastDes; + @Provides MenuEntrySwapperConfig provideConfig(ConfigManager configManager) { @@ -295,6 +309,8 @@ public class MenuEntrySwapperPlugin extends Plugin @Override public void startUp() { + this.lastDes = JewelleryBoxDestination.withOption(config.lastDes()); + migrateConfig(); updateConfig(); addSubscriptions(); @@ -346,6 +362,11 @@ public class MenuEntrySwapperPlugin extends Plugin eventBus.subscribe(MenuOpened.class, this, this::onMenuOpened); eventBus.subscribe(MenuEntryAdded.class, this, this::onMenuEntryAdded); eventBus.subscribe(FocusChanged.class, this, this::onFocusChanged); + + if (config.lastJewel()) + { + eventBus.subscribe(MenuOptionClicked.class, JEWEL_CLICKED, this::onMenuOptionClicked); + } } private void onFocusChanged(FocusChanged event) @@ -400,6 +421,16 @@ public class MenuEntrySwapperPlugin extends Plugin case "removedObjects": updateRemovedObjects(); return; + case "lastJewel": + if (config.lastJewel()) + { + eventBus.subscribe(MenuOptionClicked.class, JEWEL_CLICKED, this::onMenuOptionClicked); + } + else + { + eventBus.unregister(JEWEL_CLICKED); + } + return; } if (event.getKey().startsWith("swapSell") || event.getKey().startsWith("swapBuy") || @@ -524,6 +555,21 @@ public class MenuEntrySwapperPlugin extends Plugin } } + if (config.lastJewel() && option.equals("teleport") && entry.getTarget().contains("Jewellery Box") && lastDes != null) + { + final MenuEntry lastDesEntry = new MenuEntry(); + + lastDesEntry.setOpcode(MenuOpcode.PRIO_RUNELITE.getId()); + lastDesEntry.setOption(lastDes.getOption()); + + lastDesEntry.setTarget(entry.getTarget()); + lastDesEntry.setIdentifier(entry.getIdentifier()); + lastDesEntry.setParam0(entry.getParam0()); + lastDesEntry.setParam1(entry.getParam1()); + + menu_entries.add(lastDesEntry); + } + menu_entries.add(entry); } @@ -676,6 +722,84 @@ public class MenuEntrySwapperPlugin extends Plugin } } + private void onMenuOptionClicked(MenuOptionClicked event) + { + if (event.getOpcode() == MenuOpcode.WIDGET_DEFAULT.getId() && + WidgetInfo.TO_GROUP(event.getActionParam1()) == WidgetID.JEWELLERY_BOX_GROUP_ID) + { + if (event.getOption().equals(lastDes == null ? null : lastDes.getOption())) + { + return; + } + + JewelleryBoxDestination newDest = JewelleryBoxDestination.withOption(event.getOption()); + if (newDest == null) + { + return; + } + + lastDes = newDest; + config.lastDes(lastDes.getOption()); + } + else if (event.getOption().equals("Teleport") && event.getTarget().contains("Jewellery Box")) + { + eventBus.unregister("wait for widget"); + } + else if (lastDes != null && + event.getOpcode() == MenuOpcode.PRIO_RUNELITE.getId() && + event.getOption().equals(lastDes.getOption())) + { + MenuEntry e = event.getMenuEntry(); + e.setOption("Teleport"); + e.setOpcode(MenuOpcode.GAME_OBJECT_FIRST_OPTION.getId()); + + eventBus.subscribe(ScriptCallbackEvent.class, JEWEL_WIDGET, this::onScriptCallback); + } + } + + private void onScriptCallback(ScriptCallbackEvent event) + { + if (!event.getEventName().equals("jewelleryBoxDone")) + { + return; + } + + eventBus.unregister(JEWEL_WIDGET); + + // Use a event so we don't accidentally run another script before returning + // menu also is when jagex is probably expecting input like this so :) + eventBus.subscribe(Menu.class, JEWEL_TELE, this::teleportInputs); + } + + private void teleportInputs(Menu menu) + { + final Widget parent = client.getWidget(lastDes.getParent()); + if (parent == null) + { + return; + } + + final Widget child = parent.getChild(lastDes.getChildIndex()); + if (child == null) + { + return; + } + + Object[] args = child.getOnOp(); + if (args == null) + { + return; + } + + // Replace opIndex with 1 + args[ArrayUtils.indexOf(args, 0x80000004)] = 1; + + client.runScript(args); + eventBus.unregister(JEWEL_TELE); + + menu.dontRun(); + } + private void loadCustomSwaps(String config, Map map) { final Map tmp = new HashMap<>(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/util/JewelleryBoxDestination.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/util/JewelleryBoxDestination.java new file mode 100644 index 0000000000..e971dade60 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/util/JewelleryBoxDestination.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2019, Lucas + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package net.runelite.client.plugins.menuentryswapper.util; + +import com.google.common.collect.ImmutableMap; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import net.runelite.api.widgets.WidgetInfo; + +@RequiredArgsConstructor +@Getter +public enum JewelleryBoxDestination +{ + DUEL_ARENA("Duel Arena", WidgetInfo.JEWELLERY_BOX_DUEL_RING, 5), + CASTLE_WARS("Castle Wars", WidgetInfo.JEWELLERY_BOX_DUEL_RING, 6), + CLAN_WARS("Clan Wars", WidgetInfo.JEWELLERY_BOX_DUEL_RING, 7), + + BURTHORPE("Burthorpe", WidgetInfo.JEWELLERY_BOX_GAME_NECK, 5), + BARB_OUTPOST("Barbarian Outpost", WidgetInfo.JEWELLERY_BOX_GAME_NECK, 6), + CORP("Corporeal Beast", WidgetInfo.JEWELLERY_BOX_GAME_NECK, 7), + TEARS_OF_GUTHIX("Tears of Guthix", WidgetInfo.JEWELLERY_BOX_GAME_NECK, 8), + WINTERTODT("Wintertodt Camp", WidgetInfo.JEWELLERY_BOX_GAME_NECK, 9), + + WARRIOR_GUILD("Warriors' Guild", WidgetInfo.JEWELLERY_BOX_COMB_BRAC, 5), + CHAMPION_GUILD("Champions' Guild", WidgetInfo.JEWELLERY_BOX_COMB_BRAC, 6), + MONASTERY("Monastery", WidgetInfo.JEWELLERY_BOX_COMB_BRAC, 7), + RANGING_GUILD("Ranging Guild", WidgetInfo.JEWELLERY_BOX_COMB_BRAC, 8), + + FISHING_GUILD("Fishing Guild", WidgetInfo.JEWELLERY_BOX_SKIL_NECK, 5), + MINING_GUILD("Mining Guild", WidgetInfo.JEWELLERY_BOX_SKIL_NECK, 6), + CRAFTING_GUILD("Crafting Guild", WidgetInfo.JEWELLERY_BOX_SKIL_NECK, 7), + COOKING_GUILD("Cooking Guild", WidgetInfo.JEWELLERY_BOX_SKIL_NECK, 8), + WOODCUTTING_GUILD("Woodcutting Guild", WidgetInfo.JEWELLERY_BOX_SKIL_NECK, 9), + FARMING_GUILD("Farming Guild", WidgetInfo.JEWELLERY_BOX_SKIL_NECK, 10), + + MISCELLANIA("Miscellania", WidgetInfo.JEWELLERY_BOX_RING_OFGP, 5), + GRAND_EXCHANGE("Grand Exchange", WidgetInfo.JEWELLERY_BOX_RING_OFGP, 6), + FALADOR_PARK("Falador Park", WidgetInfo.JEWELLERY_BOX_RING_OFGP, 7), + DONDAKAN("Dondakan's Rock", WidgetInfo.JEWELLERY_BOX_RING_OFGP, 8), + + EDGEVILLE("Edgeville", WidgetInfo.JEWELLERY_BOX_AMUL_GLOR, 5), + KARAMJA("Karamja", WidgetInfo.JEWELLERY_BOX_AMUL_GLOR, 6), + DRAYNOR("Draynor Village", WidgetInfo.JEWELLERY_BOX_AMUL_GLOR, 7), + AL_KHARID("Al Kharid", WidgetInfo.JEWELLERY_BOX_AMUL_GLOR, 8); + + final String option; + final WidgetInfo parent; + final int childIndex; + + private static final ImmutableMap map; + static + { + final ImmutableMap.Builder builder = ImmutableMap.builderWithExpectedSize(values().length); + for (JewelleryBoxDestination val : values()) + { + builder.put(val.option, val); + } + map = builder.build(); + } + + public static JewelleryBoxDestination withOption(String option) + { + return map.get(option); + } +} diff --git a/runelite-client/src/main/scripts/JewelleryBoxInit.hash b/runelite-client/src/main/scripts/JewelleryBoxInit.hash new file mode 100644 index 0000000000..8089dd2109 --- /dev/null +++ b/runelite-client/src/main/scripts/JewelleryBoxInit.hash @@ -0,0 +1 @@ +8C575721ABBD408F564BB6A93894BEFC4D7928A6FBF0218FE5F5E68BD9354C3C \ No newline at end of file diff --git a/runelite-client/src/main/scripts/JewelleryBoxInit.rs2asm b/runelite-client/src/main/scripts/JewelleryBoxInit.rs2asm new file mode 100644 index 0000000000..89ce55505f --- /dev/null +++ b/runelite-client/src/main/scripts/JewelleryBoxInit.rs2asm @@ -0,0 +1,637 @@ +.id 1685 +.int_stack_count 2 +.string_stack_count 1 +.int_var_count 15 +.string_var_count 2 + invoke 2157 + iconst 38666241 + sload 0 + iconst 0 + invoke 228 + pop_int + iconst 38666240 + cc_deleteall + iconst 0 + istore 2 + iconst 0 + istore 3 + iconst 38666240 + if_getwidth + istore 4 + iload 4 + iconst 10 + sub + iconst 10 + sub + iconst 5 + sub + istore 4 + iload 4 + iconst 2 + div + istore 5 + iconst 38666240 + if_getheight + istore 6 + iload 6 + iconst 40 + sub + iconst 10 + sub + iconst 5 + sub + iconst 5 + sub + istore 6 + iconst 0 + istore 7 + iconst 0 + istore 8 + iconst 0 + istore 9 + iconst 5 + istore 10 + iconst 6 + istore 11 + iconst 4 + istore 12 + iload 10 + iload 11 + add + iload 12 + add + istore 13 + iload 10 + iload 13 + iload 6 + scale + istore 7 + iload 11 + iload 13 + iload 6 + scale + istore 8 + iload 12 + iload 13 + iload 6 + scale + istore 9 + iload 5 + iload 7 + iconst 0 + iconst 0 + iconst 38666242 + if_setsize + iconst 10 + iconst 40 + iconst 0 + iconst 0 + iconst 38666242 + if_setposition + iload 5 + iload 7 + iconst 0 + iconst 0 + iconst 38666243 + if_setsize + iconst 10 + iload 5 + add + iconst 5 + add + iconst 40 + iconst 0 + iconst 0 + iconst 38666243 + if_setposition + iload 5 + iload 8 + iconst 0 + iconst 0 + iconst 38666244 + if_setsize + iconst 10 + iconst 40 + iload 7 + add + iconst 5 + add + iconst 0 + iconst 0 + iconst 38666244 + if_setposition + iload 5 + iload 8 + iconst 0 + iconst 0 + iconst 38666245 + if_setsize + iconst 10 + iload 5 + add + iconst 5 + add + iconst 40 + iload 7 + add + iconst 5 + add + iconst 0 + iconst 0 + iconst 38666245 + if_setposition + iload 5 + iload 9 + iconst 0 + iconst 0 + iconst 38666246 + if_setsize + iconst 10 + iconst 40 + iload 7 + add + iload 8 + add + iconst 5 + add + iconst 5 + add + iconst 0 + iconst 0 + iconst 38666246 + if_setposition + iload 5 + iload 9 + iconst 0 + iconst 0 + iconst 38666247 + if_setsize + iconst 10 + iload 5 + add + iconst 5 + add + iconst 40 + iload 7 + add + iload 8 + add + iconst 5 + add + iconst 5 + add + iconst 0 + iconst 0 + iconst 38666247 + if_setposition + iconst 38666242 + iconst 1 + sconst "Ring of Dueling" + iconst 2552 + iload 0 + invoke 1686 + istore 14 + iconst 38666242 + iconst 3 + invoke 1687 + istore 3 + istore 2 + iconst 38666242 + iconst 1 + sconst "Duel Arena" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 0 + invoke 1688 + istore 2 + istore 14 + iconst 38666242 + iconst 1 + sconst "Castle Wars" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 1 + invoke 1688 + istore 2 + istore 14 + iconst 38666242 + iconst 1 + sconst "Clan Wars" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 2 + invoke 1688 + istore 2 + istore 14 + iconst 38666243 + iconst 1 + sconst "Games Necklace" + iconst 3853 + iload 0 + invoke 1686 + istore 14 + iconst 38666243 + iconst 5 + invoke 1687 + istore 3 + istore 2 + iconst 38666243 + iconst 1 + sconst "Burthorpe" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 3 + invoke 1688 + istore 2 + istore 14 + iconst 38666243 + iconst 1 + sconst "Barbarian Outpost" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 4 + invoke 1688 + istore 2 + istore 14 + iconst 38666243 + iconst 1 + sconst "Corporeal Beast" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 5 + invoke 1688 + istore 2 + istore 14 + sconst "Tears of Guthix" + sstore 1 + iload 1 + iconst 0 + testbit + iconst 0 + if_icmpeq LABEL279 + jump LABEL284 +LABEL279: + sconst "" + sload 1 + sconst "" + join_string 3 + sstore 1 +LABEL284: + iconst 38666243 + iconst 1 + sload 1 + iload 3 + iload 0 + iload 14 + iload 2 + iconst 6 + invoke 1688 + istore 2 + istore 14 + sconst "Wintertodt Camp" + sstore 1 + iload 1 + iconst 1 + testbit + iconst 0 + if_icmpeq LABEL303 + jump LABEL308 +LABEL303: + sconst "" + sload 1 + sconst "" + join_string 3 + sstore 1 +LABEL308: + iconst 38666243 + iconst 1 + sload 1 + iload 3 + iload 0 + iload 14 + iload 2 + iconst 7 + invoke 1688 + istore 2 + istore 14 + iconst 38666244 + iconst 2 + sconst "Combat bracelet" + iconst 11972 + iload 0 + invoke 1686 + istore 14 + iconst 38666244 + iconst 4 + invoke 1687 + istore 3 + istore 2 + iconst 38666244 + iconst 2 + sconst "Warriors' Guild" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 8 + invoke 1688 + istore 2 + istore 14 + iconst 38666244 + iconst 2 + sconst "Champions' Guild" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 9 + invoke 1688 + istore 2 + istore 14 + iconst 38666244 + iconst 2 + sconst "Monastery" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 10 + invoke 1688 + istore 2 + istore 14 + iconst 38666244 + iconst 2 + sconst "Ranging Guild" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 11 + invoke 1688 + istore 2 + istore 14 + iconst 38666245 + iconst 2 + sconst "Skills necklace" + iconst 11968 + iload 0 + invoke 1686 + istore 14 + iconst 38666245 + iconst 6 + invoke 1687 + istore 3 + istore 2 + iconst 38666245 + iconst 2 + sconst "Fishing Guild" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 12 + invoke 1688 + istore 2 + istore 14 + iconst 38666245 + iconst 2 + sconst "Mining Guild" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 13 + invoke 1688 + istore 2 + istore 14 + iconst 38666245 + iconst 2 + sconst "Crafting Guild" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 14 + invoke 1688 + istore 2 + istore 14 + iconst 38666245 + iconst 2 + sconst "Cooking Guild" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 15 + invoke 1688 + istore 2 + istore 14 + sconst "Woodcutting Guild" + sstore 1 + iload 1 + iconst 1 + testbit + iconst 0 + if_icmpeq LABEL439 + jump LABEL444 +LABEL439: + sconst "" + sload 1 + sconst "" + join_string 3 + sstore 1 +LABEL444: + iconst 38666245 + iconst 2 + sload 1 + iload 3 + iload 0 + iload 14 + iload 2 + iconst 16 + invoke 1688 + istore 2 + istore 14 + sconst "Farming Guild" + sstore 1 + iload 1 + iconst 1 + testbit + iconst 0 + if_icmpeq LABEL463 + jump LABEL468 +LABEL463: + sconst "" + sload 1 + sconst "" + join_string 3 + sstore 1 +LABEL468: + iconst 38666245 + iconst 2 + sload 1 + iload 3 + iload 0 + iload 14 + iload 2 + iconst 17 + invoke 1688 + istore 2 + istore 14 + iconst 38666246 + iconst 3 + sconst "Ring of Wealth" + iconst 11980 + iload 0 + invoke 1686 + istore 14 + iconst 38666246 + iconst 4 + invoke 1687 + istore 3 + istore 2 + sconst "Miscellania" + sstore 1 + iload 1 + iconst 2 + testbit + iconst 0 + if_icmpeq LABEL499 + jump LABEL504 +LABEL499: + sconst "" + sload 1 + sconst "" + join_string 3 + sstore 1 +LABEL504: + iconst 38666246 + iconst 3 + sload 1 + iload 3 + iload 0 + iload 14 + iload 2 + iconst 18 + invoke 1688 + istore 2 + istore 14 + iconst 38666246 + iconst 3 + sconst "Grand Exchange" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 19 + invoke 1688 + istore 2 + istore 14 + iconst 38666246 + iconst 3 + sconst "Falador Park" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 20 + invoke 1688 + istore 2 + istore 14 + sconst "Dondakan's Rock" + sstore 1 + iload 1 + iconst 3 + testbit + iconst 0 + if_icmpeq LABEL545 + jump LABEL550 +LABEL545: + sconst "" + sload 1 + sconst "" + join_string 3 + sstore 1 +LABEL550: + iconst 38666246 + iconst 3 + sload 1 + iload 3 + iload 0 + iload 14 + iload 2 + iconst 21 + invoke 1688 + istore 2 + istore 14 + iconst 38666247 + iconst 3 + sconst "Amulet of Glory" + iconst 11978 + iload 0 + invoke 1686 + istore 14 + iconst 38666247 + iconst 4 + invoke 1687 + istore 3 + istore 2 + iconst 38666247 + iconst 3 + sconst "Edgeville" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 22 + invoke 1688 + istore 2 + istore 14 + iconst 38666247 + iconst 3 + sconst "Karamja" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 23 + invoke 1688 + istore 2 + istore 14 + iconst 38666247 + iconst 3 + sconst "Draynor Village" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 24 + invoke 1688 + istore 2 + istore 14 + iconst 38666247 + iconst 3 + sconst "Al Kharid" + iload 3 + iload 0 + iload 14 + iload 2 + iconst 25 + invoke 1688 + istore 2 + istore 14 + sconst "jewelleryBoxDone" + runelite_callback + return diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index 70669fc9f6..81538cc417 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -86,6 +86,7 @@ import net.runelite.api.events.DraggingWidgetChanged; import net.runelite.api.events.ExperienceChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GrandExchangeOfferChanged; +import net.runelite.api.events.Menu; import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.MenuOpened; import net.runelite.api.events.MenuOptionClicked; @@ -1672,6 +1673,24 @@ public abstract class RSClientMixin implements RSClient return false; } + @Copy("menu") + void rs$menu() + { + throw new RuntimeException(); + } + + @Replace("menu") + void rl$menu() + { + Menu menu = Menu.MENU; + menu.reset(); + getCallbacks().post(Menu.class, menu); + if (menu.shouldRun()) + { + rs$menu(); + } + } + @Inject @Override public EnumDefinition getEnum(int id) diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java b/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java index 2992ffd18f..8965d2e348 100644 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java +++ b/runescape-api/src/main/java/net/runelite/rs/api/RSWidget.java @@ -320,6 +320,10 @@ public interface RSWidget extends Widget @Override Object[] getOnLoadListener(); + @Import("onOp") + @Override + Object[] getOnOp(); + @Import("onDialogAbort") @Override void setOnDialogAbortListener(Object... args); diff --git a/runescape-client/src/main/java/Client.java b/runescape-client/src/main/java/Client.java index 24b99a25e1..08a4bf4e72 100644 --- a/runescape-client/src/main/java/Client.java +++ b/runescape-client/src/main/java/Client.java @@ -3209,7 +3209,7 @@ public final class Client extends GameShell implements Usernamed { do { var40 = (ScriptEvent)scriptEvents.removeLast(); if (var40 == null) { - this.method1323(); + this.menu(); if (Tiles.worldMap != null) { Tiles.worldMap.method6272(WorldMapRectangle.plane, class223.baseX * 64 + (class223.localPlayer.x >> 7), class286.baseY * 64 + (class223.localPlayer.y >> 7), false); Tiles.worldMap.loadCache(); @@ -5105,7 +5105,8 @@ public final class Client extends GameShell implements Usernamed { signature = "(S)V", garbageValue = "255" ) - final void method1323() { + @Export("menu") + final void menu() { boolean var1 = false; int var2; @@ -5185,7 +5186,7 @@ public final class Client extends GameShell implements Usernamed { } if (var7 != -1) { - ModelData0.method3214(var7); + ModelData0.clickMenuIndex(var7); } isMenuOpen = false; @@ -5238,7 +5239,7 @@ public final class Client extends GameShell implements Usernamed { } if ((var16 == 1 || !WorldMapIcon_1.mouseCam && var16 == 4) && menuOptionsCount > 0) { - ModelData0.method3214(var2); + ModelData0.clickMenuIndex(var2); } if (var16 == 2 && menuOptionsCount > 0) { diff --git a/runescape-client/src/main/java/InvDefinition.java b/runescape-client/src/main/java/InvDefinition.java index 19d177599a..79415563b7 100644 --- a/runescape-client/src/main/java/InvDefinition.java +++ b/runescape-client/src/main/java/InvDefinition.java @@ -70,762 +70,716 @@ public class InvDefinition extends DualNode { garbageValue = "1826014571" ) @Export("menuAction") - static final void menuAction(int var0, int var1, int var2, int var3, String var4, String var5, int var6, int var7) { - if (var2 >= 2000) { - var2 -= 2000; + static final void menuAction(int param0, int param1, int opcode, int id, String option, String target, int var6, int var7) { + if (opcode >= 2000) { + opcode -= 2000; } - PacketBufferNode var8; - if (var2 == 1) { + if (opcode == 1) { Client.mouseCrossX = var6; Client.mouseCrossY = var7; Client.mouseCrossColor = 2; Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2230, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5476(class223.baseX * 64 + var0); - var8.packetBuffer.writeShort(class286.baseY * 64 + var1); + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2230, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5476(class223.baseX * 64 + param0); + var8.packetBuffer.writeShort(class286.baseY * 64 + param1); var8.packetBuffer.writeIntME(AbstractWorldMapData.selectedItemId); var8.packetBuffer.method5630(class2.selectedItemWidget); var8.packetBuffer.writeShort(DevicePcmPlayerProvider.selectedItemSlot); - var8.packetBuffer.writeShortLE(var3); + var8.packetBuffer.writeShortLE(id); var8.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); Client.packetWriter.addNode(var8); - } else if (var2 == 2) { + } else if (opcode == 2) { Client.mouseCrossX = var6; Client.mouseCrossY = var7; Client.mouseCrossColor = 2; Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2252, Client.packetWriter.isaacCipher); + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2252, Client.packetWriter.isaacCipher); var8.packetBuffer.writeInt(AttackOption.selectedSpellWidget); var8.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.writeShort(class286.baseY * 64 + var1); - var8.packetBuffer.writeShortLE(var3); - var8.packetBuffer.writeShort(class223.baseX * 64 + var0); + var8.packetBuffer.writeShort(class286.baseY * 64 + param1); + var8.packetBuffer.writeShortLE(id); + var8.packetBuffer.writeShort(class223.baseX * 64 + param0); var8.packetBuffer.writeIntME(Client.selectedSpellChildIndex); Client.packetWriter.addNode(var8); - } else if (var2 == 3) { + } else if (opcode == 3) { Client.mouseCrossX = var6; Client.mouseCrossY = var7; Client.mouseCrossColor = 2; Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2235, Client.packetWriter.isaacCipher); + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2235, Client.packetWriter.isaacCipher); var8.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.writeShort(var3); - var8.packetBuffer.writeIntME(class286.baseY * 64 + var1); - var8.packetBuffer.writeShortLE(class223.baseX * 64 + var0); + var8.packetBuffer.writeShort(id); + var8.packetBuffer.writeIntME(class286.baseY * 64 + param1); + var8.packetBuffer.writeShortLE(class223.baseX * 64 + param0); Client.packetWriter.addNode(var8); - } else if (var2 == 4) { + } else if (opcode == 4) { Client.mouseCrossX = var6; Client.mouseCrossY = var7; Client.mouseCrossColor = 2; Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2190, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShortLE(var3); - var8.packetBuffer.writeShort(class223.baseX * 64 + var0); + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2190, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShortLE(id); + var8.packetBuffer.writeShort(class223.baseX * 64 + param0); var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.writeIntME(class286.baseY * 64 + var1); + var8.packetBuffer.writeIntME(class286.baseY * 64 + param1); Client.packetWriter.addNode(var8); - } else if (var2 == 5) { + } else if (opcode == 5) { Client.mouseCrossX = var6; Client.mouseCrossY = var7; Client.mouseCrossColor = 2; Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2226, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShort(var3); - var8.packetBuffer.writeIntME(class223.baseX * 64 + var0); - var8.packetBuffer.writeShortLE(class286.baseY * 64 + var1); + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2226, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShort(id); + var8.packetBuffer.writeIntME(class223.baseX * 64 + param0); + var8.packetBuffer.writeShortLE(class286.baseY * 64 + param1); var8.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); Client.packetWriter.addNode(var8); - } else if (var2 == 6) { + } else if (opcode == 6) { Client.mouseCrossX = var6; Client.mouseCrossY = var7; Client.mouseCrossColor = 2; Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2266, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShort(class223.baseX * 64 + var0); + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2266, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShort(class223.baseX * 64 + param0); var8.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.writeIntME(var3); - var8.packetBuffer.writeIntME(class286.baseY * 64 + var1); + var8.packetBuffer.writeIntME(id); + var8.packetBuffer.writeIntME(class286.baseY * 64 + param1); Client.packetWriter.addNode(var8); - } else { - PacketBufferNode var9; - NPC var13; - if (var2 == 7) { - var13 = Client.npcs[var3]; - if (var13 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2195, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeIntLE16(class2.selectedItemWidget); - var9.packetBuffer.writeShortLE(AbstractWorldMapData.selectedItemId); - var9.packetBuffer.writeIntME(var3); - var9.packetBuffer.writeShortLE(DevicePcmPlayerProvider.selectedItemSlot); - var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 8) { - var13 = Client.npcs[var3]; - if (var13 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2260, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5476(Client.selectedSpellChildIndex); - var9.packetBuffer.method5476(var3); - var9.packetBuffer.writeIntLE16(AttackOption.selectedSpellWidget); - var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 9) { - var13 = Client.npcs[var3]; - if (var13 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2273, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 10) { - var13 = Client.npcs[var3]; - if (var13 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2280, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.writeIntME(var3); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 11) { - var13 = Client.npcs[var3]; - if (var13 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2219, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 12) { - var13 = Client.npcs[var3]; - if (var13 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2263, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 13) { - var13 = Client.npcs[var3]; - if (var13 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2221, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var9); - } + } else if (opcode == 7) { + NPC var13 = Client.npcs[id]; + if (var13 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2195, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeIntLE16(class2.selectedItemWidget); + var9.packetBuffer.writeShortLE(AbstractWorldMapData.selectedItemId); + var9.packetBuffer.writeIntME(id); + var9.packetBuffer.writeShortLE(DevicePcmPlayerProvider.selectedItemSlot); + var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 8) { + NPC var13 = Client.npcs[id]; + if (var13 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2260, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5476(Client.selectedSpellChildIndex); + var9.packetBuffer.method5476(id); + var9.packetBuffer.writeIntLE16(AttackOption.selectedSpellWidget); + var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 9) { + NPC var13 = Client.npcs[id]; + if (var13 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2273, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.method5476(id); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 10) { + NPC var13 = Client.npcs[id]; + if (var13 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2280, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.writeIntME(id); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 11) { + NPC var13 = Client.npcs[id]; + if (var13 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2219, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.method5476(id); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 12) { + NPC var13 = Client.npcs[id]; + if (var13 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2263, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.method5476(id); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 13) { + NPC var13 = Client.npcs[id]; + if (var13 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2221, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.method5476(id); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 14) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2243, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeShortLE(id); + var9.packetBuffer.method5630(class2.selectedItemWidget); + var9.packetBuffer.writeShort(AbstractWorldMapData.selectedItemId); + var9.packetBuffer.method5476(DevicePcmPlayerProvider.selectedItemSlot); + var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 15) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2239, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5476(id); + var9.packetBuffer.writeIntME(Client.selectedSpellChildIndex); + var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.method5489(AttackOption.selectedSpellWidget); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 16) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2197, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShortLE(id); + var8.packetBuffer.writeInt(class2.selectedItemWidget); + var8.packetBuffer.writeIntME(DevicePcmPlayerProvider.selectedItemSlot); + var8.packetBuffer.writeShortLE(class286.baseY * 64 + param1); + var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var8.packetBuffer.writeIntME(class223.baseX * 64 + param0); + var8.packetBuffer.writeIntME(AbstractWorldMapData.selectedItemId); + Client.packetWriter.addNode(var8); + } else if (opcode == 17) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2218, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeIntME(class286.baseY * 64 + param1); + var8.packetBuffer.writeIntLE16(AttackOption.selectedSpellWidget); + var8.packetBuffer.writeShortLE(id); + var8.packetBuffer.writeIntME(Client.selectedSpellChildIndex); + var8.packetBuffer.method5476(class223.baseX * 64 + param0); + var8.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var8); + } else if (opcode == 18) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2277, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var8.packetBuffer.method5476(class286.baseY * 64 + param1); + var8.packetBuffer.writeIntME(class223.baseX * 64 + param0); + var8.packetBuffer.writeShortLE(id); + Client.packetWriter.addNode(var8); + } else if (opcode == 19) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2205, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var8.packetBuffer.writeIntME(class223.baseX * 64 + param0); + var8.packetBuffer.writeIntME(id); + var8.packetBuffer.writeIntME(class286.baseY * 64 + param1); + Client.packetWriter.addNode(var8); + } else if (opcode == 20) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2240, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var8.packetBuffer.writeShortLE(class223.baseX * 64 + param0); + var8.packetBuffer.writeIntME(class286.baseY * 64 + param1); + var8.packetBuffer.method5476(id); + Client.packetWriter.addNode(var8); + } else if (opcode == 21) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2265, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShortLE(class223.baseX * 64 + param0); + var8.packetBuffer.writeIntME(class286.baseY * 64 + param1); + var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var8.packetBuffer.writeShort(id); + Client.packetWriter.addNode(var8); + } else if (opcode == 22) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2192, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5476(class223.baseX * 64 + param0); + var8.packetBuffer.method5476(class286.baseY * 64 + param1); + var8.packetBuffer.writeShortLE(id); + var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var8); + } else if (opcode == 23) { + if (Client.isMenuOpen) { + PacketWriter.scene.setViewportWalking(); } else { - Player var15; - if (var2 == 14) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2243, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeShortLE(var3); - var9.packetBuffer.method5630(class2.selectedItemWidget); - var9.packetBuffer.writeShort(AbstractWorldMapData.selectedItemId); - var9.packetBuffer.method5476(DevicePcmPlayerProvider.selectedItemSlot); - var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 15) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2239, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5476(var3); - var9.packetBuffer.writeIntME(Client.selectedSpellChildIndex); - var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.method5489(AttackOption.selectedSpellWidget); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 16) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2197, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShortLE(var3); - var8.packetBuffer.writeInt(class2.selectedItemWidget); - var8.packetBuffer.writeIntME(DevicePcmPlayerProvider.selectedItemSlot); - var8.packetBuffer.writeShortLE(class286.baseY * 64 + var1); - var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.writeIntME(class223.baseX * 64 + var0); - var8.packetBuffer.writeIntME(AbstractWorldMapData.selectedItemId); - Client.packetWriter.addNode(var8); - } else if (var2 == 17) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2218, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeIntME(class286.baseY * 64 + var1); - var8.packetBuffer.writeIntLE16(AttackOption.selectedSpellWidget); - var8.packetBuffer.writeShortLE(var3); - var8.packetBuffer.writeIntME(Client.selectedSpellChildIndex); - var8.packetBuffer.method5476(class223.baseX * 64 + var0); - var8.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var8); - } else if (var2 == 18) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2277, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.method5476(class286.baseY * 64 + var1); - var8.packetBuffer.writeIntME(class223.baseX * 64 + var0); - var8.packetBuffer.writeShortLE(var3); - Client.packetWriter.addNode(var8); - } else if (var2 == 19) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2205, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.writeIntME(class223.baseX * 64 + var0); - var8.packetBuffer.writeIntME(var3); - var8.packetBuffer.writeIntME(class286.baseY * 64 + var1); - Client.packetWriter.addNode(var8); - } else if (var2 == 20) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2240, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.writeShortLE(class223.baseX * 64 + var0); - var8.packetBuffer.writeIntME(class286.baseY * 64 + var1); - var8.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var8); - } else if (var2 == 21) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2265, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShortLE(class223.baseX * 64 + var0); - var8.packetBuffer.writeIntME(class286.baseY * 64 + var1); - var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var8.packetBuffer.writeShort(var3); - Client.packetWriter.addNode(var8); - } else if (var2 == 22) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2192, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5476(class223.baseX * 64 + var0); - var8.packetBuffer.method5476(class286.baseY * 64 + var1); - var8.packetBuffer.writeShortLE(var3); - var8.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var8); - } else if (var2 == 23) { - if (Client.isMenuOpen) { - PacketWriter.scene.setViewportWalking(); - } else { - PacketWriter.scene.menuOpen(WorldMapRectangle.plane, var0, var1, true); - } + PacketWriter.scene.menuOpen(WorldMapRectangle.plane, param0, param1, true); + } + } else if (opcode == 24) { + Widget var16 = Canvas.getWidget(param1); + boolean var11 = true; + if (var16.contentType > 0) { + var11 = class43.method840(var16); + } + + if (var11) { + PacketBufferNode var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2261, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeInt(param1); + Client.packetWriter.addNode(var10); + } + } else if (opcode == 25) { + Widget var16 = GrandExchangeOfferWorldComparator.getWidgetChild(param1, param0); + if (var16 != null) { + class208.Widget_runOnTargetLeave(); + class32.selectSpell(param1, param0, class2.method30(class2.getWidgetClickMask(var16)), var16.itemId); + Client.isItemSelected = 0; + Client.selectedSpellActionName = VerticalAlignment.method4321(var16); + if (Client.selectedSpellActionName == null) { + Client.selectedSpellActionName = "null"; + } + + if (var16.isIf3) { + Client.selectedSpellName = var16.dataText + World.colorStartTag(16777215); } else { - PacketBufferNode var10; - Widget var16; - if (var2 == 24) { - var16 = Canvas.getWidget(var1); - boolean var11 = true; - if (var16.contentType > 0) { - var11 = class43.method840(var16); - } - - if (var11) { - var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2261, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - Client.packetWriter.addNode(var10); - } - } else { - if (var2 == 25) { - var16 = GrandExchangeOfferWorldComparator.getWidgetChild(var1, var0); - if (var16 != null) { - class208.Widget_runOnTargetLeave(); - class32.selectSpell(var1, var0, class2.method30(class2.getWidgetClickMask(var16)), var16.itemId); - Client.isItemSelected = 0; - Client.selectedSpellActionName = VerticalAlignment.method4321(var16); - if (Client.selectedSpellActionName == null) { - Client.selectedSpellActionName = "null"; - } - - if (var16.isIf3) { - Client.selectedSpellName = var16.dataText + World.colorStartTag(16777215); - } else { - Client.selectedSpellName = World.colorStartTag(65280) + var16.spellName + World.colorStartTag(16777215); - } - } - - return; - } - - if (var2 == 26) { - class51.method922(); - } else { - int var12; - Widget var14; - if (var2 == 28) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2261, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeInt(var1); - Client.packetWriter.addNode(var8); - var14 = Canvas.getWidget(var1); - if (var14.cs1Instructions != null && var14.cs1Instructions[0][0] == 5) { - var12 = var14.cs1Instructions[0][1]; - Varps.Varps_main[var12] = 1 - Varps.Varps_main[var12]; - NetSocket.method3472(var12); - } - } else if (var2 == 29) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2261, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeInt(var1); - Client.packetWriter.addNode(var8); - var14 = Canvas.getWidget(var1); - if (var14.cs1Instructions != null && var14.cs1Instructions[0][0] == 5) { - var12 = var14.cs1Instructions[0][1]; - if (Varps.Varps_main[var12] != var14.cs1ComparisonValues[0]) { - Varps.Varps_main[var12] = var14.cs1ComparisonValues[0]; - NetSocket.method3472(var12); - } - } - } else if (var2 == 30) { - if (Client.meslayerContinueWidget == null) { - Clock.resumePauseWidget(var1, var0); - Client.meslayerContinueWidget = GrandExchangeOfferWorldComparator.getWidgetChild(var1, var0); - WorldMapSectionType.invalidateWidget(Client.meslayerContinueWidget); - } - } else if (var2 == 31) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2269, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5630(var1); - var8.packetBuffer.writeShortLE(DevicePcmPlayerProvider.selectedItemSlot); - var8.packetBuffer.writeInt(class2.selectedItemWidget); - var8.packetBuffer.writeShort(AbstractWorldMapData.selectedItemId); - var8.packetBuffer.writeShort(var0); - var8.packetBuffer.writeShort(var3); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 32) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2246, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShortLE(Client.selectedSpellChildIndex); - var8.packetBuffer.method5476(var0); - var8.packetBuffer.method5476(var3); - var8.packetBuffer.method5630(var1); - var8.packetBuffer.method5489(AttackOption.selectedSpellWidget); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 33) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2211, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeInt(var1); - var8.packetBuffer.method5476(var0); - var8.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 34) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2255, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeInt(var1); - var8.packetBuffer.method5476(var0); - var8.packetBuffer.writeIntME(var3); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 35) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2189, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5476(var3); - var8.packetBuffer.writeIntLE16(var1); - var8.packetBuffer.writeShort(var0); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 36) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2198, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShortLE(var3); - var8.packetBuffer.method5476(var0); - var8.packetBuffer.method5630(var1); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 37) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2247, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeIntME(var0); - var8.packetBuffer.method5630(var1); - var8.packetBuffer.writeIntME(var3); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else { - if (var2 == 38) { - class208.Widget_runOnTargetLeave(); - var16 = Canvas.getWidget(var1); - Client.isItemSelected = 1; - DevicePcmPlayerProvider.selectedItemSlot = var0; - class2.selectedItemWidget = var1; - AbstractWorldMapData.selectedItemId = var3; - WorldMapSectionType.invalidateWidget(var16); - Client.selectedItemName = World.colorStartTag(16748608) + Occluder.ItemDefinition_get(var3).name + World.colorStartTag(16777215); - if (Client.selectedItemName == null) { - Client.selectedItemName = "null"; - } - - return; - } - - if (var2 == 39) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2217, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeIntME(var0); - var8.packetBuffer.writeShort(var3); - var8.packetBuffer.method5489(var1); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 40) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2272, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5630(var1); - var8.packetBuffer.writeIntME(var0); - var8.packetBuffer.writeShortLE(var3); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 41) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2250, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5476(var0); - var8.packetBuffer.method5489(var1); - var8.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 42) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2259, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShort(var3); - var8.packetBuffer.writeShort(var0); - var8.packetBuffer.method5630(var1); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 43) { - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2282, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShort(var3); - var8.packetBuffer.method5489(var1); - var8.packetBuffer.writeShort(var0); - Client.packetWriter.addNode(var8); - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - } else if (var2 == 44) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2231, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeIntME(var3); - var9.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 45) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2227, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeShortLE(var3); - var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 46) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2206, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 47) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2271, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeShortLE(var3); - var9.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 48) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2242, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 49) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2214, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeShort(var3); - var9.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 50) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2274, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5476(var3); - var9.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var9); - } - } else if (var2 == 51) { - var15 = Client.players[var3]; - if (var15 != null) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2262, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - var9.packetBuffer.writeIntME(var3); - Client.packetWriter.addNode(var9); - } - } else { - label960: { - if (var2 != 57) { - if (var2 == 58) { - var16 = GrandExchangeOfferWorldComparator.getWidgetChild(var1, var0); - if (var16 != null) { - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2236, Client.packetWriter.isaacCipher); - var9.packetBuffer.method5630(var1); - var9.packetBuffer.writeShort(var16.itemId); - var9.packetBuffer.writeIntLE16(AttackOption.selectedSpellWidget); - var9.packetBuffer.writeShortLE(var0); - var9.packetBuffer.writeIntME(Client.selectedSpellChildIndex); - var9.packetBuffer.writeIntME(Client.field793); - Client.packetWriter.addNode(var9); - } - break label960; - } - - if (var2 == 1001) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - Client.destinationX = var0; - Client.destinationY = var1; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2234, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShort(class286.baseY * 64 + var1); - var8.packetBuffer.writeShort(class223.baseX * 64 + var0); - var8.packetBuffer.writeShort(var3); - var8.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); - Client.packetWriter.addNode(var8); - break label960; - } - - if (var2 == 1002) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2220, Client.packetWriter.isaacCipher); - var8.packetBuffer.method5476(var3); - Client.packetWriter.addNode(var8); - break label960; - } - - if (var2 == 1003) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - var13 = Client.npcs[var3]; - if (var13 != null) { - NPCDefinition var17 = var13.definition; - if (var17.transforms != null) { - var17 = var17.transform(); - } - - if (var17 != null) { - var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2248, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeIntME(var17.id); - Client.packetWriter.addNode(var10); - } - } - break label960; - } - - if (var2 == 1004) { - Client.mouseCrossX = var6; - Client.mouseCrossY = var7; - Client.mouseCrossColor = 2; - Client.mouseCrossState = 0; - var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2212, Client.packetWriter.isaacCipher); - var8.packetBuffer.writeShort(var3); - Client.packetWriter.addNode(var8); - break label960; - } - - if (var2 == 1005) { - var16 = Canvas.getWidget(var1); - if (var16 != null && var16.itemQuantities[var0] >= 100000) { - class210.addGameMessage(27, "", var16.itemQuantities[var0] + " x " + Occluder.ItemDefinition_get(var3).name); - } else { - var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2212, Client.packetWriter.isaacCipher); - var9.packetBuffer.writeShort(var3); - Client.packetWriter.addNode(var9); - } - - Client.field750 = 0; - GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(var1); - Client.field743 = var0; - break label960; - } - - if (var2 != 1007) { - if (var2 == 1011 || var2 == 1008 || var2 == 1009 || var2 == 1010 || var2 == 1012) { - Tiles.worldMap.menuAction(var2, var3, new Coord(var0), new Coord(var1)); - } - break label960; - } - } - - var16 = GrandExchangeOfferWorldComparator.getWidgetChild(var1, var0); - if (var16 != null) { - WorldMapSection1.method605(var3, var1, var0, var16.itemId, var5); - } - } - } - } - } - } + Client.selectedSpellName = World.colorStartTag(65280) + var16.spellName + World.colorStartTag(16777215); } } + + return; + } else if (opcode == 26) { + class51.method922(); + } else if (opcode == 28) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2261, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeInt(param1); + Client.packetWriter.addNode(var8); + Widget var14 = Canvas.getWidget(param1); + if (var14.cs1Instructions != null && var14.cs1Instructions[0][0] == 5) { + int var12 = var14.cs1Instructions[0][1]; + Varps.Varps_main[var12] = 1 - Varps.Varps_main[var12]; + NetSocket.method3472(var12); + } + } else if (opcode == 29) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2261, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeInt(param1); + Client.packetWriter.addNode(var8); + Widget var14 = Canvas.getWidget(param1); + if (var14.cs1Instructions != null && var14.cs1Instructions[0][0] == 5) { + int var12 = var14.cs1Instructions[0][1]; + if (Varps.Varps_main[var12] != var14.cs1ComparisonValues[0]) { + Varps.Varps_main[var12] = var14.cs1ComparisonValues[0]; + NetSocket.method3472(var12); + } + } + } else if (opcode == 30) { + if (Client.meslayerContinueWidget == null) { + Clock.resumePauseWidget(param1, param0); + Client.meslayerContinueWidget = GrandExchangeOfferWorldComparator.getWidgetChild(param1, param0); + WorldMapSectionType.invalidateWidget(Client.meslayerContinueWidget); + } + } else if (opcode == 31) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2269, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5630(param1); + var8.packetBuffer.writeShortLE(DevicePcmPlayerProvider.selectedItemSlot); + var8.packetBuffer.writeInt(class2.selectedItemWidget); + var8.packetBuffer.writeShort(AbstractWorldMapData.selectedItemId); + var8.packetBuffer.writeShort(param0); + var8.packetBuffer.writeShort(id); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 32) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2246, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShortLE(Client.selectedSpellChildIndex); + var8.packetBuffer.method5476(param0); + var8.packetBuffer.method5476(id); + var8.packetBuffer.method5630(param1); + var8.packetBuffer.method5489(AttackOption.selectedSpellWidget); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 33) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2211, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeInt(param1); + var8.packetBuffer.method5476(param0); + var8.packetBuffer.method5476(id); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 34) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2255, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeInt(param1); + var8.packetBuffer.method5476(param0); + var8.packetBuffer.writeIntME(id); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 35) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2189, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5476(id); + var8.packetBuffer.writeIntLE16(param1); + var8.packetBuffer.writeShort(param0); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 36) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2198, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShortLE(id); + var8.packetBuffer.method5476(param0); + var8.packetBuffer.method5630(param1); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 37) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2247, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeIntME(param0); + var8.packetBuffer.method5630(param1); + var8.packetBuffer.writeIntME(id); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 38) { + class208.Widget_runOnTargetLeave(); + Widget var16 = Canvas.getWidget(param1); + Client.isItemSelected = 1; + DevicePcmPlayerProvider.selectedItemSlot = param0; + class2.selectedItemWidget = param1; + AbstractWorldMapData.selectedItemId = id; + WorldMapSectionType.invalidateWidget(var16); + Client.selectedItemName = World.colorStartTag(16748608) + Occluder.ItemDefinition_get(id).name + World.colorStartTag(16777215); + if (Client.selectedItemName == null) { + Client.selectedItemName = "null"; + } + + return; + } else if (opcode == 39) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2217, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeIntME(param0); + var8.packetBuffer.writeShort(id); + var8.packetBuffer.method5489(param1); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 40) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2272, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5630(param1); + var8.packetBuffer.writeIntME(param0); + var8.packetBuffer.writeShortLE(id); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 41) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2250, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5476(param0); + var8.packetBuffer.method5489(param1); + var8.packetBuffer.method5476(id); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 42) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2259, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShort(id); + var8.packetBuffer.writeShort(param0); + var8.packetBuffer.method5630(param1); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 43) { + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2282, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShort(id); + var8.packetBuffer.method5489(param1); + var8.packetBuffer.writeShort(param0); + Client.packetWriter.addNode(var8); + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 44) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2231, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeIntME(id); + var9.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 45) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2227, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeShortLE(id); + var9.packetBuffer.writeByte(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 46) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2206, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5461(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.method5476(id); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 47) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2271, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeShortLE(id); + var9.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 48) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2242, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5468(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.method5476(id); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 49) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2214, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeShort(id); + var9.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 50) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2274, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5476(id); + var9.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 51) { + Player var15 = Client.players[id]; + if (var15 != null) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2262, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + var9.packetBuffer.writeIntME(id); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 57) { + Widget var16 = GrandExchangeOfferWorldComparator.getWidgetChild(param1, param0); + if (var16 != null) { + WorldMapSection1.widgetDefaultMenuAction(id, param1, param0, var16.itemId, target); + } + } else if (opcode == 58) { + Widget var16 = GrandExchangeOfferWorldComparator.getWidgetChild(param1, param0); + if (var16 != null) { + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2236, Client.packetWriter.isaacCipher); + var9.packetBuffer.method5630(param1); + var9.packetBuffer.writeShort(var16.itemId); + var9.packetBuffer.writeIntLE16(AttackOption.selectedSpellWidget); + var9.packetBuffer.writeShortLE(param0); + var9.packetBuffer.writeIntME(Client.selectedSpellChildIndex); + var9.packetBuffer.writeIntME(Client.field793); + Client.packetWriter.addNode(var9); + } + } else if (opcode == 1001) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + Client.destinationX = param0; + Client.destinationY = param1; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2234, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShort(class286.baseY * 64 + param1); + var8.packetBuffer.writeShort(class223.baseX * 64 + param0); + var8.packetBuffer.writeShort(id); + var8.packetBuffer.method5467(KeyHandler.KeyHandler_pressedKeys[82] ? 1 : 0); + Client.packetWriter.addNode(var8); + } else if (opcode == 1002) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2220, Client.packetWriter.isaacCipher); + var8.packetBuffer.method5476(id); + Client.packetWriter.addNode(var8); + } else if (opcode == 1003) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + NPC var13 = Client.npcs[id]; + if (var13 != null) { + NPCDefinition var17 = var13.definition; + if (var17.transforms != null) { + var17 = var17.transform(); + } + + if (var17 != null) { + PacketBufferNode var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2248, Client.packetWriter.isaacCipher); + var10.packetBuffer.writeIntME(var17.id); + Client.packetWriter.addNode(var10); + } + } + } else if (opcode == 1004) { + Client.mouseCrossX = var6; + Client.mouseCrossY = var7; + Client.mouseCrossColor = 2; + Client.mouseCrossState = 0; + PacketBufferNode var8 = InterfaceParent.getPacketBufferNode(ClientPacket.field2212, Client.packetWriter.isaacCipher); + var8.packetBuffer.writeShort(id); + Client.packetWriter.addNode(var8); + } else if (opcode == 1005) { + Widget var16 = Canvas.getWidget(param1); + if (var16 != null && var16.itemQuantities[param0] >= 100000) { + class210.addGameMessage(27, "", var16.itemQuantities[param0] + " x " + Occluder.ItemDefinition_get(id).name); + } else { + PacketBufferNode var9 = InterfaceParent.getPacketBufferNode(ClientPacket.field2212, Client.packetWriter.isaacCipher); + var9.packetBuffer.writeShort(id); + Client.packetWriter.addNode(var9); + } + + Client.field750 = 0; + GrandExchangeOfferOwnWorldComparator.field628 = Canvas.getWidget(param1); + Client.field743 = param0; + } else if (opcode == 1007) { + Widget var16 = GrandExchangeOfferWorldComparator.getWidgetChild(param1, param0); + if (var16 != null) { + WorldMapSection1.widgetDefaultMenuAction(id, param1, param0, var16.itemId, target); + } + } else if (opcode == 1011 || opcode == 1008 || opcode == 1009 || opcode == 1010 || opcode == 1012) { + Tiles.worldMap.menuAction(opcode, id, new Coord(param0), new Coord(param1)); } if (Client.isItemSelected != 0) { diff --git a/runescape-client/src/main/java/ModelData0.java b/runescape-client/src/main/java/ModelData0.java index 16d1354230..592c3f6910 100644 --- a/runescape-client/src/main/java/ModelData0.java +++ b/runescape-client/src/main/java/ModelData0.java @@ -41,7 +41,8 @@ public class ModelData0 { signature = "(II)V", garbageValue = "1738289394" ) - static final void method3214(int var0) { + @Export("clickMenuIndex") + static final void clickMenuIndex(int var0) { if (var0 >= 0) { int var1 = Client.menuArguments1[var0]; int var2 = Client.menuArguments2[var0]; diff --git a/runescape-client/src/main/java/MusicPatchNode.java b/runescape-client/src/main/java/MusicPatchNode.java index 8833c8c3e0..4a50938d26 100644 --- a/runescape-client/src/main/java/MusicPatchNode.java +++ b/runescape-client/src/main/java/MusicPatchNode.java @@ -526,7 +526,7 @@ public class MusicPatchNode extends Node { if (var22) { if (var20 < 10) { - WorldMapSection1.method605(var20 + 1, var9.id, var9.childIndex, var9.itemId, ""); + WorldMapSection1.widgetDefaultMenuAction(var20 + 1, var9.id, var9.childIndex, var9.itemId, ""); } else if (var20 == 10) { class208.Widget_runOnTargetLeave(); class32.selectSpell(var9.id, var9.childIndex, class2.method30(class2.getWidgetClickMask(var9)), var9.itemId); diff --git a/runescape-client/src/main/java/WorldMapSection1.java b/runescape-client/src/main/java/WorldMapSection1.java index f0d4bbcb21..ec8c94201e 100644 --- a/runescape-client/src/main/java/WorldMapSection1.java +++ b/runescape-client/src/main/java/WorldMapSection1.java @@ -255,14 +255,15 @@ public class WorldMapSection1 implements WorldMapSection { signature = "(IIIILjava/lang/String;B)V", garbageValue = "31" ) - static void method605(int var0, int var1, int var2, int var3, String var4) { - Widget var5 = GrandExchangeOfferWorldComparator.getWidgetChild(var1, var2); + @Export("widgetDefaultMenuAction") + static void widgetDefaultMenuAction(int opIndex, int parent, int childIdx, int itemID, String target) { + Widget var5 = GrandExchangeOfferWorldComparator.getWidgetChild(parent, childIdx); if (var5 != null) { if (var5.onOp != null) { ScriptEvent var6 = new ScriptEvent(); var6.widget = var5; - var6.opIndex = var0; - var6.targetName = var4; + var6.opIndex = opIndex; + var6.targetName = target; var6.args = var5.onOp; ParamDefinition.runScriptEvent(var6); } @@ -274,87 +275,87 @@ public class WorldMapSection1 implements WorldMapSection { if (var11) { int var8 = class2.getWidgetClickMask(var5); - int var9 = var0 - 1; + int var9 = opIndex - 1; boolean var7 = (var8 >> var9 + 1 & 1) != 0; if (var7) { PacketBufferNode var10; - if (var0 == 1) { + if (opIndex == 1) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2244, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 2) { + if (opIndex == 2) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2249, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 3) { + if (opIndex == 3) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2257, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 4) { + if (opIndex == 4) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2194, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 5) { + if (opIndex == 5) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2204, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 6) { + if (opIndex == 6) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2200, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 7) { + if (opIndex == 7) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2251, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 8) { + if (opIndex == 8) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2203, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 9) { + if (opIndex == 9) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2213, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); } - if (var0 == 10) { + if (opIndex == 10) { var10 = InterfaceParent.getPacketBufferNode(ClientPacket.field2285, Client.packetWriter.isaacCipher); - var10.packetBuffer.writeInt(var1); - var10.packetBuffer.writeShort(var2); - var10.packetBuffer.writeShort(var3); + var10.packetBuffer.writeInt(parent); + var10.packetBuffer.writeShort(childIdx); + var10.packetBuffer.writeShort(itemID); Client.packetWriter.addNode(var10); }