Files
runelite/runescape-client/src/main/java/NPC.java
2020-03-26 14:17:06 +00:00

285 lines
7.4 KiB
Java

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("cd")
@Implements("NPC")
public final class NPC extends Actor {
@ObfuscatedName("di")
@ObfuscatedSignature(
signature = "Lih;"
)
@Export("archive13")
static Archive archive13;
@ObfuscatedName("x")
@ObfuscatedSignature(
signature = "Ljj;"
)
@Export("definition")
NPCDefinition definition;
NPC() {
}
@ObfuscatedName("x")
@ObfuscatedSignature(
signature = "(IBI)V",
garbageValue = "1357831491"
)
final void method2133(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 && SpotAnimationDefinition.SequenceDefinition_get(super.sequence).field3524 == 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("m")
@ObfuscatedSignature(
signature = "(IIZB)V",
garbageValue = "88"
)
final void method2136(int var1, int var2, boolean var3) {
if (super.sequence != -1 && SpotAnimationDefinition.SequenceDefinition_get(super.sequence).field3524 == 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.field1032 = 0;
super.field1031 = 0;
super.pathX[0] = var1;
super.pathY[0] = var2;
super.x = super.field976 * 64 + super.pathX[0] * 128;
super.y = super.field976 * 64 + super.pathY[0] * 128;
}
@ObfuscatedName("t")
@ObfuscatedSignature(
signature = "(I)Lel;",
garbageValue = "480835067"
)
@Export("getModel")
protected final Model getModel() {
if (this.definition == null) {
return null;
} else {
SequenceDefinition var1 = super.sequence != -1 && super.sequenceDelay == 0 ? SpotAnimationDefinition.SequenceDefinition_get(super.sequence) : null;
SequenceDefinition var2 = super.movementSequence != -1 && (super.readySequence != super.movementSequence || var1 == null) ? SpotAnimationDefinition.SequenceDefinition_get(super.movementSequence) : null;
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 = MouseHandler.SpotAnimationDefinition_get(super.spotAnimation).getModel(super.spotAnimationFrame);
if (var4 != null) {
var4.offsetBy(0, -super.field1033, 0);
Model[] var5 = new Model[]{var3, var4};
var3 = new Model(var5, 2);
}
}
if (this.definition.size == 1) {
var3.isSingleTile = true;
}
return var3;
}
}
}
@ObfuscatedName("n")
@ObfuscatedSignature(
signature = "(I)Z",
garbageValue = "116176402"
)
@Export("isVisible")
final boolean isVisible() {
return this.definition != null;
}
@ObfuscatedName("x")
public static final int method2146(double var0, double var2, double var4) {
double var6 = var4;
double var8 = var4;
double var10 = var4;
if (0.0D != var2) {
double var12;
if (var4 < 0.5D) {
var12 = (1.0D + var2) * var4;
} else {
var12 = var2 + var4 - var4 * var2;
}
double var14 = var4 * 2.0D - var12;
double var16 = var0 + 0.3333333333333333D;
if (var16 > 1.0D) {
--var16;
}
double var20 = var0 - 0.3333333333333333D;
if (var20 < 0.0D) {
++var20;
}
if (var16 * 6.0D < 1.0D) {
var6 = var14 + var16 * (var12 - var14) * 6.0D;
} else if (var16 * 2.0D < 1.0D) {
var6 = var12;
} else if (var16 * 3.0D < 2.0D) {
var6 = (var12 - var14) * (0.6666666666666666D - var16) * 6.0D + var14;
} else {
var6 = var14;
}
if (var0 * 6.0D < 1.0D) {
var8 = var14 + (var12 - var14) * 6.0D * var0;
} else if (var0 * 2.0D < 1.0D) {
var8 = var12;
} else if (3.0D * var0 < 2.0D) {
var8 = var14 + (var12 - var14) * (0.6666666666666666D - var0) * 6.0D;
} else {
var8 = var14;
}
if (var20 * 6.0D < 1.0D) {
var10 = var14 + 6.0D * (var12 - var14) * var20;
} else if (var20 * 2.0D < 1.0D) {
var10 = var12;
} else if (3.0D * var20 < 2.0D) {
var10 = (var12 - var14) * (0.6666666666666666D - var20) * 6.0D + var14;
} else {
var10 = var14;
}
}
int var22 = (int)(var6 * 256.0D);
int var13 = (int)(var8 * 256.0D);
int var23 = (int)(var10 * 256.0D);
int var15 = var23 + (var13 << 8) + (var22 << 16);
return var15;
}
@ObfuscatedName("h")
@ObfuscatedSignature(
signature = "(ILce;ZI)I",
garbageValue = "-1441905186"
)
static int method2147(int var0, Script var1, boolean var2) {
Widget var3 = var2 ? GrandExchangeOfferNameComparator.field115 : Interpreter.field1130;
if (var0 == ScriptOpcodes.CC_GETINVOBJECT) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.itemId;
return 1;
} else if (var0 == ScriptOpcodes.CC_GETINVCOUNT) {
if (var3.itemId != -1) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.itemQuantity;
} else {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = 0;
}
return 1;
} else if (var0 == ScriptOpcodes.CC_GETID) {
Interpreter.Interpreter_intStack[++Interpreter.Interpreter_intStackSize - 1] = var3.childIndex;
return 1;
} else {
return 2;
}
}
@ObfuscatedName("an")
@ObfuscatedSignature(
signature = "(ILce;ZB)I",
garbageValue = "-41"
)
static int method2145(int var0, Script var1, boolean var2) {
if (var0 == ScriptOpcodes.SOUND_SYNTH) {
Interpreter.Interpreter_intStackSize -= 3;
ModelData0.queueSoundEffect(Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize], Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1], Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 2]);
return 1;
} else if (var0 == ScriptOpcodes.SOUND_SONG) {
StudioGame.playSong(Interpreter.Interpreter_intStack[--Interpreter.Interpreter_intStackSize]);
return 1;
} else if (var0 == ScriptOpcodes.SOUND_JINGLE) {
Interpreter.Interpreter_intStackSize -= 2;
VerticalAlignment.playSoundJingle(Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize], Interpreter.Interpreter_intStack[Interpreter.Interpreter_intStackSize + 1]);
return 1;
} else {
return 2;
}
}
}