285 lines
7.4 KiB
Java
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;
|
|
}
|
|
}
|
|
}
|