package net.scapeemulator.cache.def;
import java.nio.ByteBuffer;
import net.scapeemulator.cache.util.ByteBufferUtils;
/**
* A class that can decode and encode model definitions from the cache.
*
* @author Davidi2
*/
public final class ModelDefinition {
public static int[] hsl2rgb;
static {
int[] out = hsl2rgb = new int[65536];
double d = 0.7D;
int i = 0;
for (int i1 = 0; i1 != 512; ++i1) {
float f = ((float) (i1 >> 3) / 64.0F + 0.0078125F) * 360.0F;
float f1 = 0.0625F + (float) (0x7 & i1) / 8.0F;
for (int i2 = 0; i2 != 128; ++i2) {
float f2 = (float) i2 / 128.0F;
float f3 = 0.0F;
float f4 = 0.0F;
float f5 = 0.0F;
float f6 = f / 60.0F;
int i3 = (int) f6;
int i4 = i3 % 6;
float f7 = f6 - (float) i3;
float f8 = f2 * (-f1 + 1.0F);
float f9 = f2 * (-(f7 * f1) + 1.0F);
float f10 = (1.0F - f1 * (-f7 + 1.0F)) * f2;
if (i4 == 0) {
f3 = f2;
f5 = f8;
f4 = f10;
} else if (i4 == 1) {
f5 = f8;
f3 = f9;
f4 = f2;
} else if (i4 == 2) {
f3 = f8;
f4 = f2;
f5 = f10;
} else if (i4 == 3) {
f4 = f9;
f3 = f8;
f5 = f2;
} else if (i4 == 4) {
f5 = f2;
f3 = f10;
f4 = f8;
} else {
f4 = f8;
f5 = f9;
f3 = f2;
}
out[i++] = ((int) ((float) Math.pow((double) f3, d) * 256.0F) << 16) | ((int) ((float) Math.pow((double) f4, d) * 256.0F) << 8) | (int) ((float) Math.pow((double) f5, d) * 256.0F);
}
}
}
private int width;
private int height;
private int depth;
byte[] triangleAlphas;
private short aShort2844;
byte[] particleLifespanX;
short[] texTrianglesB;
int[] triangleSkins;
byte aByte2848 = 0;
int triangleCount = 0;
private short aShort2850;
short[] particleDirectionZ;
byte[] texturePrimaryColor;
private boolean isNewFormat = false;
private short aShort2854;
short[] aShortArray2855;
int[][] anIntArrayArray2856;
byte[] textureRenderTypes;
short[] faceTextures;
byte[] faceRenderTypes;
int[] vertexSkins;
// private static int[] anIntArray2861 = new int[10000];
int texTriangleCount;
// private static int[] anIntArray2863 = Class51.anIntArray851;
int[] trianglesC;
int[] trianglesA;
byte[] textureCoords;
byte[] particleLifespanY;
// private static int anInt2868 = 0;
byte[] textureSecondaryColor;
short[] triangleColors;
// private static int[] anIntArray2871 = Class51.anIntArray840;
// Class50[] aClass50Array2872;
private short aShort2873;
private short aShort2874;
private static int[] anIntArray2875 = new int[10000];
short aShort2876;
byte[] particleLifespanZ;
int[] trianglesB;
short aShort2879;
private short aShort2880;
int[] verticesY;
short[] particleDirectionY;
// Class50[] aClass50Array2883;
short[] texTrianglesA;
int[] verticesX;
// Class120[] aClass120Array2886;
int vertexCount = 0;
short[] particleDirectionX;
byte[] trianglePriorities;
int[][] anIntArrayArray2890;
short[] texTrianglesC;
int[] verticesZ;
short[] aShortArray2893;
public static ModelDefinition decode(ByteBuffer buffer) {
buffer.position(buffer.limit() - 2);
boolean newFormat = buffer.get() == -1 && buffer.get() == -1;
buffer.position(0);
if (newFormat) {
return decodeNewFormat(buffer);
} else {
return decodeOldFormat(buffer);
}
}
private static ModelDefinition decodeNewFormat(ByteBuffer data) {
ModelDefinition def = new ModelDefinition();
def.isNewFormat = true;
ByteBuffer var2 = data.asReadOnlyBuffer();
ByteBuffer var3 = data.asReadOnlyBuffer();
ByteBuffer var4 = data.asReadOnlyBuffer();
ByteBuffer var5 = data.asReadOnlyBuffer();
ByteBuffer var6 = data.asReadOnlyBuffer();
ByteBuffer var7 = data.asReadOnlyBuffer();
ByteBuffer var8 = data.asReadOnlyBuffer();
var2.position(var2.limit() - 23);
int vertexCount = var2.getShort() & 0xFFFF;
int triangleCount = var2.getShort() & 0xFFFF;
int texTriangleCount = var2.get();
int flag = var2.get() & 0xFF;
boolean fillAttributeFlag = (flag & 1) == 1;
boolean flag2 = (flag & 2) == 2;
int var15 = var2.get() & 0xFF;
int var16 = var2.get() & 0xFF;
int var17 = var2.get() & 0xFF;
int var18 = var2.get() & 0xFF;
int var19 = var2.get() & 0xFF;
int var20 = var2.getShort() & 0xFFFF;
int var21 = var2.getShort() & 0xFFFF;
int var22 = var2.getShort() & 0xFFFF;
int var23 = var2.getShort() & 0xFFFF;
int var24 = var2.getShort() & 0xFFFF;
int textureAmount = 0;
int particleAmount = 0;
int particleColors = 0;
int var28;
if (texTriangleCount > 0) {
def.textureRenderTypes = new byte[texTriangleCount];
var2.position(0);
for (var28 = 0; var28 < texTriangleCount; ++var28) {
byte type = def.textureRenderTypes[var28] = var2.get();
if (type == 0) {
++textureAmount;
}
if (type >= 1 && type <= 3) {
++particleAmount;
}
if (type == 2) {
++particleColors;
}
}
}
var28 = texTriangleCount + vertexCount;
int var30 = var28;
if (fillAttributeFlag) {
var28 += triangleCount;
}
int var31 = var28;
var28 += triangleCount;
int var32 = var28;
if (var15 == 255) {
var28 += triangleCount;
}
int var33 = var28;
if (var17 == 1) {
var28 += triangleCount;
}
int var34 = var28;
if (var19 == 1) {
var28 += vertexCount;
}
int var35 = var28;
if (var16 == 1) {
var28 += triangleCount;
}
int var36 = var28;
var28 += var23;
int var37 = var28;
if (var18 == 1) {
var28 += triangleCount * 2;
}
int var38 = var28;
var28 += var24;
int var39 = var28;
var28 += triangleCount * 2;
int var40 = var28;
var28 += var20;
int var41 = var28;
var28 += var21;
int var42 = var28;
var28 += var22;
int var43 = var28;
var28 += textureAmount * 6;
int var44 = var28;
var28 += particleAmount * 6;
int var45 = var28;
var28 += particleAmount * 6;
int var46 = var28;
var28 += particleAmount;
int var47 = var28;
var28 += particleAmount;
int var48 = var28;
var28 += particleAmount + particleColors * 2;
def.vertexCount = vertexCount;
def.triangleCount = triangleCount;
def.texTriangleCount = texTriangleCount;
def.verticesX = new int[vertexCount];
def.verticesY = new int[vertexCount];
def.verticesZ = new int[vertexCount];
def.trianglesA = new int[triangleCount];
def.trianglesB = new int[triangleCount];
def.trianglesC = new int[triangleCount];
if (var19 == 1) {
def.vertexSkins = new int[vertexCount];
}
if (fillAttributeFlag) {
def.faceRenderTypes = new byte[triangleCount];
}
if (var15 == 255) {
def.trianglePriorities = new byte[triangleCount];
} else {
def.aByte2848 = (byte) var15;
}
if (var16 == 1) {
def.triangleAlphas = new byte[triangleCount];
}
if (var17 == 1) {
def.triangleSkins = new int[triangleCount];
}
if (var18 == 1) {
def.faceTextures = new short[triangleCount];
}
if (var18 == 1 && texTriangleCount > 0) {
def.textureCoords = new byte[triangleCount];
}
def.triangleColors = new short[triangleCount];
if (texTriangleCount > 0) {
def.texTrianglesA = new short[texTriangleCount];
def.texTrianglesB = new short[texTriangleCount];
def.texTrianglesC = new short[texTriangleCount];
if (particleAmount > 0) {
def.particleDirectionX = new short[particleAmount];
def.particleDirectionY = new short[particleAmount];
def.particleDirectionZ = new short[particleAmount];
def.particleLifespanX = new byte[particleAmount];
def.particleLifespanY = new byte[particleAmount];
def.particleLifespanZ = new byte[particleAmount];
}
if (particleColors > 0) {
def.texturePrimaryColor = new byte[particleColors];
def.textureSecondaryColor = new byte[particleColors];
}
}
var2.position(texTriangleCount);
var3.position(var40);
var4.position(var41);
var5.position(var42);
var6.position(var34);
int var50 = 0;
int var51 = 0;
int var52 = 0;
int var55;
int var54;
int var53;
int var57;
int var56;
for (var53 = 0; var53 < vertexCount; ++var53) {
var54 = var2.get() & 0xFF;
var55 = 0;
if ((var54 & 1) != 0) {
var55 = ByteBufferUtils.method797(var3);
}
var56 = 0;
if ((var54 & 2) != 0) {
var56 = ByteBufferUtils.method797(var4);
}
var57 = 0;
if ((var54 & 4) != 0) {
var57 = ByteBufferUtils.method797(var5);
}
def.verticesX[var53] = var50 + var55;
def.verticesY[var53] = var51 + var56;
def.verticesZ[var53] = var52 + var57;
var50 = def.verticesX[var53];
var51 = def.verticesY[var53];
var52 = def.verticesZ[var53];
if (var19 == 1) {
def.vertexSkins[var53] = var6.get() & 0xFF;
}
}
var2.position(var39);
var3.position(var30);
var4.position(var32);
var5.position(var35);
var6.position(var33);
var7.position(var37);
var8.position(var38);
for (var53 = 0; var53 < triangleCount; ++var53) {
def.triangleColors[var53] = (short) (var2.getShort() & 0xFFFF);
if (fillAttributeFlag) {
def.faceRenderTypes[var53] = var3.get();
}
if (var15 == 255) {
def.trianglePriorities[var53] = var4.get();
}
if (var16 == 1) {
def.triangleAlphas[var53] = var5.get();
}
if (var17 == 1) {
def.triangleSkins[var53] = var6.get() & 0xFF;
}
if (var18 == 1) {
def.faceTextures[var53] = (short) (var7.getShort() & 0xFFFF - 1);
}
if (def.textureCoords != null) {
if (def.faceTextures[var53] != -1) {
def.textureCoords[var53] = (byte) (var8.get() & 0xFF - 1);
} else {
def.textureCoords[var53] = -1;
}
}
}
var2.position(var36);
var3.position(var31);
var53 = 0;
var54 = 0;
var55 = 0;
var56 = 0;
int var58;
for (var57 = 0; var57 < triangleCount; ++var57) {
var58 = var3.get() & 0xFF;
if (var58 == 1) {
var53 = ByteBufferUtils.method797(var2) + var56;
var54 = ByteBufferUtils.method797(var2) + var53;
var55 = ByteBufferUtils.method797(var2) + var54;
var56 = var55;
def.trianglesA[var57] = var53;
def.trianglesB[var57] = var54;
def.trianglesC[var57] = var55;
}
if (var58 == 2) {
var54 = var55;
var55 = ByteBufferUtils.method797(var2) + var56;
var56 = var55;
def.trianglesA[var57] = var53;
def.trianglesB[var57] = var54;
def.trianglesC[var57] = var55;
}
if (var58 == 3) {
var53 = var55;
var55 = ByteBufferUtils.method797(var2) + var56;
var56 = var55;
def.trianglesA[var57] = var53;
def.trianglesB[var57] = var54;
def.trianglesC[var57] = var55;
}
if (var58 == 4) {
int var59 = var53;
var53 = var54;
var54 = var59;
var55 = ByteBufferUtils.method797(var2) + var56;
var56 = var55;
def.trianglesA[var57] = var53;
def.trianglesB[var57] = var59;
def.trianglesC[var57] = var55;
}
}
var2.position(var43);
var3.position(var44);
var4.position(var45);
var5.position(var46);
var6.position(var47);
var7.position(var48);
for (var57 = 0; var57 < texTriangleCount; ++var57) {
var58 = def.textureRenderTypes[var57] & 255;
if (var58 == 0) {
def.texTrianglesA[var57] = (short) (var2.getShort() & 0xFFFF);
def.texTrianglesB[var57] = (short) (var2.getShort() & 0xFFFF);
def.texTrianglesC[var57] = (short) (var2.getShort() & 0xFFFF);
}
if (var58 == 1) {
def.texTrianglesA[var57] = (short) (var3.getShort() & 0xFFFF);
def.texTrianglesB[var57] = (short) (var3.getShort() & 0xFFFF);
def.texTrianglesC[var57] = (short) (var3.getShort() & 0xFFFF);
def.particleDirectionX[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleDirectionY[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleDirectionZ[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleLifespanX[var57] = var5.get();
def.particleLifespanY[var57] = var6.get();
def.particleLifespanZ[var57] = var7.get();
}
if (var58 == 2) {
def.texTrianglesA[var57] = (short) (var3.getShort() & 0xFFFF);
def.texTrianglesB[var57] = (short) (var3.getShort() & 0xFFFF);
def.texTrianglesC[var57] = (short) (var3.getShort() & 0xFFFF);
def.particleDirectionX[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleDirectionY[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleDirectionZ[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleLifespanX[var57] = var5.get();
def.particleLifespanY[var57] = var6.get();
def.particleLifespanZ[var57] = var7.get();
def.texturePrimaryColor[var57] = var7.get();
def.textureSecondaryColor[var57] = var7.get();
}
if (var58 == 3) {
def.texTrianglesA[var57] = (short) (var3.getShort() & 0xFFFF);
def.texTrianglesB[var57] = (short) (var3.getShort() & 0xFFFF);
def.texTrianglesC[var57] = (short) (var3.getShort() & 0xFFFF);
def.particleDirectionX[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleDirectionY[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleDirectionZ[var57] = (short) (var4.getShort() & 0xFFFF);
def.particleLifespanX[var57] = var5.get();
def.particleLifespanY[var57] = var6.get();
def.particleLifespanZ[var57] = var7.get();
}
}
if (flag2) {
var2.position(var28);
var57 = var2.get() & 0xFF;
if (var57 > 0) {
var2.position(var2.position() + (4 * var57));
}
var58 = var2.get() & 0xFF;
if (var58 > 0) {
var2.position(var2.position() + (4 * var58));
}
}
return def;
}
private final static ModelDefinition decodeOldFormat(ByteBuffer data) {
ModelDefinition def = new ModelDefinition();
boolean var2 = false;
boolean var3 = false;
ByteBuffer var4 = data.asReadOnlyBuffer();
ByteBuffer var5 = data.asReadOnlyBuffer();
ByteBuffer var6 = data.asReadOnlyBuffer();
ByteBuffer var7 = data.asReadOnlyBuffer();
ByteBuffer var8 = data.asReadOnlyBuffer();
var4.position(data.limit() - 18);
int var9 = var4.getShort() & 0xFFFF;
int var10 = var4.getShort() & 0xFFFF;
int var11 = var4.get() & 0xFF;
int var12 = var4.get() & 0xFF;
int var13 = var4.get() & 0xFF;
int var14 = var4.get() & 0xFF;
int var15 = var4.get() & 0xFF;
int var16 = var4.get() & 0xFF;
int var17 = var4.getShort() & 0xFFFF;
int var18 = var4.getShort() & 0xFFFF;
int var19 = var4.getShort() & 0xFFFF;
int var20 = var4.getShort() & 0xFFFF;
byte var21 = 0;
int var45 = var21 + var9;
int var23 = var45;
var45 += var10;
int var24 = var45;
if (var13 == 255) {
var45 += var10;
}
int var25 = var45;
if (var15 == 1) {
var45 += var10;
}
int var26 = var45;
if (var12 == 1) {
var45 += var10;
}
int var27 = var45;
if (var16 == 1) {
var45 += var9;
}
int var28 = var45;
if (var14 == 1) {
var45 += var10;
}
int var29 = var45;
var45 += var20;
int var30 = var45;
var45 += var10 * 2;
int var31 = var45;
var45 += var11 * 6;
int var32 = var45;
var45 += var17;
int var33 = var45;
var45 += var18;
def.vertexCount = var9;
def.triangleCount = var10;
def.texTriangleCount = var11;
def.verticesX = new int[var9];
def.verticesY = new int[var9];
def.verticesZ = new int[var9];
def.trianglesA = new int[var10];
def.trianglesB = new int[var10];
def.trianglesC = new int[var10];
if (var11 > 0) {
def.textureRenderTypes = new byte[var11];
def.texTrianglesA = new short[var11];
def.texTrianglesB = new short[var11];
def.texTrianglesC = new short[var11];
}
if (var16 == 1) {
def.vertexSkins = new int[var9];
}
if (var12 == 1) {
def.faceRenderTypes = new byte[var10];
def.textureCoords = new byte[var10];
def.faceTextures = new short[var10];
}
if (var13 == 255) {
def.trianglePriorities = new byte[var10];
} else {
def.aByte2848 = (byte) var13;
}
if (var14 == 1) {
def.triangleAlphas = new byte[var10];
}
if (var15 == 1) {
def.triangleSkins = new int[var10];
}
def.triangleColors = new short[var10];
var4.position(var21);
var5.position(var32);
var6.position(var33);
var7.position(var45);
var8.position(var27);
int var35 = 0;
int var36 = 0;
int var37 = 0;
int var38;
int var39;
int var42;
int var40;
int var41;
for (var38 = 0; var38 < var9; ++var38) {
var39 = var4.get() & 0xFF;
var40 = 0;
if ((var39 & 1) != 0) {
var40 = ByteBufferUtils.method797(var5);
}
var41 = 0;
if ((var39 & 2) != 0) {
var41 = ByteBufferUtils.method797(var6);
}
var42 = 0;
if ((var39 & 4) != 0) {
var42 = ByteBufferUtils.method797(var7);
}
def.verticesX[var38] = var35 + var40;
def.verticesY[var38] = var36 + var41;
def.verticesZ[var38] = var37 + var42;
var35 = def.verticesX[var38];
var36 = def.verticesY[var38];
var37 = def.verticesZ[var38];
if (var16 == 1) {
def.vertexSkins[var38] = var8.get() & 0xFF;
}
}
var4.position(var30);
var5.position(var26);
var6.position(var24);
var7.position(var28);
var8.position(var25);
for (var38 = 0; var38 < var10; ++var38) {
def.triangleColors[var38] = (short) (var4.getShort() & 0xFFFF);
if (var12 == 1) {
var39 = var5.get() & 0xFF;
if ((var39 & 1) == 1) {
def.faceRenderTypes[var38] = 1;
var2 = true;
} else {
def.faceRenderTypes[var38] = 0;
}
if ((var39 & 2) == 2) {
def.textureCoords[var38] = (byte) (var39 >> 2);
def.faceTextures[var38] = def.triangleColors[var38];
def.triangleColors[var38] = 127;
if (def.faceTextures[var38] != -1) {
var3 = true;
}
} else {
def.textureCoords[var38] = -1;
def.faceTextures[var38] = -1;
}
}
if (var13 == 255) {
def.trianglePriorities[var38] = var6.get();
}
if (var14 == 1) {
def.triangleAlphas[var38] = var7.get();
}
if (var15 == 1) {
def.triangleSkins[var38] = var8.get() & 0xFF;
}
}
var4.position(var29);
var5.position(var23);
var38 = 0;
var39 = 0;
var40 = 0;
var41 = 0;
int var43;
int var44;
for (var42 = 0; var42 < var10; ++var42) {
var43 = var5.get() & 0xFF;
if (var43 == 1) {
var38 = ByteBufferUtils.method797(var4) + var41;
var39 = ByteBufferUtils.method797(var4) + var38;
var40 = ByteBufferUtils.method797(var4) + var39;
var41 = var40;
def.trianglesA[var42] = var38;
def.trianglesB[var42] = var39;
def.trianglesC[var42] = var40;
}
if (var43 == 2) {
var39 = var40;
var40 = ByteBufferUtils.method797(var4) + var41;
var41 = var40;
def.trianglesA[var42] = var38;
def.trianglesB[var42] = var39;
def.trianglesC[var42] = var40;
}
if (var43 == 3) {
var38 = var40;
var40 = ByteBufferUtils.method797(var4) + var41;
var41 = var40;
def.trianglesA[var42] = var38;
def.trianglesB[var42] = var39;
def.trianglesC[var42] = var40;
}
if (var43 == 4) {
var44 = var38;
var38 = var39;
var39 = var44;
var40 = ByteBufferUtils.method797(var4) + var41;
var41 = var40;
def.trianglesA[var42] = var38;
def.trianglesB[var42] = var44;
def.trianglesC[var42] = var40;
}
}
var4.position(var31);
for (var42 = 0; var42 < var11; ++var42) {
def.textureRenderTypes[var42] = 0;
def.texTrianglesA[var42] = (short) (var4.getShort() & 0xFFFF);
def.texTrianglesB[var42] = (short) (var4.getShort() & 0xFFFF);
def.texTrianglesC[var42] = (short) (var4.getShort() & 0xFFFF);
}
if (def.textureCoords != null) {
boolean var46 = false;
for (var43 = 0; var43 < var10; ++var43) {
var44 = def.textureCoords[var43] & 255;
if (var44 != 255) {
if ((def.texTrianglesA[var44] & '\uffff') == def.trianglesA[var43] && (def.texTrianglesB[var44] & '\uffff') == def.trianglesB[var43]
&& (def.texTrianglesC[var44] & '\uffff') == def.trianglesC[var43]) {
def.textureCoords[var43] = -1;
} else {
var46 = true;
}
}
}
if (!var46) {
def.textureCoords = null;
}
}
if (!var3) {
def.faceTextures = null;
}
if (!var2) {
def.faceRenderTypes = null;
}
return def;
}
public void calcDimms(boolean force) {
if (!force && width >= 0 && height >= 0 && depth >= 0)
return;
if (triangleCount == 0) {
width = 0;
height = 0;
depth = 0;
return;
}
int minX = 0x7fffffff;
int maxX = -0x7fffffff;
int minY = 0x7fffffff;
int maxY = -0x7fffffff;
int minZ = 0x7fffffff;
int maxZ = -0x7fffffff;
for (int i = 0; i != triangleCount; ++i) {
int t = trianglesA[i];
if (maxX < verticesX[t])
maxX = verticesX[t];
if (minX > verticesX[t])
minX = verticesX[t];
if (maxY < verticesY[t])
maxY = verticesY[t];
if (minY > verticesY[t])
minY = verticesY[t];
if (maxZ < verticesZ[t])
maxZ = verticesZ[t];
if (minZ > verticesZ[t])
minZ = verticesZ[t];
t = trianglesB[i];
if (maxX < verticesX[t])
maxX = verticesX[t];
if (minX > verticesX[t])
minY = verticesX[t];
if (maxY < verticesY[t])
maxY = verticesY[t];
if (minY > verticesY[t])
minY = verticesY[t];
if (maxZ < verticesZ[t])
maxZ = verticesZ[t];
if (minZ > verticesZ[t])
minZ = verticesZ[t];
t = trianglesC[i];
if (maxX < verticesX[t])
maxX = verticesX[t];
if (minX > verticesX[t])
minX = verticesX[t];
if (maxY < verticesY[t])
maxY = verticesY[t];
if (minY > verticesY[t])
minY = verticesY[t];
if (maxZ < verticesZ[t])
maxZ = verticesZ[t];
if (minZ > verticesZ[t])
minZ = verticesZ[t];
}
width = maxX - minX;
height = maxY - minY;
depth = maxZ - minZ;
}
public int getHeight() {
return height;
}
public int getDepth() {
return depth;
}
public int getWidth() {
return width;
}
public byte[] getTriangleAlphas() {
return triangleAlphas;
}
public short getaShort2844() {
return aShort2844;
}
public byte[] getParticleLifespansX() {
return particleLifespanX;
}
public short[] getTexTrianglesB() {
return texTrianglesB;
}
public int[] getTriangleSkins() {
return triangleSkins;
}
public byte getaByte2848() {
return aByte2848;
}
public int getTriangleCount() {
return triangleCount;
}
public short getaShort2850() {
return aShort2850;
}
public short[] getParticleDirectionsZ() {
return particleDirectionZ;
}
public byte[] getTexturePrimaryColors() {
return texturePrimaryColor;
}
public boolean isNewFormat() {
return isNewFormat;
}
public short getaShort2854() {
return aShort2854;
}
public short[] getaShortArray2855() {
return aShortArray2855;
}
public int[][] getAnIntArrayArray2856() {
return anIntArrayArray2856;
}
public byte[] getTextureRenderTypes() {
return textureRenderTypes;
}
public short[] getFaceTextures() {
return faceTextures;
}
public byte[] getFaceRenderTypes() {
return faceRenderTypes;
}
public int[] getVertexSkins() {
return vertexSkins;
}
public int getAnInt2862() {
return texTriangleCount;
}
public int[] getTrianglesC() {
return trianglesC;
}
public int[] getTrianglesA() {
return trianglesA;
}
public byte[] getTextureCoords() {
return textureCoords;
}
public byte[] getParticleLifespansY() {
return particleLifespanY;
}
public byte[] getTextureSecondaryColors() {
return textureSecondaryColor;
}
public short[] getTriangleColors() {
return triangleColors;
}
public short getaShort2873() {
return aShort2873;
}
public short getaShort2874() {
return aShort2874;
}
public static int[] getAnIntArray2875() {
return anIntArray2875;
}
public short getaShort2876() {
return aShort2876;
}
public byte[] getParticleLifespansZ() {
return particleLifespanZ;
}
public int[] getTrianglesB() {
return trianglesB;
}
public short getaShort2879() {
return aShort2879;
}
public short getaShort2880() {
return aShort2880;
}
public int[] getVerticesY() {
return verticesY;
}
public short[] getParticleDirectionsY() {
return particleDirectionY;
}
public short[] getTexTrianglesA() {
return texTrianglesA;
}
public int[] getVerticesX() {
return verticesX;
}
public int getVertexCount() {
return vertexCount;
}
public short[] getParticleDirectionsX() {
return particleDirectionX;
}
public byte[] getTrianglePriorities() {
return trianglePriorities;
}
public int[][] getAnIntArrayArray2890() {
return anIntArrayArray2890;
}
public short[] getTexTrianglesC() {
return texTrianglesC;
}
public int[] getVerticesZ() {
return verticesZ;
}
public short[] getaShortArray2893() {
return aShortArray2893;
}
}