263 lines
6.0 KiB
Java
263 lines
6.0 KiB
Java
import java.io.IOException;
|
|
import net.runelite.mapping.Export;
|
|
import net.runelite.mapping.Implements;
|
|
import net.runelite.mapping.ObfuscatedName;
|
|
import net.runelite.mapping.ObfuscatedSignature;
|
|
|
|
@ObfuscatedName("cr")
|
|
@Implements("NPC")
|
|
public final class NPC extends Actor {
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
descriptor = "Lfq;"
|
|
)
|
|
@Export("definition")
|
|
NPCComposition definition;
|
|
|
|
NPC() {
|
|
}
|
|
|
|
@ObfuscatedName("n")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(IBI)V",
|
|
garbageValue = "-1998383743"
|
|
)
|
|
final void method2212(int var1, byte var2) {
|
|
int var3 = super.pathX[0];
|
|
int var4 = super.pathY[0];
|
|
if (var1 == 0) {
|
|
--var3;
|
|
++var4;
|
|
}
|
|
|
|
if (var1 == 1) {
|
|
++var4;
|
|
}
|
|
|
|
if (var1 == 2) {
|
|
++var3;
|
|
++var4;
|
|
}
|
|
|
|
if (var1 == 3) {
|
|
--var3;
|
|
}
|
|
|
|
if (var1 == 4) {
|
|
++var3;
|
|
}
|
|
|
|
if (var1 == 5) {
|
|
--var3;
|
|
--var4;
|
|
}
|
|
|
|
if (var1 == 6) {
|
|
--var4;
|
|
}
|
|
|
|
if (var1 == 7) {
|
|
++var3;
|
|
--var4;
|
|
}
|
|
|
|
if (super.sequence != -1 && class17.SequenceDefinition_get(super.sequence).field1960 == 1) {
|
|
super.sequence = -1;
|
|
}
|
|
|
|
if (super.pathLength < 9) {
|
|
++super.pathLength;
|
|
}
|
|
|
|
for (int var5 = super.pathLength; var5 > 0; --var5) {
|
|
super.pathX[var5] = super.pathX[var5 - 1];
|
|
super.pathY[var5] = super.pathY[var5 - 1];
|
|
super.pathTraversed[var5] = super.pathTraversed[var5 - 1];
|
|
}
|
|
|
|
super.pathX[0] = var3;
|
|
super.pathY[0] = var4;
|
|
super.pathTraversed[0] = var2;
|
|
}
|
|
|
|
@ObfuscatedName("c")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(B)Lhg;",
|
|
garbageValue = "18"
|
|
)
|
|
@Export("getModel")
|
|
protected final Model getModel() {
|
|
if (this.definition == null) {
|
|
return null;
|
|
} else {
|
|
SequenceDefinition var1 = super.sequence != -1 && super.sequenceDelay == 0 ? class17.SequenceDefinition_get(super.sequence) : null;
|
|
SequenceDefinition var2 = super.movementSequence == -1 || super.idleSequence == super.movementSequence && var1 != null ? null : class17.SequenceDefinition_get(super.movementSequence);
|
|
Model var3 = this.definition.getModel(var1, super.sequenceFrame, var2, super.movementFrame);
|
|
if (var3 == null) {
|
|
return null;
|
|
} else {
|
|
var3.calculateBoundsCylinder();
|
|
super.defaultHeight = var3.height;
|
|
if (super.spotAnimation != -1 && super.spotAnimationFrame != -1) {
|
|
Model var4 = TaskHandler.SpotAnimationDefinition_get(super.spotAnimation).getModel(super.spotAnimationFrame);
|
|
if (var4 != null) {
|
|
var4.offsetBy(0, -super.field1134, 0);
|
|
Model[] var5 = new Model[]{var3, var4};
|
|
var3 = new Model(var5, 2);
|
|
}
|
|
}
|
|
|
|
if (this.definition.size == 1) {
|
|
var3.isSingleTile = true;
|
|
}
|
|
|
|
return var3;
|
|
}
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("m")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(IIZI)V",
|
|
garbageValue = "866261786"
|
|
)
|
|
final void method2224(int var1, int var2, boolean var3) {
|
|
if (super.sequence != -1 && class17.SequenceDefinition_get(super.sequence).field1960 == 1) {
|
|
super.sequence = -1;
|
|
}
|
|
|
|
if (!var3) {
|
|
int var4 = var1 - super.pathX[0];
|
|
int var5 = var2 - super.pathY[0];
|
|
if (var4 >= -8 && var4 <= 8 && var5 >= -8 && var5 <= 8) {
|
|
if (super.pathLength < 9) {
|
|
++super.pathLength;
|
|
}
|
|
|
|
for (int var6 = super.pathLength; var6 > 0; --var6) {
|
|
super.pathX[var6] = super.pathX[var6 - 1];
|
|
super.pathY[var6] = super.pathY[var6 - 1];
|
|
super.pathTraversed[var6] = super.pathTraversed[var6 - 1];
|
|
}
|
|
|
|
super.pathX[0] = var1;
|
|
super.pathY[0] = var2;
|
|
super.pathTraversed[0] = 1;
|
|
return;
|
|
}
|
|
}
|
|
|
|
super.pathLength = 0;
|
|
super.field1152 = 0;
|
|
super.field1151 = 0;
|
|
super.pathX[0] = var1;
|
|
super.pathY[0] = var2;
|
|
super.x = super.field1137 * 64 + super.pathX[0] * 128;
|
|
super.y = super.field1137 * 64 + super.pathY[0] * 128;
|
|
}
|
|
|
|
@ObfuscatedName("q")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(I)Z",
|
|
garbageValue = "-1101417957"
|
|
)
|
|
@Export("isVisible")
|
|
final boolean isVisible() {
|
|
return this.definition != null;
|
|
}
|
|
|
|
@ObfuscatedName("h")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(III)Z",
|
|
garbageValue = "-351821257"
|
|
)
|
|
static final boolean method2225(int var0, int var1) {
|
|
ObjectComposition var2 = HitSplatDefinition.getObjectDefinition(var0);
|
|
if (var1 == 11) {
|
|
var1 = 10;
|
|
}
|
|
|
|
if (var1 >= 5 && var1 <= 8) {
|
|
var1 = 4;
|
|
}
|
|
|
|
return var2.method3128(var1);
|
|
}
|
|
|
|
@ObfuscatedName("hm")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(ZI)V",
|
|
garbageValue = "-22305198"
|
|
)
|
|
static final void method2221(boolean var0) {
|
|
class1.playPcmPlayers();
|
|
++Client.packetWriter.pendingWrites;
|
|
if (Client.packetWriter.pendingWrites >= 50 || var0) {
|
|
Client.packetWriter.pendingWrites = 0;
|
|
if (!Client.hadNetworkError && Client.packetWriter.getSocket() != null) {
|
|
PacketBufferNode var1 = FriendSystem.getPacketBufferNode(ClientPacket.field2704, Client.packetWriter.isaacCipher);
|
|
Client.packetWriter.addNode(var1);
|
|
|
|
try {
|
|
Client.packetWriter.flush();
|
|
} catch (IOException var3) {
|
|
Client.hadNetworkError = true;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
@ObfuscatedName("ha")
|
|
@ObfuscatedSignature(
|
|
descriptor = "(IIB)V",
|
|
garbageValue = "18"
|
|
)
|
|
static void method2214(int var0, int var1) {
|
|
int var2 = class11.fontBold12.stringWidth("Choose Option");
|
|
|
|
int var3;
|
|
for (var3 = 0; var3 < Client.menuOptionsCount; ++var3) {
|
|
Font var7 = class11.fontBold12;
|
|
String var8;
|
|
if (var3 < 0) {
|
|
var8 = "";
|
|
} else if (Client.menuTargets[var3].length() > 0) {
|
|
var8 = Client.menuActions[var3] + " " + Client.menuTargets[var3];
|
|
} else {
|
|
var8 = Client.menuActions[var3];
|
|
}
|
|
|
|
int var6 = var7.stringWidth(var8);
|
|
if (var6 > var2) {
|
|
var2 = var6;
|
|
}
|
|
}
|
|
|
|
var2 += 8;
|
|
var3 = Client.menuOptionsCount * 15 + 22;
|
|
int var4 = var0 - var2 / 2;
|
|
if (var4 + var2 > InvDefinition.canvasWidth) {
|
|
var4 = InvDefinition.canvasWidth - var2;
|
|
}
|
|
|
|
if (var4 < 0) {
|
|
var4 = 0;
|
|
}
|
|
|
|
int var5 = var1;
|
|
if (var3 + var1 > GameEngine.canvasHeight) {
|
|
var5 = GameEngine.canvasHeight - var3;
|
|
}
|
|
|
|
if (var5 < 0) {
|
|
var5 = 0;
|
|
}
|
|
|
|
WorldMapRegion.menuX = var4;
|
|
ApproximateRouteStrategy.menuY = var5;
|
|
VarcInt.menuWidth = var2;
|
|
WorldMapLabelSize.menuHeight = Client.menuOptionsCount * 15 + 22;
|
|
}
|
|
}
|