import net.runelite.mapping.Export; import net.runelite.mapping.Implements; import net.runelite.mapping.ObfuscatedGetter; import net.runelite.mapping.ObfuscatedName; import net.runelite.mapping.ObfuscatedSignature; @ObfuscatedName("hj") @Implements("Widget") public class Widget extends Node { @ObfuscatedName("b") @ObfuscatedSignature( signature = "[[Lhj;" ) @Export("Widget_interfaceComponents") public static Widget[][] Widget_interfaceComponents; @ObfuscatedName("c") @ObfuscatedSignature( signature = "Lhp;" ) @Export("Widget_archive") public static AbstractArchive Widget_archive; @ObfuscatedName("x") @ObfuscatedSignature( signature = "Lel;" ) @Export("Widget_cachedSprites") static EvictingDualNodeHashTable Widget_cachedSprites; @ObfuscatedName("r") @ObfuscatedSignature( signature = "Lel;" ) @Export("Widget_cachedModels") static EvictingDualNodeHashTable Widget_cachedModels; @ObfuscatedName("v") @ObfuscatedSignature( signature = "Lel;" ) @Export("Widget_cachedFonts") static EvictingDualNodeHashTable Widget_cachedFonts; @ObfuscatedName("y") @ObfuscatedSignature( signature = "Lel;" ) @Export("Widget_cachedSpriteMasks") static EvictingDualNodeHashTable Widget_cachedSpriteMasks; @ObfuscatedName("g") public static boolean field2562; @ObfuscatedName("a") @Export("isIf3") public boolean isIf3; @ObfuscatedName("j") @ObfuscatedGetter( intValue = 158584387 ) @Export("id") public int id; @ObfuscatedName("t") @ObfuscatedGetter( intValue = 1544000877 ) @Export("childIndex") public int childIndex; @ObfuscatedName("h") @ObfuscatedGetter( intValue = -864720251 ) @Export("type") public int type; @ObfuscatedName("o") @ObfuscatedGetter( intValue = -880099821 ) @Export("buttonType") public int buttonType; @ObfuscatedName("n") @ObfuscatedGetter( intValue = 1944932789 ) @Export("contentType") public int contentType; @ObfuscatedName("d") @ObfuscatedGetter( intValue = 987746495 ) @Export("xAlignment") public int xAlignment; @ObfuscatedName("s") @ObfuscatedGetter( intValue = 717061483 ) @Export("yAlignment") public int yAlignment; @ObfuscatedName("z") @ObfuscatedGetter( intValue = 997023099 ) @Export("widthAlignment") public int widthAlignment; @ObfuscatedName("al") @ObfuscatedGetter( intValue = -498004417 ) @Export("heightAlignment") public int heightAlignment; @ObfuscatedName("av") @ObfuscatedGetter( intValue = -1285685435 ) @Export("rawX") public int rawX; @ObfuscatedName("as") @ObfuscatedGetter( intValue = 601625019 ) @Export("rawY") public int rawY; @ObfuscatedName("aw") @ObfuscatedGetter( intValue = 1455891423 ) @Export("rawWidth") public int rawWidth; @ObfuscatedName("ad") @ObfuscatedGetter( intValue = -1245544493 ) @Export("rawHeight") public int rawHeight; @ObfuscatedName("ag") @ObfuscatedGetter( intValue = 468921479 ) @Export("x") public int x; @ObfuscatedName("ar") @ObfuscatedGetter( intValue = -1717840937 ) @Export("y") public int y; @ObfuscatedName("ax") @ObfuscatedGetter( intValue = -207604811 ) @Export("width") public int width; @ObfuscatedName("az") @ObfuscatedGetter( intValue = 652469727 ) @Export("height") public int height; @ObfuscatedName("ae") @ObfuscatedGetter( intValue = -1037362729 ) public int field2636; @ObfuscatedName("ao") @ObfuscatedGetter( intValue = 282635247 ) public int field2582; @ObfuscatedName("aj") @ObfuscatedGetter( intValue = -1620194855 ) @Export("parentId") public int parentId; @ObfuscatedName("at") @Export("isHidden") public boolean isHidden; @ObfuscatedName("ac") @ObfuscatedGetter( intValue = -481429601 ) @Export("scrollX") public int scrollX; @ObfuscatedName("ap") @ObfuscatedGetter( intValue = 910134597 ) @Export("scrollY") public int scrollY; @ObfuscatedName("aq") @ObfuscatedGetter( intValue = 1233349313 ) @Export("scrollWidth") public int scrollWidth; @ObfuscatedName("aa") @ObfuscatedGetter( intValue = -794847893 ) @Export("scrollHeight") public int scrollHeight; @ObfuscatedName("an") @ObfuscatedGetter( intValue = 900294255 ) @Export("color") public int color; @ObfuscatedName("au") @ObfuscatedGetter( intValue = 105989459 ) @Export("color2") public int color2; @ObfuscatedName("ai") @ObfuscatedGetter( intValue = 1301053947 ) @Export("mouseOverColor") public int mouseOverColor; @ObfuscatedName("ak") @ObfuscatedGetter( intValue = -345653957 ) @Export("mouseOverColor2") public int mouseOverColor2; @ObfuscatedName("ah") @Export("fill") public boolean fill; @ObfuscatedName("am") @ObfuscatedSignature( signature = "Lll;" ) @Export("fillMode") public FillMode fillMode; @ObfuscatedName("ay") @ObfuscatedGetter( intValue = -1372029575 ) @Export("transparencyTop") public int transparencyTop; @ObfuscatedName("af") @ObfuscatedGetter( intValue = -575464839 ) @Export("transparencyBot") public int transparencyBot; @ObfuscatedName("ab") @ObfuscatedGetter( intValue = -319407573 ) @Export("lineWid") public int lineWid; @ObfuscatedName("bp") public boolean field2598; @ObfuscatedName("bz") @ObfuscatedGetter( intValue = -876595051 ) @Export("spriteId2") public int spriteId2; @ObfuscatedName("bi") @ObfuscatedGetter( intValue = 1580941445 ) @Export("spriteId") public int spriteId; @ObfuscatedName("bg") @ObfuscatedGetter( intValue = 683998235 ) @Export("spriteAngle") public int spriteAngle; @ObfuscatedName("bh") @Export("spriteTiling") public boolean spriteTiling; @ObfuscatedName("bm") @ObfuscatedGetter( intValue = -321597231 ) @Export("outline") public int outline; @ObfuscatedName("bn") @ObfuscatedGetter( intValue = 75735867 ) @Export("spriteShadow") public int spriteShadow; @ObfuscatedName("bc") @Export("spriteFlipV") public boolean spriteFlipV; @ObfuscatedName("bx") @Export("spriteFlipH") public boolean spriteFlipH; @ObfuscatedName("bo") @ObfuscatedGetter( intValue = 846816051 ) @Export("modelType") public int modelType; @ObfuscatedName("bb") @ObfuscatedGetter( intValue = 1563127453 ) @Export("modelId") public int modelId; @ObfuscatedName("bs") @ObfuscatedGetter( intValue = -283106593 ) @Export("modelType2") int modelType2; @ObfuscatedName("bj") @ObfuscatedGetter( intValue = -1633810101 ) @Export("modelId2") int modelId2; @ObfuscatedName("bl") @ObfuscatedGetter( intValue = -234048173 ) @Export("sequenceId") public int sequenceId; @ObfuscatedName("bd") @ObfuscatedGetter( intValue = -141585849 ) @Export("sequenceId2") public int sequenceId2; @ObfuscatedName("by") @ObfuscatedGetter( intValue = 1696056233 ) @Export("modelOffsetX") public int modelOffsetX; @ObfuscatedName("bt") @ObfuscatedGetter( intValue = 908250059 ) @Export("modelOffsetY") public int modelOffsetY; @ObfuscatedName("bq") @ObfuscatedGetter( intValue = 1607699645 ) @Export("modelAngleX") public int modelAngleX; @ObfuscatedName("bu") @ObfuscatedGetter( intValue = 696166099 ) @Export("modelAngleY") public int modelAngleY; @ObfuscatedName("bw") @ObfuscatedGetter( intValue = -2033298185 ) @Export("modelAngleZ") public int modelAngleZ; @ObfuscatedName("br") @ObfuscatedGetter( intValue = -321826555 ) @Export("modelZoom") public int modelZoom; @ObfuscatedName("bk") @ObfuscatedGetter( intValue = 1070193225 ) public int field2619; @ObfuscatedName("bf") @ObfuscatedGetter( intValue = -1940340785 ) public int field2575; @ObfuscatedName("bv") @Export("modelOrthog") public boolean modelOrthog; @ObfuscatedName("be") @Export("modelTransparency") public boolean modelTransparency; @ObfuscatedName("ba") @ObfuscatedGetter( intValue = -2132117517 ) @Export("itemQuantityMode") public int itemQuantityMode; @ObfuscatedName("cr") @ObfuscatedGetter( intValue = 1233826431 ) @Export("fontId") public int fontId; @ObfuscatedName("cf") @Export("text") public String text; @ObfuscatedName("cj") @Export("text2") public String text2; @ObfuscatedName("cl") @ObfuscatedGetter( intValue = 1697523401 ) @Export("textLineHeight") public int textLineHeight; @ObfuscatedName("cn") @ObfuscatedGetter( intValue = -1511938645 ) @Export("textXAlignment") public int textXAlignment; @ObfuscatedName("cy") @ObfuscatedGetter( intValue = 1416587481 ) @Export("textYAlignment") public int textYAlignment; @ObfuscatedName("ct") @Export("textShadowed") public boolean textShadowed; @ObfuscatedName("cq") @ObfuscatedGetter( intValue = 1258193639 ) @Export("paddingX") public int paddingX; @ObfuscatedName("cp") @ObfuscatedGetter( intValue = -722730749 ) @Export("paddingY") public int paddingY; @ObfuscatedName("ch") @Export("inventoryXOffsets") public int[] inventoryXOffsets; @ObfuscatedName("co") @Export("inventoryYOffsets") public int[] inventoryYOffsets; @ObfuscatedName("cw") @Export("inventorySprites") public int[] inventorySprites; @ObfuscatedName("ca") @Export("itemActions") public String[] itemActions; @ObfuscatedName("cb") @ObfuscatedGetter( intValue = 1890187799 ) @Export("clickMask") public int clickMask; @ObfuscatedName("cx") public boolean field2704; @ObfuscatedName("cu") public byte[][] field2650; @ObfuscatedName("cs") public byte[][] field2625; @ObfuscatedName("cz") public int[] field2641; @ObfuscatedName("cm") public int[] field2588; @ObfuscatedName("dr") @Export("dataText") public String dataText; @ObfuscatedName("dn") @Export("actions") public String[] actions; @ObfuscatedName("dw") @ObfuscatedSignature( signature = "Lhj;" ) @Export("parent") public Widget parent; @ObfuscatedName("dg") @ObfuscatedGetter( intValue = 377025817 ) @Export("dragZoneSize") public int dragZoneSize; @ObfuscatedName("df") @ObfuscatedGetter( intValue = -600496525 ) @Export("dragThreshold") public int dragThreshold; @ObfuscatedName("dt") @Export("isScrollBar") public boolean isScrollBar; @ObfuscatedName("dj") @Export("spellActionName") public String spellActionName; @ObfuscatedName("dl") @Export("hasListener") public boolean hasListener; @ObfuscatedName("dz") @Export("onLoad") public Object[] onLoad; @ObfuscatedName("dh") @Export("onClick") public Object[] onClick; @ObfuscatedName("dy") @Export("onClickRepeat") public Object[] onClickRepeat; @ObfuscatedName("dx") @Export("onRelease") public Object[] onRelease; @ObfuscatedName("dp") @Export("onHold") public Object[] onHold; @ObfuscatedName("de") @Export("onMouseOver") public Object[] onMouseOver; @ObfuscatedName("du") @Export("onMouseRepeat") public Object[] onMouseRepeat; @ObfuscatedName("do") @Export("onMouseLeave") public Object[] onMouseLeave; @ObfuscatedName("dc") @Export("onDrag") public Object[] onDrag; @ObfuscatedName("ds") @Export("onDragComplete") public Object[] onDragComplete; @ObfuscatedName("dk") @Export("onTargetEnter") public Object[] onTargetEnter; @ObfuscatedName("dq") @Export("onTargetLeave") public Object[] onTargetLeave; @ObfuscatedName("db") @Export("onVarTransmit") public Object[] onVarTransmit; @ObfuscatedName("da") @Export("varTransmitTriggers") public int[] varTransmitTriggers; @ObfuscatedName("dv") @Export("onInvTransmit") public Object[] onInvTransmit; @ObfuscatedName("dm") @Export("invTransmitTriggers") public int[] invTransmitTriggers; @ObfuscatedName("di") @Export("onStatTransmit") public Object[] onStatTransmit; @ObfuscatedName("dd") @Export("statTransmitTriggers") public int[] statTransmitTriggers; @ObfuscatedName("ev") @Export("onTimer") public Object[] onTimer; @ObfuscatedName("et") @Export("onOp") public Object[] onOp; @ObfuscatedName("ej") @Export("onScroll") public Object[] onScroll; @ObfuscatedName("er") @Export("onChatTransmit") public Object[] onChatTransmit; @ObfuscatedName("eu") @Export("onKey") public Object[] onKey; @ObfuscatedName("eo") @Export("onFriendTransmit") public Object[] onFriendTransmit; @ObfuscatedName("em") @Export("onClanTransmit") public Object[] onClanTransmit; @ObfuscatedName("en") @Export("onMiscTransmit") public Object[] onMiscTransmit; @ObfuscatedName("ek") @Export("onDialogAbort") public Object[] onDialogAbort; @ObfuscatedName("ef") @Export("onSubChange") public Object[] onSubChange; @ObfuscatedName("eg") @Export("onResize") public Object[] onResize; @ObfuscatedName("ei") @Export("onStockTransmit") public Object[] onStockTransmit; @ObfuscatedName("es") public Object[] field2681; @ObfuscatedName("ez") @Export("cs1Instructions") public int[][] cs1Instructions; @ObfuscatedName("ex") @Export("cs1Comparisons") public int[] cs1Comparisons; @ObfuscatedName("el") @Export("cs1ComparisonValues") public int[] cs1ComparisonValues; @ObfuscatedName("ep") @ObfuscatedGetter( intValue = -1660027401 ) @Export("mouseOverRedirect") public int mouseOverRedirect; @ObfuscatedName("eq") @Export("spellName") public String spellName; @ObfuscatedName("ew") @Export("buttonText") public String buttonText; @ObfuscatedName("ed") @Export("itemIds") public int[] itemIds; @ObfuscatedName("ee") @Export("itemQuantities") public int[] itemQuantities; @ObfuscatedName("ea") @ObfuscatedGetter( intValue = -1747969251 ) @Export("itemId") public int itemId; @ObfuscatedName("eh") @ObfuscatedGetter( intValue = 123297545 ) @Export("itemQuantity") public int itemQuantity; @ObfuscatedName("ey") @ObfuscatedGetter( intValue = -496948185 ) @Export("modelFrame") public int modelFrame; @ObfuscatedName("ec") @ObfuscatedGetter( intValue = -471723099 ) @Export("modelFrameCycle") public int modelFrameCycle; @ObfuscatedName("eb") @ObfuscatedSignature( signature = "[Lhj;" ) @Export("children") public Widget[] children; @ObfuscatedName("fi") public boolean field2642; @ObfuscatedName("fk") public boolean field2589; @ObfuscatedName("fg") @ObfuscatedGetter( intValue = -1473790409 ) public int field2689; @ObfuscatedName("fz") @ObfuscatedGetter( intValue = 938926237 ) public int field2592; @ObfuscatedName("fn") @ObfuscatedGetter( intValue = 1322548605 ) public int field2603; @ObfuscatedName("fr") @ObfuscatedGetter( intValue = -1647708895 ) public int field2700; @ObfuscatedName("fm") @ObfuscatedGetter( intValue = 437901973 ) @Export("rootIndex") public int rootIndex; @ObfuscatedName("ft") @ObfuscatedGetter( intValue = -1179996371 ) @Export("cycle") public int cycle; @ObfuscatedName("fe") public int[] field2578; @ObfuscatedName("fa") @Export("noClickThrough") public boolean noClickThrough; @ObfuscatedName("fs") @Export("noScrollThrough") public boolean noScrollThrough; @ObfuscatedName("ff") public boolean field2691; static { Widget_cachedSprites = new EvictingDualNodeHashTable(200); Widget_cachedModels = new EvictingDualNodeHashTable(50); Widget_cachedFonts = new EvictingDualNodeHashTable(20); Widget_cachedSpriteMasks = new EvictingDualNodeHashTable(8); field2562 = false; } public Widget() { this.isIf3 = false; this.id = -1; this.childIndex = -1; this.buttonType = 0; this.contentType = 0; this.xAlignment = 0; this.yAlignment = 0; this.widthAlignment = 0; this.heightAlignment = 0; this.rawX = 0; this.rawY = 0; this.rawWidth = 0; this.rawHeight = 0; this.x = 0; this.y = 0; this.width = 0; this.height = 0; this.field2636 = 1; this.field2582 = 1; this.parentId = -1; this.isHidden = false; this.scrollX = 0; this.scrollY = 0; this.scrollWidth = 0; this.scrollHeight = 0; this.color = 0; this.color2 = 0; this.mouseOverColor = 0; this.mouseOverColor2 = 0; this.fill = false; this.fillMode = FillMode.SOLID; this.transparencyTop = 0; this.transparencyBot = 0; this.lineWid = 1; this.field2598 = false; this.spriteId2 = -1; this.spriteId = -1; this.spriteAngle = 0; this.spriteTiling = false; this.outline = 0; this.spriteShadow = 0; this.modelType = 1; this.modelId = -1; this.modelType2 = 1; this.modelId2 = -1; this.sequenceId = -1; this.sequenceId2 = -1; this.modelOffsetX = 0; this.modelOffsetY = 0; this.modelAngleX = 0; this.modelAngleY = 0; this.modelAngleZ = 0; this.modelZoom = 100; this.field2619 = 0; this.field2575 = 0; this.modelOrthog = false; this.modelTransparency = false; this.itemQuantityMode = 2; this.fontId = -1; this.text = ""; this.text2 = ""; this.textLineHeight = 0; this.textXAlignment = 0; this.textYAlignment = 0; this.textShadowed = false; this.paddingX = 0; this.paddingY = 0; this.clickMask = 0; this.field2704 = false; this.dataText = ""; this.parent = null; this.dragZoneSize = 0; this.dragThreshold = 0; this.isScrollBar = false; this.spellActionName = ""; this.hasListener = false; this.mouseOverRedirect = -1; this.spellName = ""; this.buttonText = "Ok"; this.itemId = -1; this.itemQuantity = 0; this.modelFrame = 0; this.modelFrameCycle = 0; this.field2642 = false; this.field2589 = false; this.field2689 = -1; this.field2592 = 0; this.field2603 = 0; this.field2700 = 0; this.rootIndex = -1; this.cycle = -1; this.noClickThrough = false; this.noScrollThrough = false; this.field2691 = false; } @ObfuscatedName("k") @ObfuscatedSignature( signature = "(Lkf;B)V", garbageValue = "9" ) @Export("decodeLegacy") void decodeLegacy(Buffer var1) { this.isIf3 = false; this.type = var1.readUnsignedByte(); this.buttonType = var1.readUnsignedByte(); this.contentType = var1.readUnsignedShort(); this.rawX = var1.readShort(); this.rawY = var1.readShort(); this.rawWidth = var1.readUnsignedShort(); this.rawHeight = var1.readUnsignedShort(); this.transparencyTop = var1.readUnsignedByte(); this.parentId = var1.readUnsignedShort(); if (this.parentId == 65535) { this.parentId = -1; } else { this.parentId += this.id & -65536; } this.mouseOverRedirect = var1.readUnsignedShort(); if (this.mouseOverRedirect == 65535) { this.mouseOverRedirect = -1; } int var2 = var1.readUnsignedByte(); int var3; if (var2 > 0) { this.cs1Comparisons = new int[var2]; this.cs1ComparisonValues = new int[var2]; for (var3 = 0; var3 < var2; ++var3) { this.cs1Comparisons[var3] = var1.readUnsignedByte(); this.cs1ComparisonValues[var3] = var1.readUnsignedShort(); } } var3 = var1.readUnsignedByte(); int var4; int var5; int var6; if (var3 > 0) { this.cs1Instructions = new int[var3][]; for (var4 = 0; var4 < var3; ++var4) { var5 = var1.readUnsignedShort(); this.cs1Instructions[var4] = new int[var5]; for (var6 = 0; var6 < var5; ++var6) { this.cs1Instructions[var4][var6] = var1.readUnsignedShort(); if (this.cs1Instructions[var4][var6] == 65535) { this.cs1Instructions[var4][var6] = -1; } } } } if (this.type == 0) { this.scrollHeight = var1.readUnsignedShort(); this.isHidden = var1.readUnsignedByte() == 1; } if (this.type == 1) { var1.readUnsignedShort(); var1.readUnsignedByte(); } if (this.type == 2) { this.itemIds = new int[this.rawHeight * this.rawWidth]; this.itemQuantities = new int[this.rawHeight * this.rawWidth]; var4 = var1.readUnsignedByte(); if (var4 == 1) { this.clickMask |= 268435456; } var5 = var1.readUnsignedByte(); if (var5 == 1) { this.clickMask |= 1073741824; } var6 = var1.readUnsignedByte(); if (var6 == 1) { this.clickMask |= Integer.MIN_VALUE; } int var7 = var1.readUnsignedByte(); if (var7 == 1) { this.clickMask |= 536870912; } this.paddingX = var1.readUnsignedByte(); this.paddingY = var1.readUnsignedByte(); this.inventoryXOffsets = new int[20]; this.inventoryYOffsets = new int[20]; this.inventorySprites = new int[20]; int var8; for (var8 = 0; var8 < 20; ++var8) { int var9 = var1.readUnsignedByte(); if (var9 == 1) { this.inventoryXOffsets[var8] = var1.readShort(); this.inventoryYOffsets[var8] = var1.readShort(); this.inventorySprites[var8] = var1.readInt(); } else { this.inventorySprites[var8] = -1; } } this.itemActions = new String[5]; for (var8 = 0; var8 < 5; ++var8) { String var11 = var1.readStringCp1252NullTerminated(); if (var11.length() > 0) { this.itemActions[var8] = var11; this.clickMask |= 1 << var8 + 23; } } } if (this.type == 3) { this.fill = var1.readUnsignedByte() == 1; } if (this.type == 4 || this.type == 1) { this.textXAlignment = var1.readUnsignedByte(); this.textYAlignment = var1.readUnsignedByte(); this.textLineHeight = var1.readUnsignedByte(); this.fontId = var1.readUnsignedShort(); if (this.fontId == 65535) { this.fontId = -1; } this.textShadowed = var1.readUnsignedByte() == 1; } if (this.type == 4) { this.text = var1.readStringCp1252NullTerminated(); this.text2 = var1.readStringCp1252NullTerminated(); } if (this.type == 1 || this.type == 3 || this.type == 4) { this.color = var1.readInt(); } if (this.type == 3 || this.type == 4) { this.color2 = var1.readInt(); this.mouseOverColor = var1.readInt(); this.mouseOverColor2 = var1.readInt(); } if (this.type == 5) { this.spriteId2 = var1.readInt(); this.spriteId = var1.readInt(); } if (this.type == 6) { this.modelType = 1; this.modelId = var1.readUnsignedShort(); if (this.modelId == 65535) { this.modelId = -1; } this.modelType2 = 1; this.modelId2 = var1.readUnsignedShort(); if (this.modelId2 == 65535) { this.modelId2 = -1; } this.sequenceId = var1.readUnsignedShort(); if (this.sequenceId == 65535) { this.sequenceId = -1; } this.sequenceId2 = var1.readUnsignedShort(); if (this.sequenceId2 == 65535) { this.sequenceId2 = -1; } this.modelZoom = var1.readUnsignedShort(); this.modelAngleX = var1.readUnsignedShort(); this.modelAngleY = var1.readUnsignedShort(); } if (this.type == 7) { this.itemIds = new int[this.rawWidth * this.rawHeight]; this.itemQuantities = new int[this.rawHeight * this.rawWidth]; this.textXAlignment = var1.readUnsignedByte(); this.fontId = var1.readUnsignedShort(); if (this.fontId == 65535) { this.fontId = -1; } this.textShadowed = var1.readUnsignedByte() == 1; this.color = var1.readInt(); this.paddingX = var1.readShort(); this.paddingY = var1.readShort(); var4 = var1.readUnsignedByte(); if (var4 == 1) { this.clickMask |= 1073741824; } this.itemActions = new String[5]; for (var5 = 0; var5 < 5; ++var5) { String var10 = var1.readStringCp1252NullTerminated(); if (var10.length() > 0) { this.itemActions[var5] = var10; this.clickMask |= 1 << var5 + 23; } } } if (this.type == 8) { this.text = var1.readStringCp1252NullTerminated(); } if (this.buttonType == 2 || this.type == 2) { this.spellActionName = var1.readStringCp1252NullTerminated(); this.spellName = var1.readStringCp1252NullTerminated(); var4 = var1.readUnsignedShort() & 63; this.clickMask |= var4 << 11; } if (this.buttonType == 1 || this.buttonType == 4 || this.buttonType == 5 || this.buttonType == 6) { this.buttonText = var1.readStringCp1252NullTerminated(); if (this.buttonText.length() == 0) { if (this.buttonType == 1) { this.buttonText = "Ok"; } if (this.buttonType == 4) { this.buttonText = "Select"; } if (this.buttonType == 5) { this.buttonText = "Select"; } if (this.buttonType == 6) { this.buttonText = "Continue"; } } } if (this.buttonType == 1 || this.buttonType == 4 || this.buttonType == 5) { this.clickMask |= 4194304; } if (this.buttonType == 6) { this.clickMask |= 1; } } @ObfuscatedName("l") @ObfuscatedSignature( signature = "(Lkf;B)V", garbageValue = "30" ) @Export("decode") void decode(Buffer var1) { var1.readUnsignedByte(); this.isIf3 = true; this.type = var1.readUnsignedByte(); this.contentType = var1.readUnsignedShort(); this.rawX = var1.readShort(); this.rawY = var1.readShort(); this.rawWidth = var1.readUnsignedShort(); if (this.type == 9) { this.rawHeight = var1.readShort(); } else { this.rawHeight = var1.readUnsignedShort(); } this.widthAlignment = var1.readByte(); this.heightAlignment = var1.readByte(); this.xAlignment = var1.readByte(); this.yAlignment = var1.readByte(); this.parentId = var1.readUnsignedShort(); if (this.parentId == 65535) { this.parentId = -1; } else { this.parentId += this.id & -65536; } this.isHidden = var1.readUnsignedByte() == 1; if (this.type == 0) { this.scrollWidth = var1.readUnsignedShort(); this.scrollHeight = var1.readUnsignedShort(); this.noClickThrough = var1.readUnsignedByte() == 1; } if (this.type == 5) { this.spriteId2 = var1.readInt(); this.spriteAngle = var1.readUnsignedShort(); this.spriteTiling = var1.readUnsignedByte() == 1; this.transparencyTop = var1.readUnsignedByte(); this.outline = var1.readUnsignedByte(); this.spriteShadow = var1.readInt(); this.spriteFlipV = var1.readUnsignedByte() == 1; this.spriteFlipH = var1.readUnsignedByte() == 1; } if (this.type == 6) { this.modelType = 1; this.modelId = var1.readUnsignedShort(); if (this.modelId == 65535) { this.modelId = -1; } this.modelOffsetX = var1.readShort(); this.modelOffsetY = var1.readShort(); this.modelAngleX = var1.readUnsignedShort(); this.modelAngleY = var1.readUnsignedShort(); this.modelAngleZ = var1.readUnsignedShort(); this.modelZoom = var1.readUnsignedShort(); this.sequenceId = var1.readUnsignedShort(); if (this.sequenceId == 65535) { this.sequenceId = -1; } this.modelOrthog = var1.readUnsignedByte() == 1; var1.readUnsignedShort(); if (this.widthAlignment != 0) { this.field2619 = var1.readUnsignedShort(); } if (this.heightAlignment != 0) { var1.readUnsignedShort(); } } if (this.type == 4) { this.fontId = var1.readUnsignedShort(); if (this.fontId == 65535) { this.fontId = -1; } this.text = var1.readStringCp1252NullTerminated(); this.textLineHeight = var1.readUnsignedByte(); this.textXAlignment = var1.readUnsignedByte(); this.textYAlignment = var1.readUnsignedByte(); this.textShadowed = var1.readUnsignedByte() == 1; this.color = var1.readInt(); } if (this.type == 3) { this.color = var1.readInt(); this.fill = var1.readUnsignedByte() == 1; this.transparencyTop = var1.readUnsignedByte(); } if (this.type == 9) { this.lineWid = var1.readUnsignedByte(); this.color = var1.readInt(); this.field2598 = var1.readUnsignedByte() == 1; } this.clickMask = var1.readMedium(); this.dataText = var1.readStringCp1252NullTerminated(); int var2 = var1.readUnsignedByte(); if (var2 > 0) { this.actions = new String[var2]; for (int var3 = 0; var3 < var2; ++var3) { this.actions[var3] = var1.readStringCp1252NullTerminated(); } } this.dragZoneSize = var1.readUnsignedByte(); this.dragThreshold = var1.readUnsignedByte(); this.isScrollBar = var1.readUnsignedByte() == 1; this.spellActionName = var1.readStringCp1252NullTerminated(); this.onLoad = this.readListener(var1); this.onMouseOver = this.readListener(var1); this.onMouseLeave = this.readListener(var1); this.onTargetLeave = this.readListener(var1); this.onTargetEnter = this.readListener(var1); this.onVarTransmit = this.readListener(var1); this.onInvTransmit = this.readListener(var1); this.onStatTransmit = this.readListener(var1); this.onTimer = this.readListener(var1); this.onOp = this.readListener(var1); this.onMouseRepeat = this.readListener(var1); this.onClick = this.readListener(var1); this.onClickRepeat = this.readListener(var1); this.onRelease = this.readListener(var1); this.onHold = this.readListener(var1); this.onDrag = this.readListener(var1); this.onDragComplete = this.readListener(var1); this.onScroll = this.readListener(var1); this.varTransmitTriggers = this.readListenerTriggers(var1); this.invTransmitTriggers = this.readListenerTriggers(var1); this.statTransmitTriggers = this.readListenerTriggers(var1); } @ObfuscatedName("b") @ObfuscatedSignature( signature = "(Lkf;B)[Ljava/lang/Object;", garbageValue = "-58" ) @Export("readListener") Object[] readListener(Buffer var1) { int var2 = var1.readUnsignedByte(); if (var2 == 0) { return null; } Object[] var3 = new Object[var2]; for (int var4 = 0; var4 < var2; ++var4) { int var5 = var1.readUnsignedByte(); if (var5 == 0) { var3[var4] = new Integer(var1.readInt()); } else if (var5 == 1) { var3[var4] = var1.readStringCp1252NullTerminated(); } } this.hasListener = true; return var3; } @ObfuscatedName("i") @ObfuscatedSignature( signature = "(Lkf;B)[I", garbageValue = "104" ) @Export("readListenerTriggers") int[] readListenerTriggers(Buffer var1) { int var2 = var1.readUnsignedByte(); if (var2 == 0) { return null; } int[] var3 = new int[var2]; for (int var4 = 0; var4 < var2; ++var4) { var3[var4] = var1.readInt(); } return var3; } @ObfuscatedName("c") @ObfuscatedSignature( signature = "(III)V", garbageValue = "2142727340" ) @Export("swapItems") public void swapItems(int var1, int var2) { int var3 = this.itemIds[var2]; this.itemIds[var2] = this.itemIds[var1]; this.itemIds[var1] = var3; var3 = this.itemQuantities[var2]; this.itemQuantities[var2] = this.itemQuantities[var1]; this.itemQuantities[var1] = var3; } @ObfuscatedName("u") @ObfuscatedSignature( signature = "(ZI)Lly;", garbageValue = "1738149818" ) @Export("getSprite") public Sprite getSprite(boolean var1) { field2562 = false; int var2; if (var1) { var2 = this.spriteId; } else { var2 = this.spriteId2; } if (var2 == -1) { return null; } long var3 = ((this.spriteFlipV ? 1L : 0L) << 38) + ((long)this.outline << 36) + (long)var2 + ((this.spriteFlipH ? 1L : 0L) << 39) + ((long)this.spriteShadow << 40); Sprite var5 = (Sprite)Widget_cachedSprites.get(var3); if (var5 != null) { return var5; } var5 = class65.SpriteBuffer_getSprite(class216.Widget_spritesArchive, var2, 0); if (var5 == null) { field2562 = true; return null; } if (this.spriteFlipV) { var5.method6128(); } if (this.spriteFlipH) { var5.method6117(); } if (this.outline > 0) { var5.method6115(this.outline); } if (this.outline >= 1) { var5.outline(1); } if (this.outline >= 2) { var5.outline(16777215); } if (this.spriteShadow != 0) { var5.shadow(this.spriteShadow); } Widget_cachedSprites.put(var5, var3); return var5; } @ObfuscatedName("x") @ObfuscatedSignature( signature = "(I)Lke;", garbageValue = "-121271997" ) @Export("getFont") public Font getFont() { field2562 = false; if (this.fontId == -1) { return null; } Font var1 = (Font)Widget_cachedFonts.get((long)this.fontId); if (var1 != null) { return var1; } var1 = GameObject.SpriteBuffer_getFont(class216.Widget_spritesArchive, DirectByteArrayCopier.Widget_fontsArchive, this.fontId, 0); if (var1 != null) { Widget_cachedFonts.put(var1, (long)this.fontId); } else { field2562 = true; } return var1; } @ObfuscatedName("r") @ObfuscatedSignature( signature = "(II)Lly;", garbageValue = "-1022923411" ) @Export("getInventorySprite") public Sprite getInventorySprite(int var1) { field2562 = false; if (var1 >= 0 && var1 < this.inventorySprites.length) { int var2 = this.inventorySprites[var1]; if (var2 == -1) { return null; } Sprite var3 = (Sprite)Widget_cachedSprites.get((long)var2); if (var3 != null) { return var3; } var3 = class65.SpriteBuffer_getSprite(class216.Widget_spritesArchive, var2, 0); if (var3 != null) { Widget_cachedSprites.put(var3, (long)var2); } else { field2562 = true; } return var3; } return null; } @ObfuscatedName("v") @ObfuscatedSignature( signature = "(Lis;IZLhh;I)Ldm;", garbageValue = "482898105" ) @Export("getModel") public Model getModel(SequenceDefinition var1, int var2, boolean var3, PlayerAppearance var4) { field2562 = false; int var5; int var6; if (var3) { var5 = this.modelType2; var6 = this.modelId2; } else { var5 = this.modelType; var6 = this.modelId; } if (var5 == 0) { return null; } if (var5 == 1 && var6 == -1) { return null; } Model var7 = (Model)Widget_cachedModels.get((long)(var6 + (var5 << 16))); if (var7 == null) { ModelData var8; if (var5 == 1) { var8 = ModelData.method2769(ViewportMouse.Widget_modelsArchive, var6, 0); if (var8 == null) { field2562 = true; return null; } var7 = var8.toModel(64, 768, -50, -10, -50); } if (var5 == 2) { var8 = GameShell.getNpcDefinition(var6).getModelData(); if (var8 == null) { field2562 = true; return null; } var7 = var8.toModel(64, 768, -50, -10, -50); } if (var5 == 3) { if (var4 == null) { return null; } var8 = var4.getModelData(); if (var8 == null) { field2562 = true; return null; } var7 = var8.toModel(64, 768, -50, -10, -50); } if (var5 == 4) { ItemDefinition var9 = WorldMapArea.getItemDefinition(var6); var8 = var9.method4643(10); if (var8 == null) { field2562 = true; return null; } var7 = var8.toModel(var9.ambient + 64, var9.contrast + 768, -50, -10, -50); } Widget_cachedModels.put(var7, (long)(var6 + (var5 << 16))); } if (var1 != null) { var7 = var1.transformWidgetModel(var7, var2); } return var7; } @ObfuscatedName("y") @ObfuscatedSignature( signature = "(ZB)Lhg;", garbageValue = "0" ) @Export("getSpriteMask") public SpriteMask getSpriteMask(boolean var1) { if (this.spriteId == -1) { var1 = false; } int var2 = var1 ? this.spriteId : this.spriteId2; if (var2 == -1) { return null; } long var3 = ((this.spriteFlipV ? 1L : 0L) << 38) + (long)var2 + ((long)this.outline << 36) + ((this.spriteFlipH ? 1L : 0L) << 39) + ((long)this.spriteShadow << 40); SpriteMask var5 = (SpriteMask)Widget_cachedSpriteMasks.get(var3); if (var5 != null) { return var5; } Sprite var6 = this.getSprite(var1); if (var6 == null) { return null; } Sprite var7 = var6.copyNormalized(); int[] var8 = new int[var7.subHeight]; int[] var9 = new int[var7.subHeight]; for (int var10 = 0; var10 < var7.subHeight; ++var10) { int var11 = 0; int var12 = var7.subWidth; int var13; for (var13 = 0; var13 < var7.subWidth; ++var13) { if (var7.pixels[var13 + var10 * var7.subWidth] == 0) { var11 = var13; break; } } for (var13 = var7.subWidth - 1; var13 >= var11; --var13) { if (var7.pixels[var13 + var10 * var7.subWidth] == 0) { var12 = var13 + 1; break; } } var8[var10] = var11; var9[var10] = var12 - var11; } var5 = new SpriteMask(var7.subWidth, var7.subHeight, var9, var8, var2); Widget_cachedSpriteMasks.put(var5, var3); return var5; } @ObfuscatedName("a") @ObfuscatedSignature( signature = "(ILjava/lang/String;S)V", garbageValue = "-20428" ) @Export("setAction") public void setAction(int var1, String var2) { if (this.actions == null || this.actions.length <= var1) { String[] var3 = new String[var1 + 1]; if (this.actions != null) { for (int var4 = 0; var4 < this.actions.length; ++var4) { var3[var4] = this.actions[var4]; } } this.actions = var3; } this.actions[var1] = var2; } @ObfuscatedName("q") @ObfuscatedSignature( signature = "(IIII)J", garbageValue = "1098126812" ) @Export("getWorldMapSpriteHash") static long getWorldMapSpriteHash(int var0, int var1, int var2) { return (long)(var2 << 16 | var0 << 8 | var1); } @ObfuscatedName("q") @ObfuscatedSignature( signature = "([BIII)Ljava/lang/String;", garbageValue = "1305438411" ) public static String method4092(byte[] var0, int var1, int var2) { StringBuilder var3 = new StringBuilder(); for (int var4 = var1; var4 < var2 + var1; var4 += 3) { int var5 = var0[var4] & 255; var3.append(class290.field3673[var5 >>> 2]); if (var4 < var2 - 1) { int var6 = var0[var4 + 1] & 255; var3.append(class290.field3673[(var5 & 3) << 4 | var6 >>> 4]); if (var4 < var2 - 2) { int var7 = var0[var4 + 2] & 255; var3.append(class290.field3673[(var6 & 15) << 2 | var7 >>> 6]).append(class290.field3673[var7 & 63]); } else { var3.append(class290.field3673[(var6 & 15) << 2]).append("="); } } else { var3.append(class290.field3673[(var5 & 3) << 4]).append("=="); } } return var3.toString(); } @ObfuscatedName("w") @ObfuscatedSignature( signature = "(B)V", garbageValue = "0" ) public static void method4091() { if (MouseHandler.MouseHandler_instance != null) { synchronized(MouseHandler.MouseHandler_instance) { MouseHandler.MouseHandler_instance = null; } } } @ObfuscatedName("hk") @ObfuscatedSignature( signature = "(Lbd;IIBI)V", garbageValue = "310839135" ) static final void method4056(Player var0, int var1, int var2, byte var3) { int var4 = var0.pathX[0]; int var5 = var0.pathY[0]; int var6 = var0.transformedSize(); if (var4 >= var6 && var4 < 104 - var6 && var5 >= var6 && var5 < 104 - var6) { if (var1 >= var6 && var1 < 104 - var6 && var2 >= var6 && var2 < 104 - var6) { int var8 = var0.transformedSize(); RouteStrategy var9 = WorldMapAreaData.method667(var1, var2); CollisionMap var10 = Client.collisionMaps[var0.plane]; int[] var11 = Client.field929; int[] var12 = Client.field930; int var13; int var14; for (var13 = 0; var13 < 128; ++var13) { for (var14 = 0; var14 < 128; ++var14) { class173.directions[var13][var14] = 0; class173.distances[var13][var14] = 99999999; } } int var15; int var16; byte var17; byte var18; int var19; int var20; byte var21; int var22; int[][] var23; int var24; int var25; int var26; int var27; boolean var33; boolean var34; int var35; int var36; int var38; if (var8 == 1) { var15 = var4; var16 = var5; var17 = 64; var18 = 64; var19 = var4 - var17; var20 = var5 - var18; class173.directions[var17][var18] = 99; class173.distances[var17][var18] = 0; var21 = 0; var22 = 0; class173.bufferX[var21] = var4; var38 = var21 + 1; class173.bufferY[var21] = var5; var23 = var10.flags; while (true) { if (var38 == var22) { class173.field2088 = var15; class218.field2707 = var16; var34 = false; break; } var15 = class173.bufferX[var22]; var16 = class173.bufferY[var22]; var22 = var22 + 1 & 4095; var35 = var15 - var19; var36 = var16 - var20; var24 = var15 - var10.xInset; var25 = var16 - var10.yInset; if (var9.vmethod3594(1, var15, var16, var10)) { class173.field2088 = var15; class218.field2707 = var16; var34 = true; break; } var26 = class173.distances[var35][var36] + 1; if (var35 > 0 && class173.directions[var35 - 1][var36] == 0 && (var23[var24 - 1][var25] & 19136776) == 0) { class173.bufferX[var38] = var15 - 1; class173.bufferY[var38] = var16; var38 = var38 + 1 & 4095; class173.directions[var35 - 1][var36] = 2; class173.distances[var35 - 1][var36] = var26; } if (var35 < 127 && class173.directions[var35 + 1][var36] == 0 && (var23[var24 + 1][var25] & 19136896) == 0) { class173.bufferX[var38] = var15 + 1; class173.bufferY[var38] = var16; var38 = var38 + 1 & 4095; class173.directions[var35 + 1][var36] = 8; class173.distances[var35 + 1][var36] = var26; } if (var36 > 0 && class173.directions[var35][var36 - 1] == 0 && (var23[var24][var25 - 1] & 19136770) == 0) { class173.bufferX[var38] = var15; class173.bufferY[var38] = var16 - 1; var38 = var38 + 1 & 4095; class173.directions[var35][var36 - 1] = 1; class173.distances[var35][var36 - 1] = var26; } if (var36 < 127 && class173.directions[var35][var36 + 1] == 0 && (var23[var24][var25 + 1] & 19136800) == 0) { class173.bufferX[var38] = var15; class173.bufferY[var38] = var16 + 1; var38 = var38 + 1 & 4095; class173.directions[var35][var36 + 1] = 4; class173.distances[var35][var36 + 1] = var26; } if (var35 > 0 && var36 > 0 && class173.directions[var35 - 1][var36 - 1] == 0 && (var23[var24 - 1][var25 - 1] & 19136782) == 0 && (var23[var24 - 1][var25] & 19136776) == 0 && (var23[var24][var25 - 1] & 19136770) == 0) { class173.bufferX[var38] = var15 - 1; class173.bufferY[var38] = var16 - 1; var38 = var38 + 1 & 4095; class173.directions[var35 - 1][var36 - 1] = 3; class173.distances[var35 - 1][var36 - 1] = var26; } if (var35 < 127 && var36 > 0 && class173.directions[var35 + 1][var36 - 1] == 0 && (var23[var24 + 1][var25 - 1] & 19136899) == 0 && (var23[var24 + 1][var25] & 19136896) == 0 && (var23[var24][var25 - 1] & 19136770) == 0) { class173.bufferX[var38] = var15 + 1; class173.bufferY[var38] = var16 - 1; var38 = var38 + 1 & 4095; class173.directions[var35 + 1][var36 - 1] = 9; class173.distances[var35 + 1][var36 - 1] = var26; } if (var35 > 0 && var36 < 127 && class173.directions[var35 - 1][var36 + 1] == 0 && (var23[var24 - 1][var25 + 1] & 19136824) == 0 && (var23[var24 - 1][var25] & 19136776) == 0 && (var23[var24][var25 + 1] & 19136800) == 0) { class173.bufferX[var38] = var15 - 1; class173.bufferY[var38] = var16 + 1; var38 = var38 + 1 & 4095; class173.directions[var35 - 1][var36 + 1] = 6; class173.distances[var35 - 1][var36 + 1] = var26; } if (var35 < 127 && var36 < 127 && class173.directions[var35 + 1][var36 + 1] == 0 && (var23[var24 + 1][var25 + 1] & 19136992) == 0 && (var23[var24 + 1][var25] & 19136896) == 0 && (var23[var24][var25 + 1] & 19136800) == 0) { class173.bufferX[var38] = var15 + 1; class173.bufferY[var38] = var16 + 1; var38 = var38 + 1 & 4095; class173.directions[var35 + 1][var36 + 1] = 12; class173.distances[var35 + 1][var36 + 1] = var26; } } var33 = var34; } else if (var8 == 2) { var33 = Frames.method3267(var4, var5, var9, var10); } else { var15 = var4; var16 = var5; var17 = 64; var18 = 64; var19 = var4 - var17; var20 = var5 - var18; class173.directions[var17][var18] = 99; class173.distances[var17][var18] = 0; var21 = 0; var22 = 0; class173.bufferX[var21] = var4; var38 = var21 + 1; class173.bufferY[var21] = var5; var23 = var10.flags; label640: while (true) { label638: while (true) { do { do { do { label615: do { if (var22 == var38) { class173.field2088 = var15; class218.field2707 = var16; var34 = false; break label640; } var15 = class173.bufferX[var22]; var16 = class173.bufferY[var22]; var22 = var22 + 1 & 4095; var35 = var15 - var19; var36 = var16 - var20; var24 = var15 - var10.xInset; var25 = var16 - var10.yInset; if (var9.vmethod3594(var8, var15, var16, var10)) { class173.field2088 = var15; class218.field2707 = var16; var34 = true; break label640; } var26 = class173.distances[var35][var36] + 1; if (var35 > 0 && class173.directions[var35 - 1][var36] == 0 && (var23[var24 - 1][var25] & 19136782) == 0 && (var23[var24 - 1][var8 + var25 - 1] & 19136824) == 0) { var27 = 1; while (true) { if (var27 >= var8 - 1) { class173.bufferX[var38] = var15 - 1; class173.bufferY[var38] = var16; var38 = var38 + 1 & 4095; class173.directions[var35 - 1][var36] = 2; class173.distances[var35 - 1][var36] = var26; break; } if ((var23[var24 - 1][var27 + var25] & 19136830) != 0) { break; } ++var27; } } if (var35 < 128 - var8 && class173.directions[var35 + 1][var36] == 0 && (var23[var24 + var8][var25] & 19136899) == 0 && (var23[var24 + var8][var25 + var8 - 1] & 19136992) == 0) { var27 = 1; while (true) { if (var27 >= var8 - 1) { class173.bufferX[var38] = var15 + 1; class173.bufferY[var38] = var16; var38 = var38 + 1 & 4095; class173.directions[var35 + 1][var36] = 8; class173.distances[var35 + 1][var36] = var26; break; } if ((var23[var8 + var24][var27 + var25] & 19136995) != 0) { break; } ++var27; } } if (var36 > 0 && class173.directions[var35][var36 - 1] == 0 && (var23[var24][var25 - 1] & 19136782) == 0 && (var23[var24 + var8 - 1][var25 - 1] & 19136899) == 0) { var27 = 1; while (true) { if (var27 >= var8 - 1) { class173.bufferX[var38] = var15; class173.bufferY[var38] = var16 - 1; var38 = var38 + 1 & 4095; class173.directions[var35][var36 - 1] = 1; class173.distances[var35][var36 - 1] = var26; break; } if ((var23[var27 + var24][var25 - 1] & 19136911) != 0) { break; } ++var27; } } if (var36 < 128 - var8 && class173.directions[var35][var36 + 1] == 0 && (var23[var24][var8 + var25] & 19136824) == 0 && (var23[var8 + var24 - 1][var8 + var25] & 19136992) == 0) { var27 = 1; while (true) { if (var27 >= var8 - 1) { class173.bufferX[var38] = var15; class173.bufferY[var38] = var16 + 1; var38 = var38 + 1 & 4095; class173.directions[var35][var36 + 1] = 4; class173.distances[var35][var36 + 1] = var26; break; } if ((var23[var27 + var24][var8 + var25] & 19137016) != 0) { break; } ++var27; } } if (var35 > 0 && var36 > 0 && class173.directions[var35 - 1][var36 - 1] == 0 && (var23[var24 - 1][var25 - 1] & 19136782) == 0) { var27 = 1; while (true) { if (var27 >= var8) { class173.bufferX[var38] = var15 - 1; class173.bufferY[var38] = var16 - 1; var38 = var38 + 1 & 4095; class173.directions[var35 - 1][var36 - 1] = 3; class173.distances[var35 - 1][var36 - 1] = var26; break; } if ((var23[var24 - 1][var27 + (var25 - 1)] & 19136830) != 0 || (var23[var27 + (var24 - 1)][var25 - 1] & 19136911) != 0) { break; } ++var27; } } if (var35 < 128 - var8 && var36 > 0 && class173.directions[var35 + 1][var36 - 1] == 0 && (var23[var24 + var8][var25 - 1] & 19136899) == 0) { var27 = 1; while (true) { if (var27 >= var8) { class173.bufferX[var38] = var15 + 1; class173.bufferY[var38] = var16 - 1; var38 = var38 + 1 & 4095; class173.directions[var35 + 1][var36 - 1] = 9; class173.distances[var35 + 1][var36 - 1] = var26; break; } if ((var23[var8 + var24][var27 + (var25 - 1)] & 19136995) != 0 || (var23[var24 + var27][var25 - 1] & 19136911) != 0) { break; } ++var27; } } if (var35 > 0 && var36 < 128 - var8 && class173.directions[var35 - 1][var36 + 1] == 0 && (var23[var24 - 1][var8 + var25] & 19136824) == 0) { for (var27 = 1; var27 < var8; ++var27) { if ((var23[var24 - 1][var25 + var27] & 19136830) != 0 || (var23[var27 + (var24 - 1)][var25 + var8] & 19137016) != 0) { continue label615; } } class173.bufferX[var38] = var15 - 1; class173.bufferY[var38] = var16 + 1; var38 = var38 + 1 & 4095; class173.directions[var35 - 1][var36 + 1] = 6; class173.distances[var35 - 1][var36 + 1] = var26; } } while(var35 >= 128 - var8); } while(var36 >= 128 - var8); } while(class173.directions[var35 + 1][var36 + 1] != 0); } while((var23[var24 + var8][var25 + var8] & 19136992) != 0); for (var27 = 1; var27 < var8; ++var27) { if ((var23[var24 + var27][var8 + var25] & 19137016) != 0 || (var23[var8 + var24][var27 + var25] & 19136995) != 0) { continue label638; } } class173.bufferX[var38] = var15 + 1; class173.bufferY[var38] = var16 + 1; var38 = var38 + 1 & 4095; class173.directions[var35 + 1][var36 + 1] = 12; class173.distances[var35 + 1][var36 + 1] = var26; } } var33 = var34; } int var7; label696: { var14 = var4 - 64; var15 = var5 - 64; var16 = class173.field2088; var35 = class218.field2707; if (!var33) { var36 = Integer.MAX_VALUE; var19 = Integer.MAX_VALUE; byte var37 = 10; var38 = var9.approxDestinationX; var22 = var9.approxDestinationY; int var32 = var9.approxDestinationSizeX; var24 = var9.approxDestinationSizeY; for (var25 = var38 - var37; var25 <= var37 + var38; ++var25) { for (var26 = var22 - var37; var26 <= var37 + var22; ++var26) { var27 = var25 - var14; int var28 = var26 - var15; if (var27 >= 0 && var28 >= 0 && var27 < 128 && var28 < 128 && class173.distances[var27][var28] < 100) { int var29 = 0; if (var25 < var38) { var29 = var38 - var25; } else if (var25 > var38 + var32 - 1) { var29 = var25 - (var32 + var38 - 1); } int var30 = 0; if (var26 < var22) { var30 = var22 - var26; } else if (var26 > var24 + var22 - 1) { var30 = var26 - (var24 + var22 - 1); } int var31 = var29 * var29 + var30 * var30; if (var31 < var36 || var31 == var36 && class173.distances[var27][var28] < var19) { var36 = var31; var19 = class173.distances[var27][var28]; var16 = var25; var35 = var26; } } } } if (var36 == Integer.MAX_VALUE) { var7 = -1; break label696; } } if (var4 == var16 && var5 == var35) { var7 = 0; } else { var18 = 0; class173.bufferX[var18] = var16; var36 = var18 + 1; class173.bufferY[var18] = var35; for (var19 = var20 = class173.directions[var16 - var14][var35 - var15]; var16 != var4 || var5 != var35; var19 = class173.directions[var16 - var14][var35 - var15]) { if (var19 != var20) { var20 = var19; class173.bufferX[var36] = var16; class173.bufferY[var36++] = var35; } if ((var19 & 2) != 0) { ++var16; } else if ((var19 & 8) != 0) { --var16; } if ((var19 & 1) != 0) { ++var35; } else if ((var19 & 4) != 0) { --var35; } } var38 = 0; while (var36-- > 0) { var11[var38] = class173.bufferX[var36]; var12[var38++] = class173.bufferY[var36]; if (var38 >= var11.length) { break; } } var7 = var38; } } var13 = var7; if (var7 >= 1) { for (var14 = 0; var14 < var13 - 1; ++var14) { var0.method1191(Client.field929[var14], Client.field930[var14], var3); } } } } } @ObfuscatedName("kq") @ObfuscatedSignature( signature = "(I)V", garbageValue = "-174761515" ) static void method4090() { if (Client.field736 && Client.localPlayer != null) { int var0 = Client.localPlayer.pathX[0]; int var1 = Client.localPlayer.pathY[0]; if (var0 < 0 || var1 < 0 || var0 >= 104 || var1 >= 104) { return; } MouseHandler.oculusOrbFocalPointX = Client.localPlayer.x; int var2 = ScriptEvent.getTileHeight(Client.localPlayer.x, Client.localPlayer.y, class42.plane) - Client.camFollowHeight; if (var2 < Client.field729) { Client.field729 = var2; } WorldMapArea.oculusOrbFocalPointY = Client.localPlayer.y; Client.field736 = false; } } }