Files
runelite/runescape-client/src/main/java/Player.java
Owain van Brakel 3834b46aee project: Rev 204
2022-03-23 15:01:48 +01:00

636 lines
17 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("cw")
@Implements("Player")
public final class Player extends Actor {
@ObfuscatedName("nk")
@ObfuscatedSignature(
descriptor = "Lkn;"
)
@Export("mousedOverWidgetIf1")
static Widget mousedOverWidgetIf1;
@ObfuscatedName("v")
@ObfuscatedSignature(
descriptor = "Lqy;"
)
@Export("username")
Username username;
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "Lkq;"
)
@Export("appearance")
PlayerComposition appearance;
@ObfuscatedName("h")
@ObfuscatedGetter(
intValue = -200468809
)
@Export("headIconPk")
int headIconPk;
@ObfuscatedName("g")
@ObfuscatedGetter(
intValue = -360256483
)
@Export("headIconPrayer")
int headIconPrayer;
@ObfuscatedName("n")
@Export("actions")
String[] actions;
@ObfuscatedName("d")
@ObfuscatedGetter(
intValue = -686455869
)
@Export("combatLevel")
int combatLevel;
@ObfuscatedName("f")
@ObfuscatedGetter(
intValue = -387721833
)
@Export("skillLevel")
int skillLevel;
@ObfuscatedName("u")
@ObfuscatedGetter(
intValue = 1136876601
)
@Export("tileHeight")
int tileHeight;
@ObfuscatedName("r")
@ObfuscatedGetter(
intValue = -1542135077
)
@Export("animationCycleStart")
int animationCycleStart;
@ObfuscatedName("k")
@ObfuscatedGetter(
intValue = -1164612895
)
@Export("animationCycleEnd")
int animationCycleEnd;
@ObfuscatedName("x")
@ObfuscatedGetter(
intValue = -559631655
)
int field1084;
@ObfuscatedName("c")
@ObfuscatedGetter(
intValue = -1275397879
)
@Export("tileHeight2")
int tileHeight2;
@ObfuscatedName("j")
@ObfuscatedGetter(
intValue = 383945299
)
int field1095;
@ObfuscatedName("p")
@ObfuscatedSignature(
descriptor = "Lhx;"
)
@Export("model0")
Model model0;
@ObfuscatedName("s")
@ObfuscatedGetter(
intValue = -1705642801
)
@Export("minX")
int minX;
@ObfuscatedName("b")
@ObfuscatedGetter(
intValue = 1662300579
)
@Export("minY")
int minY;
@ObfuscatedName("w")
@ObfuscatedGetter(
intValue = -1765502875
)
@Export("maxX")
int maxX;
@ObfuscatedName("a")
@ObfuscatedGetter(
intValue = 1355026989
)
@Export("maxY")
int maxY;
@ObfuscatedName("m")
@Export("isUnanimated")
boolean isUnanimated;
@ObfuscatedName("q")
@ObfuscatedGetter(
intValue = -428995767
)
@Export("team")
int team;
@ObfuscatedName("y")
@Export("isHidden")
boolean isHidden;
@ObfuscatedName("z")
@ObfuscatedGetter(
intValue = 1050389241
)
@Export("plane")
int plane;
@ObfuscatedName("e")
@ObfuscatedGetter(
intValue = -422585593
)
@Export("index")
int index;
@ObfuscatedName("t")
@ObfuscatedSignature(
descriptor = "Lni;"
)
@Export("isFriendTriBool")
TriBool isFriendTriBool;
@ObfuscatedName("i")
@ObfuscatedSignature(
descriptor = "Lni;"
)
@Export("isInFriendsChat")
TriBool isInFriendsChat;
@ObfuscatedName("ac")
@ObfuscatedSignature(
descriptor = "Lni;"
)
@Export("isInClanChat")
TriBool isInClanChat;
@ObfuscatedName("ax")
boolean field1109;
@ObfuscatedName("ay")
@ObfuscatedGetter(
intValue = 300036197
)
@Export("tileX")
int tileX;
@ObfuscatedName("au")
@ObfuscatedGetter(
intValue = -1550758311
)
@Export("tileY")
int tileY;
Player() {
this.headIconPk = -1; // L: 20
this.headIconPrayer = -1; // L: 21
this.actions = new String[3]; // L: 23
for (int var1 = 0; var1 < 3; ++var1) { // L: 26
this.actions[var1] = "";
}
this.combatLevel = 0; // L: 29
this.skillLevel = 0; // L: 30
this.animationCycleStart = 0; // L: 32
this.animationCycleEnd = 0; // L: 33
this.isUnanimated = false; // L: 42
this.team = 0; // L: 43
this.isHidden = false; // L: 44
this.isFriendTriBool = TriBool.TriBool_unknown; // L: 47
this.isInFriendsChat = TriBool.TriBool_unknown; // L: 48
this.isInClanChat = TriBool.TriBool_unknown; // L: 49
this.field1109 = false; // L: 50
} // L: 54
@ObfuscatedName("v")
@ObfuscatedSignature(
descriptor = "(Lpd;I)V",
garbageValue = "57802936"
)
@Export("read")
final void read(Buffer var1) {
var1.offset = 0; // L: 57
int var2 = var1.readUnsignedByte(); // L: 58
this.headIconPk = var1.readByte(); // L: 59
this.headIconPrayer = var1.readByte(); // L: 60
int var3 = -1; // L: 61
this.team = 0; // L: 62
int[] var4 = new int[12]; // L: 63
int var6;
int var7;
int var8;
for (int var5 = 0; var5 < 12; ++var5) { // L: 64
var6 = var1.readUnsignedByte(); // L: 65
if (var6 == 0) { // L: 66
var4[var5] = 0; // L: 67
} else {
var7 = var1.readUnsignedByte(); // L: 70
var4[var5] = var7 + (var6 << 8); // L: 71
if (var5 == 0 && var4[0] == 65535) { // L: 72
var3 = var1.readUnsignedShort(); // L: 73
break;
}
if (var4[var5] >= 512) { // L: 76
var8 = class67.ItemDefinition_get(var4[var5] - 512).team; // L: 77
if (var8 != 0) { // L: 78
this.team = var8;
}
}
}
}
int[] var24 = new int[5]; // L: 81
for (var6 = 0; var6 < 5; ++var6) { // L: 82
var7 = var1.readUnsignedByte(); // L: 83
if (var7 < 0 || var7 >= class20.field102[var6].length) { // L: 84
var7 = 0;
}
var24[var6] = var7; // L: 85
}
super.idleSequence = var1.readUnsignedShort(); // L: 87
if (super.idleSequence == 65535) { // L: 88
super.idleSequence = -1;
}
super.turnLeftSequence = var1.readUnsignedShort(); // L: 89
if (super.turnLeftSequence == 65535) { // L: 90
super.turnLeftSequence = -1;
}
super.turnRightSequence = super.turnLeftSequence; // L: 91
super.walkSequence = var1.readUnsignedShort(); // L: 92
if (super.walkSequence == 65535) { // L: 93
super.walkSequence = -1;
}
super.walkBackSequence = var1.readUnsignedShort(); // L: 94
if (super.walkBackSequence == 65535) { // L: 95
super.walkBackSequence = -1;
}
super.walkLeftSequence = var1.readUnsignedShort(); // L: 96
if (super.walkLeftSequence == 65535) { // L: 97
super.walkLeftSequence = -1;
}
super.walkRightSequence = var1.readUnsignedShort(); // L: 98
if (super.walkRightSequence == 65535) { // L: 99
super.walkRightSequence = -1;
}
super.runSequence = var1.readUnsignedShort(); // L: 100
if (super.runSequence == 65535) { // L: 101
super.runSequence = -1;
}
this.username = new Username(var1.readStringCp1252NullTerminated(), class83.loginType); // L: 102
this.clearIsFriend(); // L: 103
this.clearIsInFriendsChat(); // L: 104
this.method2143(); // L: 105
if (this == class19.localPlayer) { // L: 106
RunException.localPlayerName = this.username.getName();
}
this.combatLevel = var1.readUnsignedByte(); // L: 107
this.skillLevel = var1.readUnsignedShort(); // L: 108
this.isHidden = var1.readUnsignedByte() == 1; // L: 109
if (Client.gameBuild == 0 && Client.staffModLevel >= 2) { // L: 110
this.isHidden = false;
}
class168[] var25 = null; // L: 111
boolean var26 = false; // L: 112
if (var1.offset < var1.array.length) { // L: 113
var8 = var1.readUnsignedShort(); // L: 114
var26 = (var8 >> 15 & 1) == 1; // L: 115
if (var8 > 0 && var8 != 32768) { // L: 116
var25 = new class168[12]; // L: 117
for (int var9 = 0; var9 < 12; ++var9) { // L: 118
int var10 = var8 >> 12 - var9 & 1; // L: 119
if (var10 == 1) { // L: 120
int var14 = var4[var9] - 512; // L: 124
int var15 = var1.readUnsignedByte(); // L: 126
boolean var16 = (var15 & 1) != 0; // L: 127
boolean var17 = (var15 & 2) != 0; // L: 128
class168 var18 = new class168(var14); // L: 129
int var19;
int[] var20;
boolean var21;
int var22;
short var23;
if (var16) { // L: 130
var19 = var1.readUnsignedByte(); // L: 131
var20 = new int[]{var19 & 15, var19 >> 4 & 15}; // L: 132 133 134
var21 = var18.field1804 != null && var20.length == var18.field1804.length; // L: 135
for (var22 = 0; var22 < 2; ++var22) { // L: 136
if (var20[var22] != 15) { // L: 137
var23 = (short)var1.readUnsignedShort(); // L: 138
if (var21) { // L: 139
var18.field1804[var20[var22]] = var23; // L: 140
}
}
}
}
if (var17) { // L: 145
var19 = var1.readUnsignedByte(); // L: 146
var20 = new int[]{var19 & 15, var19 >> 4 & 15}; // L: 147 148 149
var21 = var18.field1805 != null && var20.length == var18.field1805.length; // L: 150
for (var22 = 0; var22 < 2; ++var22) { // L: 151
if (var20[var22] != 15) { // L: 152
var23 = (short)var1.readUnsignedShort(); // L: 153
if (var21) { // L: 154
var18.field1805[var20[var22]] = var23; // L: 155
}
}
}
}
var25[var9] = var18; // L: 162
}
}
}
}
if (this.appearance == null) { // L: 167
this.appearance = new PlayerComposition();
}
this.appearance.method5604(var4, var25, var26, var24, var2 == 1, var3); // L: 168
} // L: 169
@ObfuscatedName("o")
@ObfuscatedSignature(
descriptor = "(B)Lhx;",
garbageValue = "63"
)
@Export("getModel")
protected final Model getModel() {
if (this.appearance == null) { // L: 232
return null;
} else {
SequenceDefinition var1 = super.sequence != -1 && super.sequenceDelay == 0 ? ItemContainer.SequenceDefinition_get(super.sequence) : null; // L: 233
SequenceDefinition var2 = super.movementSequence == -1 || this.isUnanimated || super.movementSequence == super.idleSequence && var1 != null ? null : ItemContainer.SequenceDefinition_get(super.movementSequence); // L: 234
Model var3 = this.appearance.getModel(var1, super.sequenceFrame, var2, super.movementFrame); // L: 235
if (var3 == null) { // L: 236
return null;
} else {
var3.calculateBoundsCylinder(); // L: 237
super.defaultHeight = var3.height; // L: 238
Model var4;
Model[] var5;
if (!this.isUnanimated && super.spotAnimation != -1 && super.spotAnimationFrame != -1) { // L: 239
var4 = class6.SpotAnimationDefinition_get(super.spotAnimation).getModel(super.spotAnimationFrame); // L: 240
if (var4 != null) { // L: 241
var4.offsetBy(0, -super.spotAnimationHeight, 0); // L: 242
var5 = new Model[]{var3, var4}; // L: 243
var3 = new Model(var5, 2); // L: 244
}
}
if (!this.isUnanimated && this.model0 != null) { // L: 247
if (Client.cycle >= this.animationCycleEnd) { // L: 248
this.model0 = null;
}
if (Client.cycle >= this.animationCycleStart && Client.cycle < this.animationCycleEnd) { // L: 249
var4 = this.model0; // L: 250
var4.offsetBy(this.field1084 - super.x, this.tileHeight2 - this.tileHeight, this.field1095 - super.y); // L: 251
if (super.orientation == 512) { // L: 252
var4.rotateY90Ccw(); // L: 253
var4.rotateY90Ccw(); // L: 254
var4.rotateY90Ccw(); // L: 255
} else if (super.orientation == 1024) { // L: 257
var4.rotateY90Ccw(); // L: 258
var4.rotateY90Ccw(); // L: 259
} else if (super.orientation == 1536) { // L: 261
var4.rotateY90Ccw();
}
var5 = new Model[]{var3, var4}; // L: 262
var3 = new Model(var5, 2); // L: 263
if (super.orientation == 512) { // L: 264
var4.rotateY90Ccw();
} else if (super.orientation == 1024) { // L: 265
var4.rotateY90Ccw(); // L: 266
var4.rotateY90Ccw(); // L: 267
} else if (super.orientation == 1536) { // L: 269
var4.rotateY90Ccw(); // L: 270
var4.rotateY90Ccw(); // L: 271
var4.rotateY90Ccw(); // L: 272
}
var4.offsetBy(super.x - this.field1084, this.tileHeight - this.tileHeight2, super.y - this.field1095); // L: 274
}
}
var3.isSingleTile = true; // L: 277
if (super.field1189 != 0 && Client.cycle >= super.field1133 && Client.cycle < super.field1185) { // L: 278
var3.overrideHue = super.field1146; // L: 279
var3.overrideSaturation = super.field1187; // L: 280
var3.overrideLuminance = super.field1188; // L: 281
var3.overrideAmount = super.field1189; // L: 282
} else {
var3.overrideAmount = 0; // L: 285
}
return var3; // L: 287
}
}
}
@ObfuscatedName("h")
@ObfuscatedSignature(
descriptor = "(I)Z",
garbageValue = "-1604625207"
)
@Export("isFriend")
boolean isFriend() {
if (this.isFriendTriBool == TriBool.TriBool_unknown) { // L: 172
this.checkIsFriend(); // L: 173
}
return this.isFriendTriBool == TriBool.TriBool_true; // L: 175
}
@ObfuscatedName("n")
@ObfuscatedSignature(
descriptor = "(B)V",
garbageValue = "1"
)
@Export("clearIsFriend")
void clearIsFriend() {
this.isFriendTriBool = TriBool.TriBool_unknown; // L: 179
} // L: 180
@ObfuscatedName("d")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "849201143"
)
@Export("checkIsFriend")
void checkIsFriend() {
this.isFriendTriBool = class155.friendSystem.isFriendAndHasWorld(this.username) ? TriBool.TriBool_true : TriBool.TriBool_false; // L: 183
} // L: 184
@ObfuscatedName("f")
@ObfuscatedSignature(
descriptor = "(I)Z",
garbageValue = "1692885288"
)
@Export("isFriendsChatMember")
boolean isFriendsChatMember() {
if (this.isInFriendsChat == TriBool.TriBool_unknown) { // L: 187
this.updateIsInFriendsChat(); // L: 188
}
return this.isInFriendsChat == TriBool.TriBool_true; // L: 190
}
@ObfuscatedName("u")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-2145347544"
)
@Export("clearIsInFriendsChat")
void clearIsInFriendsChat() {
this.isInFriendsChat = TriBool.TriBool_unknown; // L: 194
} // L: 195
@ObfuscatedName("r")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-1562539797"
)
@Export("updateIsInFriendsChat")
void updateIsInFriendsChat() {
this.isInFriendsChat = class230.friendsChat != null && class230.friendsChat.contains(this.username) ? TriBool.TriBool_true : TriBool.TriBool_false; // L: 198
} // L: 199
@ObfuscatedName("k")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "947633407"
)
@Export("updateIsInClanChat")
void updateIsInClanChat() {
for (int var1 = 0; var1 < 3; ++var1) { // L: 202
if (Client.currentClanSettings[var1] != null && Client.currentClanSettings[var1].method2979(this.username.getName()) != -1 && var1 != 2) { // L: 203 204
this.isInClanChat = TriBool.TriBool_true; // L: 205
return; // L: 206
}
}
this.isInClanChat = TriBool.TriBool_false; // L: 210
} // L: 211
@ObfuscatedName("x")
@ObfuscatedSignature(
descriptor = "(I)V",
garbageValue = "-1330730743"
)
void method2143() {
this.isInClanChat = TriBool.TriBool_unknown; // L: 214
} // L: 215
@ObfuscatedName("c")
@ObfuscatedSignature(
descriptor = "(I)Z",
garbageValue = "-1825758047"
)
@Export("isClanMember")
boolean isClanMember() {
if (this.isInClanChat == TriBool.TriBool_unknown) { // L: 218
this.updateIsInClanChat(); // L: 219
}
return this.isInClanChat == TriBool.TriBool_true; // L: 221
}
@ObfuscatedName("j")
@ObfuscatedSignature(
descriptor = "(I)I",
garbageValue = "1904316565"
)
@Export("transformedSize")
int transformedSize() {
return this.appearance != null && this.appearance.npcTransformId != -1 ? class9.getNpcDefinition(this.appearance.npcTransformId).size : 1; // L: 225 226 228
}
@ObfuscatedName("p")
@ObfuscatedSignature(
descriptor = "(IILgv;I)V",
garbageValue = "-2026849446"
)
final void method2144(int var1, int var2, class193 var3) {
if (super.sequence != -1 && ItemContainer.SequenceDefinition_get(super.sequence).field2171 == 1) { // L: 291
super.sequence = -1;
}
super.field1160 = -1; // L: 292
if (var1 >= 0 && var1 < 104 && var2 >= 0 && var2 < 104) { // L: 293
if (super.pathX[0] >= 0 && super.pathX[0] < 104 && super.pathY[0] >= 0 && super.pathY[0] < 104) { // L: 294
if (var3 == class193.field2191) {
GraphicsObject.method1860(this, var1, var2, class193.field2191); // L: 296
}
this.method2149(var1, var2, var3); // L: 297
} else {
this.resetPath(var1, var2);
}
} else {
this.resetPath(var1, var2);
}
} // L: 299
@ObfuscatedName("s")
@ObfuscatedSignature(
descriptor = "(III)V",
garbageValue = "-330540951"
)
@Export("resetPath")
void resetPath(int var1, int var2) {
super.pathLength = 0; // L: 302
super.field1134 = 0; // L: 303
super.field1197 = 0; // L: 304
super.pathX[0] = var1; // L: 305
super.pathY[0] = var2; // L: 306
int var3 = this.transformedSize(); // L: 307
super.x = var3 * 64 + super.pathX[0] * 128; // L: 308
super.y = var3 * 64 + super.pathY[0] * 128; // L: 309
} // L: 310
@ObfuscatedName("b")
@ObfuscatedSignature(
descriptor = "(IILgv;B)V",
garbageValue = "-40"
)
final void method2149(int var1, int var2, class193 var3) {
if (super.pathLength < 9) { // L: 313
++super.pathLength;
}
for (int var4 = super.pathLength; var4 > 0; --var4) { // L: 314
super.pathX[var4] = super.pathX[var4 - 1]; // L: 315
super.pathY[var4] = super.pathY[var4 - 1]; // L: 316
super.pathTraversed[var4] = super.pathTraversed[var4 - 1]; // L: 317
}
super.pathX[0] = var1; // L: 319
super.pathY[0] = var2; // L: 320
super.pathTraversed[0] = var3; // L: 321
} // L: 322
@ObfuscatedName("w")
@ObfuscatedSignature(
descriptor = "(I)Z",
garbageValue = "-450224469"
)
@Export("isVisible")
final boolean isVisible() {
return this.appearance != null; // L: 325
}
}