forked from 2009Scape/Server
378 lines
14 KiB
Java
378 lines
14 KiB
Java
package org.runite.client;
|
|
|
|
import java.util.Objects;
|
|
|
|
final class NPC extends Class140_Sub4 {
|
|
|
|
static boolean aBoolean3975 = false;
|
|
static int[] npcSpawnCacheIndices;
|
|
static NPC[] npcs = new NPC['\u8000'];
|
|
static Class3_Sub27 aClass3_Sub27_1154;
|
|
NPCDefinition definition;
|
|
static AbstractSprite[] aAbstractSpriteArray3977;
|
|
static float aFloat3979;
|
|
static int[] anIntArray3986 = new int[32];
|
|
static int anInt3995;
|
|
static int[] anIntArray3997 = new int[]{19, 55, 38, 155, 255, 110, 137, 205, 76};
|
|
static int anInt4001;
|
|
|
|
static int method1984(int var0, int var1, int var2) {
|
|
try {
|
|
if(var1 == 38) {
|
|
int var3 = 57 * var2 + var0;
|
|
var3 ^= var3 << 13;
|
|
int var4 = Integer.MAX_VALUE & 1376312589 + (var3 * var3 * 15731 - -789221) * var3;
|
|
return (var4 & 133802063) >> 19;
|
|
} else {
|
|
return 88;
|
|
}
|
|
} catch (RuntimeException var5) {
|
|
throw ClientErrorException.clientError(var5, "km.S(" + var0 + ',' + var1 + ',' + var2 + ')');
|
|
}
|
|
}
|
|
|
|
static void renderNPCMasks(int var0) {
|
|
try {
|
|
int i;
|
|
for(i = 0; Unsorted.maskUpdateCount > i; ++i) {
|
|
int mask = Class21.maskUpdateIndexes[i];
|
|
NPC npc = npcs[mask];
|
|
int var4 = GraphicDefinition.incomingBuffer.readUnsignedByte();
|
|
if((var4 & 8) != 0) {
|
|
var4 += GraphicDefinition.incomingBuffer.readUnsignedByte() << 8;
|
|
}
|
|
|
|
int var5;
|
|
int var6;
|
|
//Ordinal: 0 Hit
|
|
if((64 & var4) != 0) {
|
|
var5 = GraphicDefinition.incomingBuffer.readUnsignedByte();
|
|
var6 = GraphicDefinition.incomingBuffer.readUnsignedNegativeByte();
|
|
npc.method1970(var6, Class44.anInt719, var5);
|
|
npc.anInt2781 = 300 + Class44.anInt719;
|
|
npc.anInt2775 = GraphicDefinition.incomingBuffer.readUnsigned128Byte();
|
|
}
|
|
|
|
//Ordinal: 1 Hit 2
|
|
if((var4 & 2) != 0) {
|
|
var5 = GraphicDefinition.incomingBuffer.readUnsignedNegativeByte();
|
|
var6 = GraphicDefinition.incomingBuffer.readUnsigned128Byte();
|
|
npc.method1970(var6, Class44.anInt719, var5);
|
|
}
|
|
|
|
//Ordinal: 2 Animation
|
|
if((var4 & 16) != 0) {
|
|
var5 = GraphicDefinition.incomingBuffer.readUnsignedShort();
|
|
var6 = GraphicDefinition.incomingBuffer.readUnsignedByte();
|
|
if('\uffff' == var5) {
|
|
var5 = -1;
|
|
}
|
|
|
|
Unsorted.method1772(var6, var5, 39, npc);
|
|
}
|
|
|
|
//Ordinal: 3 Face entity
|
|
if((var4 & 4) != 0) {
|
|
npc.anInt2772 = GraphicDefinition.incomingBuffer.readUnsignedShort128();
|
|
if(npc.anInt2772 == 65535) {
|
|
npc.anInt2772 = -1;
|
|
}
|
|
}
|
|
|
|
//Ordinal: 4 Graphic
|
|
if(0 != (var4 & 128)) {
|
|
var5 = GraphicDefinition.incomingBuffer.readUnsignedShort128();
|
|
if(var5 == '\uffff') {
|
|
var5 = -1;
|
|
}
|
|
|
|
var6 = GraphicDefinition.incomingBuffer.readIntLE();
|
|
boolean var7 = true;
|
|
if(var5 != -1 && npc.anInt2842 != -1 && SequenceDefinition.getAnimationDefinition(GraphicDefinition.getGraphicDefinition((byte)42, var5).anInt542).forcedPriority < SequenceDefinition.getAnimationDefinition(GraphicDefinition.getGraphicDefinition((byte)42, npc.anInt2842).anInt542).forcedPriority) {
|
|
var7 = false;
|
|
}
|
|
|
|
if(var7) {
|
|
npc.anInt2842 = var5;
|
|
npc.anInt2759 = ('\uffff' & var6) + Class44.anInt719;
|
|
npc.anInt2761 = 0;
|
|
npc.anInt2805 = 0;
|
|
npc.anInt2799 = var6 >> 16;
|
|
npc.anInt2826 = 1;
|
|
if(npc.anInt2759 > Class44.anInt719) {
|
|
npc.anInt2805 = -1;
|
|
}
|
|
|
|
if(npc.anInt2842 != -1 && Class44.anInt719 == npc.anInt2759) {
|
|
int var8 = GraphicDefinition.getGraphicDefinition((byte)42, npc.anInt2842).anInt542;
|
|
if(var8 != -1) {
|
|
SequenceDefinition var9 = SequenceDefinition.getAnimationDefinition(var8);
|
|
if(var9.frames != null) {
|
|
Unsorted.method1470(npc.anInt2829, var9, 183921384, npc.anInt2819, false, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Ordinal: 5 Transform
|
|
if((1 & var4) != 0) {
|
|
if(npc.definition.method1474()) {
|
|
Class3_Sub28_Sub8.method574(npc);
|
|
}
|
|
|
|
npc.setDefinitions(NPCDefinition.getNPCDefinition(GraphicDefinition.incomingBuffer.readUnsignedShortLE()));
|
|
npc.setSize(npc.definition.size, 2);
|
|
npc.renderAnimationId = npc.definition.renderAnimationId;
|
|
if(npc.definition.method1474()) {
|
|
Class70.method1286(npc.anIntArray2755[0], (ObjectDefinition)null, 0, npc, npc.anIntArray2767[0], WorldListCountry.localPlane, (Player)null);
|
|
}
|
|
}
|
|
|
|
//Ordinal: 6 Force chat
|
|
if((var4 & 32) != 0) {
|
|
npc.textSpoken = GraphicDefinition.incomingBuffer.readString();
|
|
npc.textCycle = 100;
|
|
}
|
|
|
|
//Ordinal: 7
|
|
if((256 & var4) != 0) {
|
|
var5 = GraphicDefinition.incomingBuffer.readUnsignedNegativeByte();
|
|
int[] var12 = new int[var5];
|
|
int[] var13 = new int[var5];
|
|
int[] var14 = new int[var5];
|
|
|
|
for(int var15 = 0; var5 > var15; ++var15) {
|
|
int var10 = GraphicDefinition.incomingBuffer.readUnsignedShortLE();
|
|
if(var10 == '\uffff') {
|
|
var10 = -1;
|
|
}
|
|
|
|
var12[var15] = var10;
|
|
var13[var15] = GraphicDefinition.incomingBuffer.readUnsigned128Byte();
|
|
var14[var15] = GraphicDefinition.incomingBuffer.readUnsignedShort();
|
|
}
|
|
|
|
Class3_Sub13_Sub22.method273(var14, npc, var13, var12);
|
|
}
|
|
|
|
//Ordinal: 8 Face location
|
|
if((var4 & 512) != 0) {
|
|
npc.anInt2786 = GraphicDefinition.incomingBuffer.readUnsignedShort128();
|
|
npc.anInt2762 = GraphicDefinition.incomingBuffer.readUnsignedShort();
|
|
}
|
|
}
|
|
|
|
} catch (RuntimeException var11) {
|
|
throw ClientErrorException.clientError(var11, "ta.M(" + var0 + ')');
|
|
}
|
|
}
|
|
|
|
protected final void finalize() {}
|
|
|
|
final int method1871() {
|
|
try {
|
|
return this.anInt2820;
|
|
} catch (RuntimeException var2) {
|
|
throw ClientErrorException.clientError(var2, "km.MA()");
|
|
}
|
|
}
|
|
|
|
static byte[] method1985(Object var1, boolean var2) {
|
|
try {
|
|
if(var1 == null) {
|
|
return null;
|
|
} else if(var1 instanceof byte[]) {
|
|
byte[] var5 = (byte[])((byte[])var1);
|
|
return var2?Class12.method873(var5):var5;
|
|
} else {
|
|
if(var1 instanceof Class144) {
|
|
Class144 var3 = (Class144)var1;
|
|
return var3.getBytes();
|
|
} else {
|
|
throw new IllegalArgumentException();
|
|
}
|
|
}
|
|
} catch (RuntimeException var4) {
|
|
throw ClientErrorException.clientError(var4, "km.Q(" + "{...}" + ',' + var2 + ')');
|
|
}
|
|
}
|
|
|
|
final void animate(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, long var9, int var11, Class127_Sub1 var12) {
|
|
try {
|
|
if(this.definition != null) {
|
|
SequenceDefinition var13 = this.anInt2771 != -1 && this.anInt2828 == 0 ? SequenceDefinition.getAnimationDefinition(this.anInt2771):null;
|
|
SequenceDefinition var14 = -1 != this.anInt2764 && (this.method1965().anInt368 != this.anInt2764 || var13 == null)? SequenceDefinition.getAnimationDefinition(this.anInt2764):null;
|
|
Model var15 = this.definition.method1476(this.aClass145Array2809, this.anInt2793, (byte)-116, this.anInt2813, this.anInt2776, this.anInt2760, this.anInt2832, var14, this.anInt2802, var13);
|
|
if(var15 != null) {
|
|
this.anInt2820 = var15.method1871();
|
|
NPCDefinition var16 = this.definition;
|
|
if(null != var16.childNPCs) {
|
|
var16 = var16.method1471((byte)-110);
|
|
}
|
|
|
|
Model var17;
|
|
if(Class140_Sub6.aBoolean2910 && Objects.requireNonNull(var16).aBoolean1249) {
|
|
var17 = Class140_Sub3.method1957(this.definition.aByte1287, this.aBoolean2810, null == var14?var13:var14, this.anInt2819, this.definition.aShort1256, this.anInt2829, this.definition.aShort1286, this.definition.size, var15, var1, null != var14?this.anInt2813:this.anInt2832, this.anInt2831, this.definition.aByte1275);
|
|
if(HDToolKit.highDetail) {
|
|
float var18 = HDToolKit.method1852();
|
|
float var19 = HDToolKit.method1839();
|
|
HDToolKit.depthBufferWritingDisabled();
|
|
HDToolKit.method1825(var18, -150.0F + var19);
|
|
var17.animate(0, var2, var3, var4, var5, var6, var7, var8, -1L, var11, this.aClass127_Sub1_2801);
|
|
HDToolKit.method1830();
|
|
HDToolKit.method1825(var18, var19);
|
|
} else {
|
|
var17.animate(0, var2, var3, var4, var5, var6, var7, var8, -1L, var11, this.aClass127_Sub1_2801);
|
|
}
|
|
}
|
|
|
|
this.method1971(var15, (byte)-111);
|
|
this.method1969((byte)115, var15, var1);
|
|
var17 = null;
|
|
if(this.anInt2842 != -1 && -1 != this.anInt2805) {
|
|
GraphicDefinition var21 = GraphicDefinition.getGraphicDefinition((byte)42, this.anInt2842);
|
|
var17 = var21.method966(this.anInt2826, this.anInt2805, this.anInt2761);
|
|
if(var17 != null) {
|
|
var17.method1897(0, -this.anInt2799, 0);
|
|
if(var21.aBoolean536) {
|
|
if(Class3_Sub13_Sub16.anInt3198 != 0) {
|
|
var17.method1896(Class3_Sub13_Sub16.anInt3198);
|
|
}
|
|
|
|
if(Class3_Sub28_Sub9.anInt3623 != 0) {
|
|
var17.method1886(Class3_Sub28_Sub9.anInt3623);
|
|
}
|
|
|
|
if(0 != Class3_Sub13_Sub9.anInt3111) {
|
|
var17.method1897(0, Class3_Sub13_Sub9.anInt3111, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(HDToolKit.highDetail) {
|
|
if(this.definition.size == 1) {
|
|
var15.aBoolean2699 = true;
|
|
}
|
|
|
|
var15.animate(var1, var2, var3, var4, var5, var6, var7, var8, var9, var11, this.aClass127_Sub1_2801);
|
|
if(var17 != null) {
|
|
if(this.definition.size == 1) {
|
|
var17.aBoolean2699 = true;
|
|
}
|
|
|
|
var17.animate(var1, var2, var3, var4, var5, var6, var7, var8, var9, var11, this.aClass127_Sub1_2801);
|
|
}
|
|
} else {
|
|
if(null != var17) {
|
|
var15 = ((Class140_Sub1_Sub2)var15).method1943(var17);
|
|
}
|
|
|
|
if(this.definition.size == 1) {
|
|
var15.aBoolean2699 = true;
|
|
}
|
|
|
|
var15.animate(var1, var2, var3, var4, var5, var6, var7, var8, var9, var11, this.aClass127_Sub1_2801);
|
|
}
|
|
|
|
}
|
|
}
|
|
} catch (RuntimeException var20) {
|
|
throw ClientErrorException.clientError(var20, "km.IA(" + var1 + ',' + var2 + ',' + var3 + ',' + var4 + ',' + var5 + ',' + var6 + ',' + var7 + ',' + var8 + ',' + var9 + ',' + var11 + ',' + (var12 != null?"{...}":"null") + ')');
|
|
}
|
|
}
|
|
|
|
final int getRenderAnimationId() {
|
|
try {
|
|
if(Class158.paramGameTypeID != 0 && this.definition.childNPCs != null) {
|
|
NPCDefinition var2 = this.definition.method1471((byte)21);
|
|
if(var2 != null && var2.renderAnimationId != -1) {
|
|
return var2.renderAnimationId;
|
|
}
|
|
}
|
|
|
|
return this.renderAnimationId;
|
|
} catch (RuntimeException var3) {
|
|
throw ClientErrorException.clientError(var3, "km.B(" + -1 + ')');
|
|
}
|
|
}
|
|
|
|
final void method1867(int var1, int var2, int var3, int var4, int var5) {
|
|
try {
|
|
} catch (RuntimeException var7) {
|
|
throw ClientErrorException.clientError(var7, "km.IB(" + var1 + ',' + var2 + ',' + var3 + ',' + var4 + ',' + var5 + ')');
|
|
}
|
|
}
|
|
|
|
final boolean hasDefinitions() {
|
|
try {
|
|
|
|
return null != this.definition;
|
|
} catch (RuntimeException var3) {
|
|
throw ClientErrorException.clientError(var3, "km.L(" + (byte) 17 + ')');
|
|
}
|
|
}
|
|
|
|
static boolean method1986(int var0) {
|
|
try {
|
|
if(var0 <= 22) {
|
|
method1984(-48, 88, 31);
|
|
}
|
|
|
|
return HDToolKit.highDetail || Unsorted.aBoolean3665;
|
|
} catch (RuntimeException var2) {
|
|
throw ClientErrorException.clientError(var2, "km.O(" + var0 + ')');
|
|
}
|
|
}
|
|
|
|
final void setDefinitions(NPCDefinition var2) {
|
|
try {
|
|
this.definition = var2;
|
|
} catch (RuntimeException var4) {
|
|
throw ClientErrorException.clientError(var4, "km.R(" + -1 + ',' + (var2 != null?"{...}":"null") + ')');
|
|
}
|
|
}
|
|
|
|
static boolean method1988() {
|
|
try {
|
|
try {
|
|
if(Class10.anInt154 == 2) {
|
|
if(aClass3_Sub27_1154 == null) {
|
|
aClass3_Sub27_1154 = Class3_Sub27.method517(Class101.aClass153_1423, Class3_Sub13_Sub39.anInt3463, Class132.anInt1741);
|
|
if(null == aClass3_Sub27_1154) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
if(Class3_Sub28_Sub4.aClass83_3579 == null) {
|
|
Class3_Sub28_Sub4.aClass83_3579 = new Class83(Class40.aClass153_679, Class3_Sub28_Sub20.aClass153_3786);
|
|
}
|
|
|
|
if(Class101.aClass3_Sub24_Sub4_1421.method470(aClass3_Sub27_1154, Class124.aClass153_1661, Class3_Sub28_Sub4.aClass83_3579)) {
|
|
Class101.aClass3_Sub24_Sub4_1421.method471();
|
|
Class101.aClass3_Sub24_Sub4_1421.method506(Class3_Sub13_Sub36.anInt3423);
|
|
Class101.aClass3_Sub24_Sub4_1421.method490(Unsorted.aBoolean2311, aClass3_Sub27_1154);
|
|
Class10.anInt154 = 0;
|
|
aClass3_Sub27_1154 = null;
|
|
Class3_Sub28_Sub4.aClass83_3579 = null;
|
|
Class101.aClass153_1423 = null;
|
|
return true;
|
|
}
|
|
}
|
|
} catch (Exception var2) {
|
|
var2.printStackTrace();
|
|
Class101.aClass3_Sub24_Sub4_1421.method505((byte)-128);
|
|
Class101.aClass153_1423 = null;
|
|
aClass3_Sub27_1154 = null;
|
|
Class10.anInt154 = 0;
|
|
Class3_Sub28_Sub4.aClass83_3579 = null;
|
|
}
|
|
|
|
return false;
|
|
} catch (RuntimeException var3) {
|
|
throw ClientErrorException.clientError(var3, "km.P(" + false + ')');
|
|
}
|
|
}
|
|
|
|
}
|