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; } } }