Files
runelite/runescape-client/src/main/java/WorldMapAreaData.java
Lucwousin f6c2b4ac11 rev187
2019-12-16 18:40:02 +01:00

935 lines
30 KiB
Java

import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
import net.runelite.rs.ScriptOpcodes;
@ObfuscatedName("ay")
@Implements("WorldMapAreaData")
public class WorldMapAreaData extends WorldMapArea {
@ObfuscatedName("v")
@Export("worldMapData0Set")
HashSet worldMapData0Set;
@ObfuscatedName("k")
@Export("worldMapData1Set")
HashSet worldMapData1Set;
@ObfuscatedName("s")
@Export("iconList")
List iconList;
WorldMapAreaData() {
}
@ObfuscatedName("cd")
@ObfuscatedSignature(
signature = "(Lkq;Lkq;IZI)V",
garbageValue = "-466538568"
)
@Export("init")
void init(Buffer var1, Buffer var2, int var3, boolean var4) {
this.read(var1, var3);
int var5 = var2.readUnsignedShort();
this.worldMapData0Set = new HashSet(var5);
int var6;
for (var6 = 0; var6 < var5; ++var6) {
WorldMapData_0 var7 = new WorldMapData_0();
try {
var7.init(var2);
} catch (IllegalStateException var12) {
continue;
}
this.worldMapData0Set.add(var7);
}
var6 = var2.readUnsignedShort();
this.worldMapData1Set = new HashSet(var6);
for (int var10 = 0; var10 < var6; ++var10) {
WorldMapData_1 var8 = new WorldMapData_1();
try {
var8.init(var2);
} catch (IllegalStateException var11) {
continue;
}
this.worldMapData1Set.add(var8);
}
this.initIconsList(var2, var4);
}
@ObfuscatedName("cj")
@ObfuscatedSignature(
signature = "(Lkq;ZB)V",
garbageValue = "119"
)
@Export("initIconsList")
void initIconsList(Buffer var1, boolean var2) {
this.iconList = new LinkedList();
int var3 = var1.readUnsignedShort();
for (int var4 = 0; var4 < var3; ++var4) {
int var5 = var1.method5560();
Coord var6 = new Coord(var1.readInt());
boolean var7 = var1.readUnsignedByte() == 1;
if (var2 || !var7) {
this.iconList.add(new WorldMapIcon_0((Coord)null, var6, var5, (WorldMapLabel)null));
}
}
}
@ObfuscatedName("i")
@ObfuscatedSignature(
signature = "(Ljava/lang/Throwable;Ljava/lang/String;)Lmg;"
)
@Export("newRunException")
public static RunException newRunException(Throwable var0, String var1) {
RunException var2;
if (var0 instanceof RunException) {
var2 = (RunException)var0;
var2.message = var2.message + ' ' + var1;
} else {
var2 = new RunException(var0, var1);
}
return var2;
}
@ObfuscatedName("y")
@ObfuscatedSignature(
signature = "(Lkl;II)V",
garbageValue = "-1537977309"
)
@Export("readPlayerUpdate")
static void readPlayerUpdate(PacketBuffer var0, int var1) {
boolean var2 = var0.readBits(1) == 1;
if (var2) {
Players.Players_pendingUpdateIndices[++Players.Players_pendingUpdateCount - 1] = var1;
}
int var3 = var0.readBits(2);
Player var4 = Client.players[var1];
if (var3 == 0) {
if (var2) {
var4.field616 = false;
} else if (Client.localPlayerIndex == var1) {
throw new RuntimeException();
} else {
Players.Players_regions[var1] = (var4.plane << 28) + (ScriptEvent.baseY * 64 + var4.pathY[0] >> 13) + (MusicPatchPcmStream.baseX * 64 + var4.pathX[0] >> 13 << 14);
if (var4.field960 != -1) {
Players.Players_orientations[var1] = var4.field960;
} else {
Players.Players_orientations[var1] = var4.orientation;
}
Players.Players_targetIndices[var1] = var4.targetIndex;
Client.players[var1] = null;
if (var0.readBits(1) != 0) {
WorldMapDecorationType.updateExternalPlayer(var0, var1);
}
}
} else {
int var5;
int var6;
int var7;
if (var3 == 1) {
var5 = var0.readBits(3);
var6 = var4.pathX[0];
var7 = var4.pathY[0];
if (var5 == 0) {
--var6;
--var7;
} else if (var5 == 1) {
--var7;
} else if (var5 == 2) {
++var6;
--var7;
} else if (var5 == 3) {
--var6;
} else if (var5 == 4) {
++var6;
} else if (var5 == 5) {
--var6;
++var7;
} else if (var5 == 6) {
++var7;
} else if (var5 == 7) {
++var6;
++var7;
}
if (Client.localPlayerIndex != var1 || var4.x >= 1536 && var4.y >= 1536 && var4.x < 11776 && var4.y < 11776) {
if (var2) {
var4.field616 = true;
var4.tileX = var6;
var4.tileY = var7;
} else {
var4.field616 = false;
var4.method1261(var6, var7, Players.field1231[var1]);
}
} else {
var4.resetPath(var6, var7);
var4.field616 = false;
}
} else if (var3 == 2) {
var5 = var0.readBits(4);
var6 = var4.pathX[0];
var7 = var4.pathY[0];
if (var5 == 0) {
var6 -= 2;
var7 -= 2;
} else if (var5 == 1) {
--var6;
var7 -= 2;
} else if (var5 == 2) {
var7 -= 2;
} else if (var5 == 3) {
++var6;
var7 -= 2;
} else if (var5 == 4) {
var6 += 2;
var7 -= 2;
} else if (var5 == 5) {
var6 -= 2;
--var7;
} else if (var5 == 6) {
var6 += 2;
--var7;
} else if (var5 == 7) {
var6 -= 2;
} else if (var5 == 8) {
var6 += 2;
} else if (var5 == 9) {
var6 -= 2;
++var7;
} else if (var5 == 10) {
var6 += 2;
++var7;
} else if (var5 == 11) {
var6 -= 2;
var7 += 2;
} else if (var5 == 12) {
--var6;
var7 += 2;
} else if (var5 == 13) {
var7 += 2;
} else if (var5 == 14) {
++var6;
var7 += 2;
} else if (var5 == 15) {
var6 += 2;
var7 += 2;
}
if (Client.localPlayerIndex != var1 || var4.x >= 1536 && var4.y >= 1536 && var4.x < 11776 && var4.y < 11776) {
if (var2) {
var4.field616 = true;
var4.tileX = var6;
var4.tileY = var7;
} else {
var4.field616 = false;
var4.method1261(var6, var7, Players.field1231[var1]);
}
} else {
var4.resetPath(var6, var7);
var4.field616 = false;
}
} else {
var5 = var0.readBits(1);
int var8;
int var9;
int var10;
int var11;
if (var5 == 0) {
var6 = var0.readBits(12);
var7 = var6 >> 10;
var8 = var6 >> 5 & 31;
if (var8 > 15) {
var8 -= 32;
}
var9 = var6 & 31;
if (var9 > 15) {
var9 -= 32;
}
var10 = var8 + var4.pathX[0];
var11 = var9 + var4.pathY[0];
if (Client.localPlayerIndex == var1 && (var4.x < 1536 || var4.y < 1536 || var4.x >= 11776 || var4.y >= 11776)) {
var4.resetPath(var10, var11);
var4.field616 = false;
} else if (var2) {
var4.field616 = true;
var4.tileX = var10;
var4.tileY = var11;
} else {
var4.field616 = false;
var4.method1261(var10, var11, Players.field1231[var1]);
}
var4.plane = (byte)(var7 + var4.plane & 3);
if (Client.localPlayerIndex == var1) {
UrlRequest.Client_plane = var4.plane;
}
} else {
var6 = var0.readBits(30);
var7 = var6 >> 28;
var8 = var6 >> 14 & 16383;
var9 = var6 & 16383;
var10 = (MusicPatchPcmStream.baseX * 64 + var8 + var4.pathX[0] & 16383) - MusicPatchPcmStream.baseX * 64;
var11 = (ScriptEvent.baseY * 64 + var9 + var4.pathY[0] & 16383) - ScriptEvent.baseY * 64;
if (Client.localPlayerIndex == var1 && (var4.x < 1536 || var4.y < 1536 || var4.x >= 11776 || var4.y >= 11776)) {
var4.resetPath(var10, var11);
var4.field616 = false;
} else if (var2) {
var4.field616 = true;
var4.tileX = var10;
var4.tileY = var11;
} else {
var4.field616 = false;
var4.method1261(var10, var11, Players.field1231[var1]);
}
var4.plane = (byte)(var7 + var4.plane & 3);
if (Client.localPlayerIndex == var1) {
UrlRequest.Client_plane = var4.plane;
}
}
}
}
}
@ObfuscatedName("h")
@ObfuscatedSignature(
signature = "(ILcu;ZI)I",
garbageValue = "-1199061483"
)
static int method692(int var0, Script var1, boolean var2) {
Widget var3 = Tile.getWidget(Interpreter.Interpreter_intStack[--class188.Interpreter_intStackSize]);
if (var0 == ScriptOpcodes.IF_GETSCROLLX) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.scrollX;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETSCROLLY) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.scrollY;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETTEXT) {
Interpreter.Interpreter_stringStack[++class65.Interpreter_stringStackSize - 1] = var3.text;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETSCROLLWIDTH) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.scrollWidth;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETSCROLLHEIGHT) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.scrollHeight;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELZOOM) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.modelZoom;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELANGLE_X) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.modelAngleX;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELANGLE_Z) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.modelAngleZ;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELANGLE_Y) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.modelAngleY;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETTRANSTOP) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.transparencyTop;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETTRANSBOT) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.transparencyBot;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETCOLOUR) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.color;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETFILLCOLOUR) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.color2;
return 1;
} else if (var0 == ScriptOpcodes.IF_GETFILLMODE) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.fillMode.rsOrdinal();
return 1;
} else if (var0 == ScriptOpcodes.IF_GETMODELTRANSPARENT) {
Interpreter.Interpreter_intStack[++class188.Interpreter_intStackSize - 1] = var3.modelTransparency ? 1 : 0;
return 1;
} else {
return 2;
}
}
@ObfuscatedName("gr")
@ObfuscatedSignature(
signature = "(I)V",
garbageValue = "-2018851224"
)
static void method686() {
if (Client.renderSelf) {
class14.addPlayerToScene(Message.localPlayer, false);
}
}
@ObfuscatedName("jt")
@ObfuscatedSignature(
signature = "([Lha;IIIIIIIB)V",
garbageValue = "71"
)
@Export("updateInterface")
static final void updateInterface(Widget[] var0, int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
for (int var8 = 0; var8 < var0.length; ++var8) {
Widget var9 = var0[var8];
if (var9 != null && var9.parentId == var1 && (!var9.isIf3 || var9.type == 0 || var9.hasListener || WorldMapSection0.getWidgetClickMask(var9) != 0 || var9 == Client.clickedWidgetParent || var9.contentType == 1338)) {
if (var9.isIf3) {
if (Varcs.isComponentHidden(var9)) {
continue;
}
} else if (var9.type == 0 && var9 != class16.mousedOverWidgetIf1 && Varcs.isComponentHidden(var9)) {
continue;
}
int var10 = var9.x + var6;
int var11 = var7 + var9.y;
int var12;
int var13;
int var14;
int var15;
int var17;
int var18;
if (var9.type == 2) {
var12 = var2;
var13 = var3;
var14 = var4;
var15 = var5;
} else {
int var16;
if (var9.type == 9) {
var16 = var10;
var17 = var11;
var18 = var10 + var9.width;
int var19 = var11 + var9.height;
if (var18 < var10) {
var16 = var18;
var18 = var10;
}
if (var19 < var11) {
var17 = var19;
var19 = var11;
}
++var18;
++var19;
var12 = var16 > var2 ? var16 : var2;
var13 = var17 > var3 ? var17 : var3;
var14 = var18 < var4 ? var18 : var4;
var15 = var19 < var5 ? var19 : var5;
} else {
var16 = var10 + var9.width;
var17 = var11 + var9.height;
var12 = var10 > var2 ? var10 : var2;
var13 = var11 > var3 ? var11 : var3;
var14 = var16 < var4 ? var16 : var4;
var15 = var17 < var5 ? var17 : var5;
}
}
if (var9 == Client.clickedWidget) {
Client.field809 = true;
Client.field882 = var10;
Client.field811 = var11;
}
boolean var32 = false;
if (var9.field2625) {
switch(Client.field790) {
case 0:
var32 = true;
case 1:
default:
break;
case 2:
if (Client.field791 == var9.id >>> 16) {
var32 = true;
}
break;
case 3:
if (var9.id == Client.field791) {
var32 = true;
}
}
}
if (var32 || !var9.isIf3 || var12 < var14 && var13 < var15) {
if (var9.isIf3) {
ScriptEvent var26;
if (var9.noClickThrough) {
if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var26.isMouseInputEvent) {
var26.remove();
var26.widget.containsMouse = false;
}
}
if (WorldMapSection2.widgetDragDuration == 0) {
Client.clickedWidget = null;
Client.clickedWidgetParent = null;
}
if (!Client.isMenuOpen) {
Actor.addCancelMenuEntry();
}
}
} else if (var9.noScrollThrough && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
for (var26 = (ScriptEvent)Client.scriptEvents.last(); var26 != null; var26 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var26.isMouseInputEvent && var26.widget.onScroll == var26.args) {
var26.remove();
}
}
}
}
var17 = MouseHandler.MouseHandler_x;
var18 = MouseHandler.MouseHandler_y;
if (MouseHandler.MouseHandler_lastButton != 0) {
var17 = MouseHandler.MouseHandler_lastPressedX;
var18 = MouseHandler.MouseHandler_lastPressedY;
}
boolean var33 = var17 >= var12 && var18 >= var13 && var17 < var14 && var18 < var15;
if (var9.contentType == 1337) {
if (!Client.isLoading && !Client.isMenuOpen && var33) {
Huffman.addSceneMenuOptions(var17, var18, var12, var13);
}
} else if (var9.contentType == 1338) {
AbstractUserComparator.checkIfMinimapClicked(var9, var10, var11);
} else {
if (var9.contentType == 1400) {
GrandExchangeEvent.worldMap.onCycle(MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y, var33, var10, var11, var9.width, var9.height);
}
if (!Client.isMenuOpen && var33) {
if (var9.contentType == 1400) {
GrandExchangeEvent.worldMap.addElementMenuOptions(var10, var11, var9.width, var9.height, var17, var18);
} else {
AbstractWorldMapData.method263(var9, var17 - var10, var18 - var11);
}
}
boolean var21;
int var23;
if (var32) {
for (int var20 = 0; var20 < var9.field2626.length; ++var20) {
var21 = false;
boolean var22 = false;
if (!var21 && var9.field2626[var20] != null) {
for (var23 = 0; var23 < var9.field2626[var20].length; ++var23) {
boolean var24 = false;
if (var9.field2655 != null) {
var24 = KeyHandler.KeyHandler_pressedKeys[var9.field2626[var20][var23]];
}
if (ScriptEvent.method1185(var9.field2626[var20][var23]) || var24) {
var21 = true;
if (var9.field2655 != null && var9.field2655[var20] > Client.cycle) {
break;
}
byte var25 = var9.field2629[var20][var23];
if (var25 == 0 || ((var25 & 8) == 0 || !KeyHandler.KeyHandler_pressedKeys[86] && !KeyHandler.KeyHandler_pressedKeys[82] && !KeyHandler.KeyHandler_pressedKeys[81]) && ((var25 & 2) == 0 || KeyHandler.KeyHandler_pressedKeys[86]) && ((var25 & 1) == 0 || KeyHandler.KeyHandler_pressedKeys[82]) && ((var25 & 4) == 0 || KeyHandler.KeyHandler_pressedKeys[81])) {
var22 = true;
break;
}
}
}
}
if (var22) {
if (var20 < 10) {
KeyHandler.widgetDefaultMenuAction(var20 + 1, var9.id, var9.childIndex, var9.itemId, "");
} else if (var20 == 10) {
GrandExchangeOfferUnitPriceComparator.Widget_runOnTargetLeave();
WorldMapData_0.selectSpell(var9.id, var9.childIndex, class14.method157(WorldMapSection0.getWidgetClickMask(var9)), var9.itemId);
Client.selectedSpellActionName = class60.method1167(var9);
if (Client.selectedSpellActionName == null) {
Client.selectedSpellActionName = "null";
}
Client.selectedSpellName = var9.dataText + NPC.colorStartTag(16777215);
}
var23 = var9.field2631[var20];
if (var9.field2655 == null) {
var9.field2655 = new int[var9.field2626.length];
}
if (var9.field2670 == null) {
var9.field2670 = new int[var9.field2626.length];
}
if (var23 != 0) {
if (var9.field2655[var20] == 0) {
var9.field2655[var20] = var23 + Client.cycle + var9.field2670[var20];
} else {
var9.field2655[var20] = var23 + Client.cycle;
}
} else {
var9.field2655[var20] = Integer.MAX_VALUE;
}
}
if (!var21 && var9.field2655 != null) {
var9.field2655[var20] = 0;
}
}
}
if (var9.isIf3) {
if (MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
var33 = true;
} else {
var33 = false;
}
boolean var34 = false;
if ((MouseHandler.MouseHandler_currentButton == 1 || !NetFileRequest.mouseCam && MouseHandler.MouseHandler_currentButton == 4) && var33) {
var34 = true;
}
var21 = false;
if ((MouseHandler.MouseHandler_lastButton == 1 || !NetFileRequest.mouseCam && MouseHandler.MouseHandler_lastButton == 4) && MouseHandler.MouseHandler_lastPressedX >= var12 && MouseHandler.MouseHandler_lastPressedY >= var13 && MouseHandler.MouseHandler_lastPressedX < var14 && MouseHandler.MouseHandler_lastPressedY < var15) {
var21 = true;
}
if (var21) {
GrandExchangeOfferNameComparator.clickWidget(var9, MouseHandler.MouseHandler_lastPressedX - var10, MouseHandler.MouseHandler_lastPressedY - var11);
}
if (var9.contentType == 1400) {
GrandExchangeEvent.worldMap.method6359(var17, var18, var33 & var34, var33 & var21);
}
if (Client.clickedWidget != null && var9 != Client.clickedWidget && var33 && Player.method1278(WorldMapSection0.getWidgetClickMask(var9))) {
Client.draggedOnWidget = var9;
}
if (var9 == Client.clickedWidgetParent) {
Client.field806 = true;
Client.field807 = var10;
Client.field808 = var11;
}
if (var9.hasListener) {
ScriptEvent var27;
if (var33 && Client.mouseWheelRotation != 0 && var9.onScroll != null) {
var27 = new ScriptEvent();
var27.isMouseInputEvent = true;
var27.widget = var9;
var27.mouseY = Client.mouseWheelRotation;
var27.args = var9.onScroll;
Client.scriptEvents.addFirst(var27);
}
if (Client.clickedWidget != null || ClientPreferences.dragInventoryWidget != null || Client.isMenuOpen) {
var21 = false;
var34 = false;
var33 = false;
}
if (!var9.isClicked && var21) {
var9.isClicked = true;
if (var9.onClick != null) {
var27 = new ScriptEvent();
var27.isMouseInputEvent = true;
var27.widget = var9;
var27.mouseX = MouseHandler.MouseHandler_lastPressedX - var10;
var27.mouseY = MouseHandler.MouseHandler_lastPressedY - var11;
var27.args = var9.onClick;
Client.scriptEvents.addFirst(var27);
}
}
if (var9.isClicked && var34 && var9.onClickRepeat != null) {
var27 = new ScriptEvent();
var27.isMouseInputEvent = true;
var27.widget = var9;
var27.mouseX = MouseHandler.MouseHandler_x - var10;
var27.mouseY = MouseHandler.MouseHandler_y - var11;
var27.args = var9.onClickRepeat;
Client.scriptEvents.addFirst(var27);
}
if (var9.isClicked && !var34) {
var9.isClicked = false;
if (var9.onRelease != null) {
var27 = new ScriptEvent();
var27.isMouseInputEvent = true;
var27.widget = var9;
var27.mouseX = MouseHandler.MouseHandler_x - var10;
var27.mouseY = MouseHandler.MouseHandler_y - var11;
var27.args = var9.onRelease;
Client.field883.addFirst(var27);
}
}
if (var34 && var9.onHold != null) {
var27 = new ScriptEvent();
var27.isMouseInputEvent = true;
var27.widget = var9;
var27.mouseX = MouseHandler.MouseHandler_x - var10;
var27.mouseY = MouseHandler.MouseHandler_y - var11;
var27.args = var9.onHold;
Client.scriptEvents.addFirst(var27);
}
if (!var9.containsMouse && var33) {
var9.containsMouse = true;
if (var9.onMouseOver != null) {
var27 = new ScriptEvent();
var27.isMouseInputEvent = true;
var27.widget = var9;
var27.mouseX = MouseHandler.MouseHandler_x - var10;
var27.mouseY = MouseHandler.MouseHandler_y - var11;
var27.args = var9.onMouseOver;
Client.scriptEvents.addFirst(var27);
}
}
if (var9.containsMouse && var33 && var9.onMouseRepeat != null) {
var27 = new ScriptEvent();
var27.isMouseInputEvent = true;
var27.widget = var9;
var27.mouseX = MouseHandler.MouseHandler_x - var10;
var27.mouseY = MouseHandler.MouseHandler_y - var11;
var27.args = var9.onMouseRepeat;
Client.scriptEvents.addFirst(var27);
}
if (var9.containsMouse && !var33) {
var9.containsMouse = false;
if (var9.onMouseLeave != null) {
var27 = new ScriptEvent();
var27.isMouseInputEvent = true;
var27.widget = var9;
var27.mouseX = MouseHandler.MouseHandler_x - var10;
var27.mouseY = MouseHandler.MouseHandler_y - var11;
var27.args = var9.onMouseLeave;
Client.field883.addFirst(var27);
}
}
if (var9.onTimer != null) {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onTimer;
Client.field865.addFirst(var27);
}
ScriptEvent var30;
int var35;
int var36;
if (var9.onVarTransmit != null && Client.field648 > var9.field2685) {
if (var9.varTransmitTriggers != null && Client.field648 - var9.field2685 <= 32) {
label883:
for (var35 = var9.field2685; var35 < Client.field648; ++var35) {
var23 = Client.field814[var35 & 31];
for (var36 = 0; var36 < var9.varTransmitTriggers.length; ++var36) {
if (var23 == var9.varTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onVarTransmit;
Client.scriptEvents.addFirst(var30);
break label883;
}
}
}
} else {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onVarTransmit;
Client.scriptEvents.addFirst(var27);
}
var9.field2685 = Client.field648;
}
if (var9.onInvTransmit != null && Client.field701 > var9.field2686) {
if (var9.invTransmitTriggers != null && Client.field701 - var9.field2686 <= 32) {
label859:
for (var35 = var9.field2686; var35 < Client.field701; ++var35) {
var23 = Client.changedItemContainers[var35 & 31];
for (var36 = 0; var36 < var9.invTransmitTriggers.length; ++var36) {
if (var23 == var9.invTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onInvTransmit;
Client.scriptEvents.addFirst(var30);
break label859;
}
}
}
} else {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onInvTransmit;
Client.scriptEvents.addFirst(var27);
}
var9.field2686 = Client.field701;
}
if (var9.onStatTransmit != null && Client.changedSkillsCount > var9.field2687) {
if (var9.statTransmitTriggers != null && Client.changedSkillsCount - var9.field2687 <= 32) {
label835:
for (var35 = var9.field2687; var35 < Client.changedSkillsCount; ++var35) {
var23 = Client.changedSkills[var35 & 31];
for (var36 = 0; var36 < var9.statTransmitTriggers.length; ++var36) {
if (var23 == var9.statTransmitTriggers[var36]) {
var30 = new ScriptEvent();
var30.widget = var9;
var30.args = var9.onStatTransmit;
Client.scriptEvents.addFirst(var30);
break label835;
}
}
}
} else {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onStatTransmit;
Client.scriptEvents.addFirst(var27);
}
var9.field2687 = Client.changedSkillsCount;
}
if (Client.chatCycle > var9.field2583 && var9.onChatTransmit != null) {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onChatTransmit;
Client.scriptEvents.addFirst(var27);
}
if (Client.field711 > var9.field2583 && var9.onFriendTransmit != null) {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onFriendTransmit;
Client.scriptEvents.addFirst(var27);
}
if (Client.field862 > var9.field2583 && var9.onClanTransmit != null) {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onClanTransmit;
Client.scriptEvents.addFirst(var27);
}
if (Client.field823 > var9.field2583 && var9.onStockTransmit != null) {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onStockTransmit;
Client.scriptEvents.addFirst(var27);
}
if (Client.field860 > var9.field2583 && var9.field2562 != null) {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.field2562;
Client.scriptEvents.addFirst(var27);
}
if (Client.field825 > var9.field2583 && var9.onMiscTransmit != null) {
var27 = new ScriptEvent();
var27.widget = var9;
var27.args = var9.onMiscTransmit;
Client.scriptEvents.addFirst(var27);
}
var9.field2583 = Client.cycleCntr;
if (var9.onKey != null) {
for (var35 = 0; var35 < Client.field849; ++var35) {
ScriptEvent var31 = new ScriptEvent();
var31.widget = var9;
var31.keyTyped = Client.field851[var35];
var31.keyPressed = Client.field850[var35];
var31.args = var9.onKey;
Client.scriptEvents.addFirst(var31);
}
}
}
}
if (!var9.isIf3) {
if (Client.clickedWidget != null || ClientPreferences.dragInventoryWidget != null || Client.isMenuOpen) {
continue;
}
if ((var9.mouseOverRedirect >= 0 || var9.mouseOverColor != 0) && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
if (var9.mouseOverRedirect >= 0) {
class16.mousedOverWidgetIf1 = var0[var9.mouseOverRedirect];
} else {
class16.mousedOverWidgetIf1 = var9;
}
}
if (var9.type == 8 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15) {
class14.field90 = var9;
}
if (var9.scrollHeight > var9.height) {
WorldMapSection2.method321(var9, var10 + var9.width, var11, var9.height, var9.scrollHeight, MouseHandler.MouseHandler_x, MouseHandler.MouseHandler_y);
}
}
if (var9.type == 0) {
updateInterface(var0, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY);
if (var9.children != null) {
updateInterface(var9.children, var9.id, var12, var13, var14, var15, var10 - var9.scrollX, var11 - var9.scrollY);
}
InterfaceParent var28 = (InterfaceParent)Client.interfaceParents.get((long)var9.id);
if (var28 != null) {
if (var28.type == 0 && MouseHandler.MouseHandler_x >= var12 && MouseHandler.MouseHandler_y >= var13 && MouseHandler.MouseHandler_x < var14 && MouseHandler.MouseHandler_y < var15 && !Client.isMenuOpen) {
for (ScriptEvent var29 = (ScriptEvent)Client.scriptEvents.last(); var29 != null; var29 = (ScriptEvent)Client.scriptEvents.previous()) {
if (var29.isMouseInputEvent) {
var29.remove();
var29.widget.containsMouse = false;
}
}
if (WorldMapSection2.widgetDragDuration == 0) {
Client.clickedWidget = null;
Client.clickedWidgetParent = null;
}
if (!Client.isMenuOpen) {
Actor.addCancelMenuEntry();
}
}
Buffer.updateRootInterface(var28.group, var12, var13, var14, var15, var10, var11);
}
}
}
}
}
}
}
}