Files
runelite/runescape-client/src/main/java/Widget.java
2019-07-23 23:49:22 +02:00

2058 lines
52 KiB
Java

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;
}
}
}