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("bq") @Implements("Player") public final class Player extends Actor { @ObfuscatedName("hh") @ObfuscatedGetter( intValue = 838938309 ) @Export("cameraX") static int cameraX; @ObfuscatedName("mq") @ObfuscatedGetter( intValue = -726280905 ) @Export("selectedSpellFlags") static int selectedSpellFlags; @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "Lki;" ) @Export("username") Username username; @ObfuscatedName("v") @ObfuscatedSignature( descriptor = "Lhh;" ) @Export("appearance") PlayerComposition appearance; @ObfuscatedName("x") @ObfuscatedGetter( intValue = -1265111393 ) @Export("headIconPk") int headIconPk; @ObfuscatedName("w") @ObfuscatedGetter( intValue = 732262151 ) @Export("headIconPrayer") int headIconPrayer; @ObfuscatedName("j") @Export("actions") String[] actions; @ObfuscatedName("n") @ObfuscatedGetter( intValue = -818142941 ) @Export("combatLevel") int combatLevel; @ObfuscatedName("p") @ObfuscatedGetter( intValue = 906508591 ) @Export("skillLevel") int skillLevel; @ObfuscatedName("l") @ObfuscatedGetter( intValue = 1192790671 ) @Export("tileHeight") int tileHeight; @ObfuscatedName("z") @ObfuscatedGetter( intValue = 1807661199 ) @Export("animationCycleStart") int animationCycleStart; @ObfuscatedName("u") @ObfuscatedGetter( intValue = -124646805 ) @Export("animationCycleEnd") int animationCycleEnd; @ObfuscatedName("e") @ObfuscatedGetter( intValue = -508660831 ) int field634; @ObfuscatedName("m") @ObfuscatedGetter( intValue = -1663722753 ) @Export("tileHeight2") int tileHeight2; @ObfuscatedName("c") @ObfuscatedGetter( intValue = 89818503 ) int field626; @ObfuscatedName("i") @ObfuscatedSignature( descriptor = "Leh;" ) @Export("model0") Model model0; @ObfuscatedName("f") @ObfuscatedGetter( intValue = 291010439 ) int field620; @ObfuscatedName("a") @ObfuscatedGetter( intValue = 2101860893 ) int field606; @ObfuscatedName("b") @ObfuscatedGetter( intValue = 1794275211 ) int field622; @ObfuscatedName("y") @ObfuscatedGetter( intValue = 1140466467 ) int field623; @ObfuscatedName("r") @Export("isUnanimated") boolean isUnanimated; @ObfuscatedName("q") @ObfuscatedGetter( intValue = -577457335 ) @Export("team") int team; @ObfuscatedName("g") @Export("isHidden") boolean isHidden; @ObfuscatedName("s") @ObfuscatedGetter( intValue = -285633019 ) @Export("plane") int plane; @ObfuscatedName("o") @ObfuscatedGetter( intValue = 1218536575 ) @Export("index") int index; @ObfuscatedName("k") @ObfuscatedSignature( descriptor = "Lkn;" ) @Export("isFriendTriBool") TriBool isFriendTriBool; @ObfuscatedName("d") @ObfuscatedSignature( descriptor = "Lkn;" ) @Export("isInClanChat") TriBool isInClanChat; @ObfuscatedName("aj") boolean field631; @ObfuscatedName("ax") @ObfuscatedGetter( intValue = 732463017 ) @Export("tileX") int tileX; @ObfuscatedName("ag") @ObfuscatedGetter( intValue = -548320531 ) @Export("tileY") int tileY; Player() { this.headIconPk = -1; // L: 18 this.headIconPrayer = -1; // L: 19 this.actions = new String[3]; // L: 21 for (int var1 = 0; var1 < 3; ++var1) { // L: 24 this.actions[var1] = ""; } this.combatLevel = 0; // L: 27 this.skillLevel = 0; // L: 28 this.animationCycleStart = 0; // L: 30 this.animationCycleEnd = 0; // L: 31 this.isUnanimated = false; // L: 40 this.team = 0; // L: 41 this.isHidden = false; // L: 42 this.isFriendTriBool = TriBool.TriBool_unknown; // L: 45 this.isInClanChat = TriBool.TriBool_unknown; // L: 46 this.field631 = false; // L: 47 } // L: 51 @ObfuscatedName("h") @ObfuscatedSignature( descriptor = "(Lkj;B)V", garbageValue = "-58" ) @Export("read") final void read(Buffer var1) { var1.offset = 0; // L: 54 int var2 = var1.readUnsignedByte(); // L: 55 this.headIconPk = var1.readByte(); // L: 56 this.headIconPrayer = var1.readByte(); // L: 57 int var3 = -1; // L: 58 this.team = 0; // L: 59 int[] var4 = new int[12]; // L: 60 int var6; int var7; for (int var5 = 0; var5 < 12; ++var5) { // L: 61 var6 = var1.readUnsignedByte(); // L: 62 if (var6 == 0) { // L: 63 var4[var5] = 0; // L: 64 } else { var7 = var1.readUnsignedByte(); // L: 67 var4[var5] = var7 + (var6 << 8); // L: 68 if (var5 == 0 && var4[0] == 65535) { // L: 69 var3 = var1.readUnsignedShort(); // L: 70 break; } if (var4[var5] >= 512) { // L: 73 int var8 = SecureRandomCallable.ItemDefinition_get(var4[var5] - 512).team; // L: 74 if (var8 != 0) { // L: 75 this.team = var8; } } } } int[] var9 = new int[5]; // L: 78 for (var6 = 0; var6 < 5; ++var6) { // L: 79 var7 = var1.readUnsignedByte(); // L: 80 if (var7 < 0 || var7 >= WorldMapScaleHandler.field366[var6].length) { // L: 81 var7 = 0; } var9[var6] = var7; // L: 82 } super.idleSequence = var1.readUnsignedShort(); // L: 84 if (super.idleSequence == 65535) { // L: 85 super.idleSequence = -1; } super.turnLeftSequence = var1.readUnsignedShort(); // L: 86 if (super.turnLeftSequence == 65535) { // L: 87 super.turnLeftSequence = -1; } super.turnRightSequence = super.turnLeftSequence; // L: 88 super.walkSequence = var1.readUnsignedShort(); // L: 89 if (super.walkSequence == 65535) { // L: 90 super.walkSequence = -1; } super.walkBackSequence = var1.readUnsignedShort(); // L: 91 if (super.walkBackSequence == 65535) { // L: 92 super.walkBackSequence = -1; } super.walkLeftSequence = var1.readUnsignedShort(); // L: 93 if (super.walkLeftSequence == 65535) { super.walkLeftSequence = -1; // L: 94 } super.walkRightSequence = var1.readUnsignedShort(); // L: 95 if (super.walkRightSequence == 65535) { // L: 96 super.walkRightSequence = -1; } super.runSequence = var1.readUnsignedShort(); // L: 97 if (super.runSequence == 65535) { // L: 98 super.runSequence = -1; } this.username = new Username(var1.readStringCp1252NullTerminated(), GrandExchangeOfferUnitPriceComparator.loginType); // L: 99 this.clearIsFriend(); // L: 100 this.clearIsInClanChat(); // L: 101 if (this == PlayerComposition.localPlayer) { // L: 102 RunException.localPlayerName = this.username.getName(); } this.combatLevel = var1.readUnsignedByte(); // L: 103 this.skillLevel = var1.readUnsignedShort(); // L: 104 this.isHidden = var1.readUnsignedByte() == 1; // L: 105 if (Client.gameBuild == 0 && Client.staffModLevel >= 2) { // L: 106 this.isHidden = false; } if (this.appearance == null) { // L: 107 this.appearance = new PlayerComposition(); } this.appearance.update(var4, var9, var2 == 1, var3); // L: 108 } // L: 109 @ObfuscatedName("v") @ObfuscatedSignature( descriptor = "(I)Z", garbageValue = "338154305" ) @Export("isFriend") boolean isFriend() { if (this.isFriendTriBool == TriBool.TriBool_unknown) { // L: 112 this.checkIsFriend(); // L: 113 } return this.isFriendTriBool == TriBool.TriBool_true; // L: 115 } @ObfuscatedName("x") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "-730921547" ) @Export("clearIsFriend") void clearIsFriend() { this.isFriendTriBool = TriBool.TriBool_unknown; // L: 119 } // L: 120 @ObfuscatedName("w") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "886706251" ) @Export("checkIsFriend") void checkIsFriend() { this.isFriendTriBool = MilliClock.friendSystem.isFriendAndHasWorld(this.username) ? TriBool.TriBool_true : TriBool.TriBool_false; // L: 123 } // L: 124 @ObfuscatedName("t") @ObfuscatedSignature( descriptor = "(B)Z", garbageValue = "-26" ) @Export("isClanMember") boolean isClanMember() { if (this.isInClanChat == TriBool.TriBool_unknown) { // L: 127 this.updateIsInClanChat(); // L: 128 } return this.isInClanChat == TriBool.TriBool_true; // L: 130 } @ObfuscatedName("j") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "1880119871" ) @Export("clearIsInClanChat") void clearIsInClanChat() { this.isInClanChat = TriBool.TriBool_unknown; // L: 134 } // L: 135 @ObfuscatedName("n") @ObfuscatedSignature( descriptor = "(I)V", garbageValue = "327273294" ) @Export("updateIsInClanChat") void updateIsInClanChat() { this.isInClanChat = WorldMapArea.clanChat != null && WorldMapArea.clanChat.contains(this.username) ? TriBool.TriBool_true : TriBool.TriBool_false; // L: 138 } // L: 139 @ObfuscatedName("p") @ObfuscatedSignature( descriptor = "(B)I", garbageValue = "-20" ) @Export("transformedSize") int transformedSize() { return this.appearance != null && this.appearance.npcTransformId != -1 ? WorldMapIcon_0.getNpcDefinition(this.appearance.npcTransformId).size : 1; // L: 142 143 145 } @ObfuscatedName("l") @ObfuscatedSignature( descriptor = "(I)Leh;", garbageValue = "-1814248977" ) @Export("getModel") protected final Model getModel() { if (this.appearance == null) { // L: 149 return null; } else { SequenceDefinition var1 = super.sequence != -1 && super.sequenceDelay == 0 ? ParamComposition.SequenceDefinition_get(super.sequence) : null; // L: 150 SequenceDefinition var2 = super.movementSequence == -1 || this.isUnanimated || super.idleSequence == super.movementSequence && var1 != null ? null : ParamComposition.SequenceDefinition_get(super.movementSequence); // L: 151 Model var3 = this.appearance.getModel(var1, super.sequenceFrame, var2, super.movementFrame); // L: 152 if (var3 == null) { // L: 153 return null; } else { var3.calculateBoundsCylinder(); // L: 154 super.defaultHeight = var3.height; // L: 155 Model var4; Model[] var5; if (!this.isUnanimated && super.spotAnimation != -1 && super.spotAnimationFrame != -1) { // L: 156 var4 = TileItem.SpotAnimationDefinition_get(super.spotAnimation).getModel(super.spotAnimationFrame); // L: 157 if (var4 != null) { // L: 158 var4.offsetBy(0, -super.field979, 0); // L: 159 var5 = new Model[]{var3, var4}; // L: 160 var3 = new Model(var5, 2); // L: 161 } } if (!this.isUnanimated && this.model0 != null) { // L: 164 if (Client.cycle >= this.animationCycleEnd) { // L: 165 this.model0 = null; } if (Client.cycle >= this.animationCycleStart && Client.cycle < this.animationCycleEnd) { // L: 166 var4 = this.model0; // L: 167 var4.offsetBy(this.field634 - super.x, this.tileHeight2 - this.tileHeight, this.field626 - super.y); // L: 168 if (super.orientation == 512) { // L: 169 var4.rotateY90Ccw(); // L: 170 var4.rotateY90Ccw(); // L: 171 var4.rotateY90Ccw(); // L: 172 } else if (super.orientation == 1024) { // L: 174 var4.rotateY90Ccw(); // L: 175 var4.rotateY90Ccw(); // L: 176 } else if (super.orientation == 1536) { // L: 178 var4.rotateY90Ccw(); } var5 = new Model[]{var3, var4}; // L: 179 var3 = new Model(var5, 2); // L: 180 if (super.orientation == 512) { // L: 181 var4.rotateY90Ccw(); } else if (super.orientation == 1024) { // L: 182 var4.rotateY90Ccw(); // L: 183 var4.rotateY90Ccw(); // L: 184 } else if (super.orientation == 1536) { // L: 186 var4.rotateY90Ccw(); // L: 187 var4.rotateY90Ccw(); // L: 188 var4.rotateY90Ccw(); // L: 189 } var4.offsetBy(super.x - this.field634, this.tileHeight - this.tileHeight2, super.y - this.field626); // L: 191 } } var3.isSingleTile = true; // L: 194 return var3; // L: 195 } } } @ObfuscatedName("z") @ObfuscatedSignature( descriptor = "(IIBI)V", garbageValue = "1635620178" ) final void method1313(int var1, int var2, byte var3) { if (super.sequence != -1 && ParamComposition.SequenceDefinition_get(super.sequence).field3555 == 1) { // L: 199 super.sequence = -1; } super.field959 = -1; // L: 200 if (var1 >= 0 && var1 < 104 && var2 >= 0 && var2 < 104) { // L: 201 if (super.pathX[0] >= 0 && super.pathX[0] < 104 && super.pathY[0] >= 0 && super.pathY[0] < 104) { // L: 202 if (var3 == 2) { // L: 204 Player var4 = this; // L: 205 int var5 = super.pathX[0]; // L: 207 int var6 = super.pathY[0]; // L: 208 int var7 = this.transformedSize(); // L: 209 if (var5 >= var7 && var5 < 104 - var7 && var6 >= var7 && var6 < 104 - var7 && var1 >= var7 && var1 < 104 - var7 && var2 >= var7 && var2 < 104 - var7) { // L: 210 211 int var9 = this.transformedSize(); // L: 213 Client.field919.approxDestinationX = var1; // L: 216 Client.field919.approxDestinationY = var2; // L: 217 Client.field919.approxDestinationSizeX = 1; // L: 218 Client.field919.approxDestinationSizeY = 1; // L: 219 ApproximateRouteStrategy var10 = Client.field919; // L: 220 ApproximateRouteStrategy var11 = var10; // L: 222 CollisionMap var12 = Client.collisionMaps[this.plane]; // L: 223 int[] var13 = Client.field920; // L: 224 int[] var14 = Client.field921; // L: 225 int var15 = 0; label686: while (true) { int var16; if (var15 >= 128) { int var17; int var18; byte var19; byte var20; int var21; int var22; byte var23; int var24; int[][] var25; int var26; int var27; int var28; int var29; boolean var35; boolean var36; int var37; int var38; int var40; if (var9 == 1) { // L: 234 var17 = var5; // L: 237 var18 = var6; // L: 238 var19 = 64; // L: 239 var20 = 64; // L: 240 var21 = var5 - var19; // L: 241 var22 = var6 - var20; // L: 242 class182.directions[var19][var20] = 99; // L: 243 class182.distances[var19][var20] = 0; // L: 244 var23 = 0; // L: 245 var24 = 0; // L: 246 class182.bufferX[var23] = var5; // L: 247 var40 = var23 + 1; class182.bufferY[var23] = var6; // L: 248 var25 = var12.flags; // L: 249 while (true) { if (var24 == var40) { // L: 252 class182.field2115 = var17; // L: 324 class182.field2121 = var18; // L: 325 var36 = false; // L: 326 break; } var17 = class182.bufferX[var24]; // L: 253 var18 = class182.bufferY[var24]; // L: 254 var24 = var24 + 1 & 4095; // L: 255 var37 = var17 - var21; // L: 256 var38 = var18 - var22; // L: 257 var26 = var17 - var12.xInset; // L: 258 var27 = var18 - var12.yInset; // L: 259 if (var11.hasArrived(1, var17, var18, var12)) { // L: 260 class182.field2115 = var17; // L: 261 class182.field2121 = var18; // L: 262 var36 = true; // L: 263 break; } var28 = class182.distances[var37][var38] + 1; // L: 266 if (var37 > 0 && class182.directions[var37 - 1][var38] == 0 && (var25[var26 - 1][var27] & 19136776) == 0) { // L: 267 class182.bufferX[var40] = var17 - 1; // L: 268 class182.bufferY[var40] = var18; // L: 269 var40 = var40 + 1 & 4095; // L: 270 class182.directions[var37 - 1][var38] = 2; // L: 271 class182.distances[var37 - 1][var38] = var28; // L: 272 } if (var37 < 127 && class182.directions[var37 + 1][var38] == 0 && (var25[var26 + 1][var27] & 19136896) == 0) { // L: 274 class182.bufferX[var40] = var17 + 1; // L: 275 class182.bufferY[var40] = var18; // L: 276 var40 = var40 + 1 & 4095; // L: 277 class182.directions[var37 + 1][var38] = 8; // L: 278 class182.distances[var37 + 1][var38] = var28; // L: 279 } if (var38 > 0 && class182.directions[var37][var38 - 1] == 0 && (var25[var26][var27 - 1] & 19136770) == 0) { // L: 281 class182.bufferX[var40] = var17; // L: 282 class182.bufferY[var40] = var18 - 1; // L: 283 var40 = var40 + 1 & 4095; // L: 284 class182.directions[var37][var38 - 1] = 1; // L: 285 class182.distances[var37][var38 - 1] = var28; // L: 286 } if (var38 < 127 && class182.directions[var37][var38 + 1] == 0 && (var25[var26][var27 + 1] & 19136800) == 0) { // L: 288 class182.bufferX[var40] = var17; // L: 289 class182.bufferY[var40] = var18 + 1; // L: 290 var40 = var40 + 1 & 4095; // L: 291 class182.directions[var37][var38 + 1] = 4; // L: 292 class182.distances[var37][var38 + 1] = var28; // L: 293 } if (var37 > 0 && var38 > 0 && class182.directions[var37 - 1][var38 - 1] == 0 && (var25[var26 - 1][var27 - 1] & 19136782) == 0 && (var25[var26 - 1][var27] & 19136776) == 0 && (var25[var26][var27 - 1] & 19136770) == 0) { // L: 295 class182.bufferX[var40] = var17 - 1; // L: 296 class182.bufferY[var40] = var18 - 1; // L: 297 var40 = var40 + 1 & 4095; // L: 298 class182.directions[var37 - 1][var38 - 1] = 3; // L: 299 class182.distances[var37 - 1][var38 - 1] = var28; // L: 300 } if (var37 < 127 && var38 > 0 && class182.directions[var37 + 1][var38 - 1] == 0 && (var25[var26 + 1][var27 - 1] & 19136899) == 0 && (var25[var26 + 1][var27] & 19136896) == 0 && (var25[var26][var27 - 1] & 19136770) == 0) { // L: 302 class182.bufferX[var40] = var17 + 1; // L: 303 class182.bufferY[var40] = var18 - 1; // L: 304 var40 = var40 + 1 & 4095; // L: 305 class182.directions[var37 + 1][var38 - 1] = 9; // L: 306 class182.distances[var37 + 1][var38 - 1] = var28; // L: 307 } if (var37 > 0 && var38 < 127 && class182.directions[var37 - 1][var38 + 1] == 0 && (var25[var26 - 1][var27 + 1] & 19136824) == 0 && (var25[var26 - 1][var27] & 19136776) == 0 && (var25[var26][var27 + 1] & 19136800) == 0) { // L: 309 class182.bufferX[var40] = var17 - 1; // L: 310 class182.bufferY[var40] = var18 + 1; // L: 311 var40 = var40 + 1 & 4095; // L: 312 class182.directions[var37 - 1][var38 + 1] = 6; // L: 313 class182.distances[var37 - 1][var38 + 1] = var28; // L: 314 } if (var37 < 127 && var38 < 127 && class182.directions[var37 + 1][var38 + 1] == 0 && (var25[var26 + 1][var27 + 1] & 19136992) == 0 && (var25[var26 + 1][var27] & 19136896) == 0 && (var25[var26][var27 + 1] & 19136800) == 0) { // L: 316 class182.bufferX[var40] = var17 + 1; // L: 317 class182.bufferY[var40] = var18 + 1; // L: 318 var40 = var40 + 1 & 4095; // L: 319 class182.directions[var37 + 1][var38 + 1] = 12; // L: 320 class182.distances[var37 + 1][var38 + 1] = var28; // L: 321 } } var35 = var36; // L: 328 } else if (var9 == 2) { // L: 330 var35 = class231.method4152(var5, var6, var10, var12); } else { var17 = var5; // L: 334 var18 = var6; // L: 335 var19 = 64; // L: 336 var20 = 64; // L: 337 var21 = var5 - var19; // L: 338 var22 = var6 - var20; // L: 339 class182.directions[var19][var20] = 99; // L: 340 class182.distances[var19][var20] = 0; // L: 341 var23 = 0; // L: 342 var24 = 0; // L: 343 class182.bufferX[var23] = var5; // L: 344 var40 = var23 + 1; class182.bufferY[var23] = var6; // L: 345 var25 = var12.flags; // L: 346 label672: while (true) { label670: while (true) { do { do { do { label647: do { if (var24 == var40) { // L: 347 class182.field2115 = var17; // L: 467 class182.field2121 = var18; // L: 468 var36 = false; // L: 469 break label672; } var17 = class182.bufferX[var24]; // L: 348 var18 = class182.bufferY[var24]; // L: 349 var24 = var24 + 1 & 4095; // L: 350 var37 = var17 - var21; // L: 351 var38 = var18 - var22; // L: 352 var26 = var17 - var12.xInset; // L: 353 var27 = var18 - var12.yInset; // L: 354 if (var11.hasArrived(var9, var17, var18, var12)) { // L: 355 class182.field2115 = var17; // L: 356 class182.field2121 = var18; // L: 357 var36 = true; // L: 358 break label672; } var28 = class182.distances[var37][var38] + 1; // L: 361 if (var37 > 0 && class182.directions[var37 - 1][var38] == 0 && (var25[var26 - 1][var27] & 19136782) == 0 && (var25[var26 - 1][var27 + var9 - 1] & 19136824) == 0) { // L: 362 363 364 365 var29 = 1; while (true) { if (var29 >= var9 - 1) { class182.bufferX[var40] = var17 - 1; // L: 369 class182.bufferY[var40] = var18; // L: 370 var40 = var40 + 1 & 4095; // L: 371 class182.directions[var37 - 1][var38] = 2; // L: 372 class182.distances[var37 - 1][var38] = var28; // L: 373 break; } if ((var25[var26 - 1][var29 + var27] & 19136830) != 0) { // L: 367 break; } ++var29; // L: 366 } } if (var37 < 128 - var9 && class182.directions[var37 + 1][var38] == 0 && (var25[var9 + var26][var27] & 19136899) == 0 && (var25[var26 + var9][var9 + var27 - 1] & 19136992) == 0) { // L: 375 376 377 378 var29 = 1; while (true) { if (var29 >= var9 - 1) { class182.bufferX[var40] = var17 + 1; // L: 382 class182.bufferY[var40] = var18; // L: 383 var40 = var40 + 1 & 4095; // L: 384 class182.directions[var37 + 1][var38] = 8; // L: 385 class182.distances[var37 + 1][var38] = var28; // L: 386 break; } if ((var25[var26 + var9][var27 + var29] & 19136995) != 0) { // L: 380 break; } ++var29; // L: 379 } } if (var38 > 0 && class182.directions[var37][var38 - 1] == 0 && (var25[var26][var27 - 1] & 19136782) == 0 && (var25[var9 + var26 - 1][var27 - 1] & 19136899) == 0) { // L: 388 389 390 391 var29 = 1; while (true) { if (var29 >= var9 - 1) { class182.bufferX[var40] = var17; // L: 395 class182.bufferY[var40] = var18 - 1; // L: 396 var40 = var40 + 1 & 4095; // L: 397 class182.directions[var37][var38 - 1] = 1; // L: 398 class182.distances[var37][var38 - 1] = var28; // L: 399 break; } if ((var25[var26 + var29][var27 - 1] & 19136911) != 0) { // L: 393 break; } ++var29; // L: 392 } } if (var38 < 128 - var9 && class182.directions[var37][var38 + 1] == 0 && (var25[var26][var27 + var9] & 19136824) == 0 && (var25[var9 + var26 - 1][var9 + var27] & 19136992) == 0) { // L: 401 402 403 404 var29 = 1; while (true) { if (var29 >= var9 - 1) { class182.bufferX[var40] = var17; // L: 408 class182.bufferY[var40] = var18 + 1; // L: 409 var40 = var40 + 1 & 4095; // L: 410 class182.directions[var37][var38 + 1] = 4; // L: 411 class182.distances[var37][var38 + 1] = var28; // L: 412 break; } if ((var25[var29 + var26][var9 + var27] & 19137016) != 0) { // L: 406 break; } ++var29; // L: 405 } } if (var37 > 0 && var38 > 0 && class182.directions[var37 - 1][var38 - 1] == 0 && (var25[var26 - 1][var27 - 1] & 19136782) == 0) { // L: 414 415 416 var29 = 1; while (true) { if (var29 >= var9) { class182.bufferX[var40] = var17 - 1; // L: 421 class182.bufferY[var40] = var18 - 1; // L: 422 var40 = var40 + 1 & 4095; // L: 423 class182.directions[var37 - 1][var38 - 1] = 3; // L: 424 class182.distances[var37 - 1][var38 - 1] = var28; // L: 425 break; } if ((var25[var26 - 1][var29 + (var27 - 1)] & 19136830) != 0 || (var25[var29 + (var26 - 1)][var27 - 1] & 19136911) != 0) { // L: 418 419 break; } ++var29; // L: 417 } } if (var37 < 128 - var9 && var38 > 0 && class182.directions[var37 + 1][var38 - 1] == 0 && (var25[var26 + var9][var27 - 1] & 19136899) == 0) { // L: 427 428 429 var29 = 1; while (true) { if (var29 >= var9) { class182.bufferX[var40] = var17 + 1; // L: 434 class182.bufferY[var40] = var18 - 1; // L: 435 var40 = var40 + 1 & 4095; // L: 436 class182.directions[var37 + 1][var38 - 1] = 9; // L: 437 class182.distances[var37 + 1][var38 - 1] = var28; // L: 438 break; } if ((var25[var26 + var9][var29 + (var27 - 1)] & 19136995) != 0 || (var25[var26 + var29][var27 - 1] & 19136911) != 0) { // L: 431 432 break; } ++var29; // L: 430 } } if (var37 > 0 && var38 < 128 - var9 && class182.directions[var37 - 1][var38 + 1] == 0 && (var25[var26 - 1][var9 + var27] & 19136824) == 0) { // L: 440 441 442 for (var29 = 1; var29 < var9; ++var29) { // L: 443 if ((var25[var26 - 1][var29 + var27] & 19136830) != 0 || (var25[var29 + (var26 - 1)][var27 + var9] & 19137016) != 0) { // L: 444 445 continue label647; } } class182.bufferX[var40] = var17 - 1; // L: 447 class182.bufferY[var40] = var18 + 1; // L: 448 var40 = var40 + 1 & 4095; // L: 449 class182.directions[var37 - 1][var38 + 1] = 6; // L: 450 class182.distances[var37 - 1][var38 + 1] = var28; // L: 451 } } while(var37 >= 128 - var9); // L: 453 } while(var38 >= 128 - var9); } while(class182.directions[var37 + 1][var38 + 1] != 0); // L: 454 } while((var25[var9 + var26][var9 + var27] & 19136992) != 0); // L: 455 for (var29 = 1; var29 < var9; ++var29) { // L: 456 if ((var25[var26 + var29][var9 + var27] & 19137016) != 0 || (var25[var9 + var26][var29 + var27] & 19136995) != 0) { // L: 457 458 continue label670; } } class182.bufferX[var40] = var17 + 1; // L: 460 class182.bufferY[var40] = var18 + 1; // L: 461 var40 = var40 + 1 & 4095; // L: 462 class182.directions[var37 + 1][var38 + 1] = 12; // L: 463 class182.distances[var37 + 1][var38 + 1] = var28; // L: 464 } } var35 = var36; // L: 471 } int var8; label727: { var16 = var5 - 64; // L: 473 var17 = var6 - 64; // L: 474 var18 = class182.field2115; // L: 475 var37 = class182.field2121; // L: 476 if (!var35) { // L: 477 var38 = Integer.MAX_VALUE; // L: 479 var21 = Integer.MAX_VALUE; // L: 480 byte var39 = 10; // L: 481 var40 = var11.approxDestinationX; // L: 482 var24 = var11.approxDestinationY; // L: 483 int var34 = var11.approxDestinationSizeX; // L: 484 var26 = var11.approxDestinationSizeY; // L: 485 for (var27 = var40 - var39; var27 <= var39 + var40; ++var27) { // L: 486 for (var28 = var24 - var39; var28 <= var39 + var24; ++var28) { // L: 487 var29 = var27 - var16; // L: 488 int var30 = var28 - var17; // L: 489 if (var29 >= 0 && var30 >= 0 && var29 < 128 && var30 < 128 && class182.distances[var29][var30] < 100) { // L: 490 491 int var31 = 0; // L: 492 if (var27 < var40) { // L: 493 var31 = var40 - var27; } else if (var27 > var40 + var34 - 1) { // L: 494 var31 = var27 - (var40 + var34 - 1); } int var32 = 0; // L: 495 if (var28 < var24) { // L: 496 var32 = var24 - var28; } else if (var28 > var26 + var24 - 1) { // L: 497 var32 = var28 - (var24 + var26 - 1); } int var33 = var31 * var31 + var32 * var32; // L: 498 if (var33 < var38 || var38 == var33 && class182.distances[var29][var30] < var21) { // L: 499 var38 = var33; // L: 500 var21 = class182.distances[var29][var30]; // L: 501 var18 = var27; // L: 502 var37 = var28; // L: 503 } } } } if (var38 == Integer.MAX_VALUE) { // L: 509 var8 = -1; // L: 510 break label727; } } if (var18 == var5 && var37 == var6) { // L: 519 var8 = 0; // L: 520 } else { var20 = 0; // L: 523 class182.bufferX[var20] = var18; // L: 526 var38 = var20 + 1; class182.bufferY[var20] = var37; // L: 527 for (var21 = var22 = class182.directions[var18 - var16][var37 - var17]; var18 != var5 || var37 != var6; var21 = class182.directions[var18 - var16][var37 - var17]) { // L: 528 529 539 if (var22 != var21) { // L: 530 var22 = var21; // L: 531 class182.bufferX[var38] = var18; // L: 532 class182.bufferY[var38++] = var37; // L: 533 } if ((var21 & 2) != 0) { // L: 535 ++var18; } else if ((var21 & 8) != 0) { // L: 536 --var18; } if ((var21 & 1) != 0) { // L: 537 ++var37; } else if ((var21 & 4) != 0) { // L: 538 --var37; } } var40 = 0; // L: 541 while (var38-- > 0) { // L: 542 var13[var40] = class182.bufferX[var38]; // L: 543 var14[var40++] = class182.bufferY[var38]; // L: 544 if (var40 >= var13.length) { // L: 545 break; } } var8 = var40; // L: 547 } } var15 = var8; // L: 549 if (var8 < 1) { // L: 550 break; } var16 = 0; // L: 551 while (true) { if (var16 >= var15 - 1) { break label686; } var4.method1315(Client.field920[var16], Client.field921[var16], (byte)2); ++var16; } } for (var16 = 0; var16 < 128; ++var16) { // L: 228 class182.directions[var15][var16] = 0; // L: 229 class182.distances[var15][var16] = 99999999; // L: 230 } ++var15; // L: 227 } } } this.method1315(var1, var2, var3); // L: 554 } else { this.resetPath(var1, var2); } } else { this.resetPath(var1, var2); } } // L: 556 @ObfuscatedName("u") @ObfuscatedSignature( descriptor = "(III)V", garbageValue = "273949660" ) @Export("resetPath") void resetPath(int var1, int var2) { super.pathLength = 0; // L: 559 super.field996 = 0; // L: 560 super.field963 = 0; // L: 561 super.pathX[0] = var1; // L: 562 super.pathY[0] = var2; // L: 563 int var3 = this.transformedSize(); // L: 564 super.x = var3 * 64 + super.pathX[0] * 128; // L: 565 super.y = super.pathY[0] * 128 + var3 * 64; // L: 566 } // L: 567 @ObfuscatedName("e") @ObfuscatedSignature( descriptor = "(IIBI)V", garbageValue = "-52932388" ) final void method1315(int var1, int var2, byte var3) { if (super.pathLength < 9) { // L: 570 ++super.pathLength; } for (int var4 = super.pathLength; var4 > 0; --var4) { // L: 571 super.pathX[var4] = super.pathX[var4 - 1]; // L: 572 super.pathY[var4] = super.pathY[var4 - 1]; // L: 573 super.pathTraversed[var4] = super.pathTraversed[var4 - 1]; // L: 574 } super.pathX[0] = var1; // L: 576 super.pathY[0] = var2; // L: 577 super.pathTraversed[0] = var3; // L: 578 } // L: 579 @ObfuscatedName("m") @ObfuscatedSignature( descriptor = "(I)Z", garbageValue = "1661589479" ) @Export("isVisible") final boolean isVisible() { return this.appearance != null; // L: 582 } @ObfuscatedName("z") @ObfuscatedSignature( descriptor = "(Lhe;IIII)V", garbageValue = "715521473" ) @Export("Widget_setKeyRate") static final void Widget_setKeyRate(Widget var0, int var1, int var2, int var3) { if (var0.field2679 == null) { // L: 928 throw new RuntimeException(); // L: 929 } else { var0.field2679[var1] = var2; // L: 931 var0.field2664[var1] = var3; // L: 932 } } // L: 933 @ObfuscatedName("ki") @ObfuscatedSignature( descriptor = "(Lhe;I)Lhe;", garbageValue = "1020097317" ) static Widget method1351(Widget var0) { Widget var2 = var0; // L: 10553 int var4 = FaceNormal.getWidgetFlags(var0); // L: 10556 int var3 = var4 >> 17 & 7; // L: 10558 int var5 = var3; // L: 10560 Widget var1; if (var3 == 0) { // L: 10561 var1 = null; // L: 10562 } else { int var6 = 0; while (true) { if (var6 >= var5) { var1 = var2; // L: 10572 break; } var2 = CollisionMap.getWidget(var2.parentId); // L: 10566 if (var2 == null) { // L: 10567 var1 = null; // L: 10568 break; // L: 10569 } ++var6; // L: 10565 } } Widget var7 = var1; // L: 10574 if (var1 == null) { // L: 10575 var7 = var0.parent; } return var7; // L: 10576 } }