Split up model loader from model definition
This commit is contained in:
@@ -3,21 +3,25 @@ package net.runelite.cache.definitions.loaders;
|
||||
import net.runelite.cache.definitions.ModelDefinition;
|
||||
import net.runelite.cache.io.InputStream;
|
||||
|
||||
public class ModelLoader extends ModelDefinition
|
||||
public class ModelLoader
|
||||
{
|
||||
public void load(byte[] var1)
|
||||
public ModelDefinition load(byte[] var1)
|
||||
{
|
||||
ModelDefinition def = new ModelDefinition();
|
||||
|
||||
if (var1[var1.length - 1] == -1 && var1[var1.length - 2] == -1)
|
||||
{
|
||||
this.load1(var1);
|
||||
this.load1(def, var1);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.load2(var1);
|
||||
this.load2(def, var1);
|
||||
}
|
||||
|
||||
return def;
|
||||
}
|
||||
|
||||
private void load1(byte[] var1)
|
||||
private void load1(ModelDefinition model, byte[] var1)
|
||||
{
|
||||
InputStream var2 = new InputStream(var1);
|
||||
InputStream var24 = new InputStream(var1);
|
||||
@@ -47,12 +51,12 @@ public class ModelLoader extends ModelDefinition
|
||||
int position;
|
||||
if (textureTriangleCount > 0)
|
||||
{
|
||||
this.textureRenderTypes = new byte[textureTriangleCount];
|
||||
model.textureRenderTypes = new byte[textureTriangleCount];
|
||||
var2.setOffset(0);
|
||||
|
||||
for (position = 0; position < textureTriangleCount; ++position)
|
||||
{
|
||||
byte renderType = this.textureRenderTypes[position] = var2.readByte();
|
||||
byte renderType = model.textureRenderTypes[position] = var2.readByte();
|
||||
if (renderType == 0)
|
||||
{
|
||||
++textureAmount;
|
||||
@@ -133,73 +137,73 @@ public class ModelLoader extends ModelDefinition
|
||||
position += var7;
|
||||
int var46 = position;
|
||||
position += var7 * 2 + var29 * 2;
|
||||
this.vertexCount = verticeCount;
|
||||
this.triangleFaceCount = triangleCount;
|
||||
this.anInt2569 = textureTriangleCount;
|
||||
this.vertexX = new int[verticeCount];
|
||||
this.vertexY = new int[verticeCount];
|
||||
this.vertexZ = new int[verticeCount];
|
||||
this.trianglePointsX = new int[triangleCount];
|
||||
this.trianglePointsY = new int[triangleCount];
|
||||
this.trianglePointsZ = new int[triangleCount];
|
||||
model.vertexCount = verticeCount;
|
||||
model.triangleFaceCount = triangleCount;
|
||||
model.anInt2569 = textureTriangleCount;
|
||||
model.vertexX = new int[verticeCount];
|
||||
model.vertexY = new int[verticeCount];
|
||||
model.vertexZ = new int[verticeCount];
|
||||
model.trianglePointsX = new int[triangleCount];
|
||||
model.trianglePointsY = new int[triangleCount];
|
||||
model.trianglePointsZ = new int[triangleCount];
|
||||
if (modelVertexSkins == 1)
|
||||
{
|
||||
this.vertexSkins = new int[verticeCount];
|
||||
model.vertexSkins = new int[verticeCount];
|
||||
}
|
||||
|
||||
if (var13 == 1)
|
||||
{
|
||||
this.faceRenderType = new byte[triangleCount];
|
||||
model.faceRenderType = new byte[triangleCount];
|
||||
}
|
||||
|
||||
if (modelPriority == 255)
|
||||
{
|
||||
this.faceRenderPriorities = new byte[triangleCount];
|
||||
model.faceRenderPriorities = new byte[triangleCount];
|
||||
}
|
||||
else
|
||||
{
|
||||
this.priority = (byte) modelPriority;
|
||||
model.priority = (byte) modelPriority;
|
||||
}
|
||||
|
||||
if (var50 == 1)
|
||||
{
|
||||
this.faceAlphas = new byte[triangleCount];
|
||||
model.faceAlphas = new byte[triangleCount];
|
||||
}
|
||||
|
||||
if (var17 == 1)
|
||||
{
|
||||
this.triangleSkinValues = new int[triangleCount];
|
||||
model.triangleSkinValues = new int[triangleCount];
|
||||
}
|
||||
|
||||
if (modelTexture == 1)
|
||||
{
|
||||
this.faceTextures = new short[triangleCount];
|
||||
model.faceTextures = new short[triangleCount];
|
||||
}
|
||||
|
||||
if (modelTexture == 1 && textureTriangleCount > 0)
|
||||
{
|
||||
this.textureCoords = new byte[triangleCount];
|
||||
model.textureCoords = new byte[triangleCount];
|
||||
}
|
||||
|
||||
this.faceColor = new short[triangleCount];
|
||||
model.faceColor = new short[triangleCount];
|
||||
if (textureTriangleCount > 0)
|
||||
{
|
||||
this.texTriangleX = new short[textureTriangleCount];
|
||||
this.texTriangleY = new short[textureTriangleCount];
|
||||
this.texTriangleZ = new short[textureTriangleCount];
|
||||
model.texTriangleX = new short[textureTriangleCount];
|
||||
model.texTriangleY = new short[textureTriangleCount];
|
||||
model.texTriangleZ = new short[textureTriangleCount];
|
||||
if (var7 > 0)
|
||||
{
|
||||
this.aShortArray2574 = new short[var7];
|
||||
this.aShortArray2575 = new short[var7];
|
||||
this.aShortArray2586 = new short[var7];
|
||||
this.aShortArray2577 = new short[var7];
|
||||
this.aByteArray2580 = new byte[var7];
|
||||
this.aShortArray2578 = new short[var7];
|
||||
model.aShortArray2574 = new short[var7];
|
||||
model.aShortArray2575 = new short[var7];
|
||||
model.aShortArray2586 = new short[var7];
|
||||
model.aShortArray2577 = new short[var7];
|
||||
model.aByteArray2580 = new byte[var7];
|
||||
model.aShortArray2578 = new short[var7];
|
||||
}
|
||||
|
||||
if (var29 > 0)
|
||||
{
|
||||
this.texturePrimaryColor = new short[var29];
|
||||
model.texturePrimaryColor = new short[var29];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,15 +242,15 @@ public class ModelLoader extends ModelDefinition
|
||||
vertexZOffset = var28.readShortSmart();
|
||||
}
|
||||
|
||||
this.vertexX[point] = vX + vertexXOffset;
|
||||
this.vertexY[point] = vY + vertexYOffset;
|
||||
this.vertexZ[point] = vZ + vertexZOffset;
|
||||
vX = this.vertexX[point];
|
||||
vY = this.vertexY[point];
|
||||
vZ = this.vertexZ[point];
|
||||
model.vertexX[point] = vX + vertexXOffset;
|
||||
model.vertexY[point] = vY + vertexYOffset;
|
||||
model.vertexZ[point] = vZ + vertexZOffset;
|
||||
vX = model.vertexX[point];
|
||||
vY = model.vertexY[point];
|
||||
vZ = model.vertexZ[point];
|
||||
if (modelVertexSkins == 1)
|
||||
{
|
||||
this.vertexSkins[point] = var6.readUnsignedByte();
|
||||
model.vertexSkins[point] = var6.readUnsignedByte();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,35 +264,35 @@ public class ModelLoader extends ModelDefinition
|
||||
|
||||
for (point = 0; point < triangleCount; ++point)
|
||||
{
|
||||
this.faceColor[point] = (short) var2.readUnsignedShort();
|
||||
model.faceColor[point] = (short) var2.readUnsignedShort();
|
||||
if (var13 == 1)
|
||||
{
|
||||
this.faceRenderType[point] = var24.readByte();
|
||||
model.faceRenderType[point] = var24.readByte();
|
||||
}
|
||||
|
||||
if (modelPriority == 255)
|
||||
{
|
||||
this.faceRenderPriorities[point] = var3.readByte();
|
||||
model.faceRenderPriorities[point] = var3.readByte();
|
||||
}
|
||||
|
||||
if (var50 == 1)
|
||||
{
|
||||
this.faceAlphas[point] = var28.readByte();
|
||||
model.faceAlphas[point] = var28.readByte();
|
||||
}
|
||||
|
||||
if (var17 == 1)
|
||||
{
|
||||
this.triangleSkinValues[point] = var6.readUnsignedByte();
|
||||
model.triangleSkinValues[point] = var6.readUnsignedByte();
|
||||
}
|
||||
|
||||
if (modelTexture == 1)
|
||||
{
|
||||
this.faceTextures[point] = (short) (var55.readUnsignedShort() - 1);
|
||||
model.faceTextures[point] = (short) (var55.readUnsignedShort() - 1);
|
||||
}
|
||||
|
||||
if (this.textureCoords != null && this.faceTextures[point] != -1)
|
||||
if (model.textureCoords != null && model.faceTextures[point] != -1)
|
||||
{
|
||||
this.textureCoords[point] = (byte) (var51.readUnsignedByte() - 1);
|
||||
model.textureCoords[point] = (byte) (var51.readUnsignedByte() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -309,9 +313,9 @@ public class ModelLoader extends ModelDefinition
|
||||
trianglePointY = var2.readShortSmart() + trianglePointX;
|
||||
trianglePointZ = var2.readShortSmart() + trianglePointY;
|
||||
vertexYOffset = trianglePointZ;
|
||||
this.trianglePointsX[vertexZOffset] = trianglePointX;
|
||||
this.trianglePointsY[vertexZOffset] = trianglePointY;
|
||||
this.trianglePointsZ[vertexZOffset] = trianglePointZ;
|
||||
model.trianglePointsX[vertexZOffset] = trianglePointX;
|
||||
model.trianglePointsY[vertexZOffset] = trianglePointY;
|
||||
model.trianglePointsZ[vertexZOffset] = trianglePointZ;
|
||||
}
|
||||
|
||||
if (numFaces == 2)
|
||||
@@ -319,9 +323,9 @@ public class ModelLoader extends ModelDefinition
|
||||
trianglePointY = trianglePointZ;
|
||||
trianglePointZ = var2.readShortSmart() + vertexYOffset;
|
||||
vertexYOffset = trianglePointZ;
|
||||
this.trianglePointsX[vertexZOffset] = trianglePointX;
|
||||
this.trianglePointsY[vertexZOffset] = trianglePointY;
|
||||
this.trianglePointsZ[vertexZOffset] = trianglePointZ;
|
||||
model.trianglePointsX[vertexZOffset] = trianglePointX;
|
||||
model.trianglePointsY[vertexZOffset] = trianglePointY;
|
||||
model.trianglePointsZ[vertexZOffset] = trianglePointZ;
|
||||
}
|
||||
|
||||
if (numFaces == 3)
|
||||
@@ -329,9 +333,9 @@ public class ModelLoader extends ModelDefinition
|
||||
trianglePointX = trianglePointZ;
|
||||
trianglePointZ = var2.readShortSmart() + vertexYOffset;
|
||||
vertexYOffset = trianglePointZ;
|
||||
this.trianglePointsX[vertexZOffset] = trianglePointX;
|
||||
this.trianglePointsY[vertexZOffset] = trianglePointY;
|
||||
this.trianglePointsZ[vertexZOffset] = trianglePointZ;
|
||||
model.trianglePointsX[vertexZOffset] = trianglePointX;
|
||||
model.trianglePointsY[vertexZOffset] = trianglePointY;
|
||||
model.trianglePointsZ[vertexZOffset] = trianglePointZ;
|
||||
}
|
||||
|
||||
if (numFaces == 4)
|
||||
@@ -341,9 +345,9 @@ public class ModelLoader extends ModelDefinition
|
||||
trianglePointY = var57;
|
||||
trianglePointZ = var2.readShortSmart() + vertexYOffset;
|
||||
vertexYOffset = trianglePointZ;
|
||||
this.trianglePointsX[vertexZOffset] = trianglePointX;
|
||||
this.trianglePointsY[vertexZOffset] = var57;
|
||||
this.trianglePointsZ[vertexZOffset] = trianglePointZ;
|
||||
model.trianglePointsX[vertexZOffset] = trianglePointX;
|
||||
model.trianglePointsY[vertexZOffset] = var57;
|
||||
model.trianglePointsZ[vertexZOffset] = trianglePointZ;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,52 +360,52 @@ public class ModelLoader extends ModelDefinition
|
||||
|
||||
for (int texIndex = 0; texIndex < textureTriangleCount; ++texIndex)
|
||||
{
|
||||
int type = this.textureRenderTypes[texIndex] & 255;
|
||||
int type = model.textureRenderTypes[texIndex] & 255;
|
||||
if (type == 0)
|
||||
{
|
||||
this.texTriangleX[texIndex] = (short) var2.readUnsignedShort();
|
||||
this.texTriangleY[texIndex] = (short) var2.readUnsignedShort();
|
||||
this.texTriangleZ[texIndex] = (short) var2.readUnsignedShort();
|
||||
model.texTriangleX[texIndex] = (short) var2.readUnsignedShort();
|
||||
model.texTriangleY[texIndex] = (short) var2.readUnsignedShort();
|
||||
model.texTriangleZ[texIndex] = (short) var2.readUnsignedShort();
|
||||
}
|
||||
|
||||
if (type == 1)
|
||||
{
|
||||
this.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
|
||||
this.aByteArray2580[texIndex] = var6.readByte();
|
||||
this.aShortArray2578[texIndex] = (short) var55.readUnsignedShort();
|
||||
model.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
|
||||
model.aByteArray2580[texIndex] = var6.readByte();
|
||||
model.aShortArray2578[texIndex] = (short) var55.readUnsignedShort();
|
||||
}
|
||||
|
||||
if (type == 2)
|
||||
{
|
||||
this.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
|
||||
this.aByteArray2580[texIndex] = var6.readByte();
|
||||
this.aShortArray2578[texIndex] = (short) var55.readUnsignedShort();
|
||||
this.texturePrimaryColor[texIndex] = (short) var55.readUnsignedShort();
|
||||
model.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
|
||||
model.aByteArray2580[texIndex] = var6.readByte();
|
||||
model.aShortArray2578[texIndex] = (short) var55.readUnsignedShort();
|
||||
model.texturePrimaryColor[texIndex] = (short) var55.readUnsignedShort();
|
||||
}
|
||||
|
||||
if (type == 3)
|
||||
{
|
||||
this.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
|
||||
this.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
|
||||
this.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
|
||||
this.aByteArray2580[texIndex] = var6.readByte();
|
||||
this.aShortArray2578[texIndex] = (short) var55.readUnsignedShort();
|
||||
model.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
|
||||
model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
|
||||
model.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
|
||||
model.aByteArray2580[texIndex] = var6.readByte();
|
||||
model.aShortArray2578[texIndex] = (short) var55.readUnsignedShort();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -417,7 +421,7 @@ public class ModelLoader extends ModelDefinition
|
||||
}
|
||||
}
|
||||
|
||||
private void load2(byte[] var1)
|
||||
private void load2(ModelDefinition model, byte[] var1)
|
||||
{
|
||||
boolean var2 = false;
|
||||
boolean var43 = false;
|
||||
@@ -484,55 +488,55 @@ public class ModelLoader extends ModelDefinition
|
||||
int var35 = var46;
|
||||
var46 += var20;
|
||||
int var10000 = var46 + var36;
|
||||
this.vertexCount = var10;
|
||||
this.triangleFaceCount = var11;
|
||||
this.anInt2569 = var12;
|
||||
this.vertexX = new int[var10];
|
||||
this.vertexY = new int[var10];
|
||||
this.vertexZ = new int[var10];
|
||||
this.trianglePointsX = new int[var11];
|
||||
this.trianglePointsY = new int[var11];
|
||||
this.trianglePointsZ = new int[var11];
|
||||
model.vertexCount = var10;
|
||||
model.triangleFaceCount = var11;
|
||||
model.anInt2569 = var12;
|
||||
model.vertexX = new int[var10];
|
||||
model.vertexY = new int[var10];
|
||||
model.vertexZ = new int[var10];
|
||||
model.trianglePointsX = new int[var11];
|
||||
model.trianglePointsY = new int[var11];
|
||||
model.trianglePointsZ = new int[var11];
|
||||
if (var12 > 0)
|
||||
{
|
||||
this.textureRenderTypes = new byte[var12];
|
||||
this.texTriangleX = new short[var12];
|
||||
this.texTriangleY = new short[var12];
|
||||
this.texTriangleZ = new short[var12];
|
||||
model.textureRenderTypes = new byte[var12];
|
||||
model.texTriangleX = new short[var12];
|
||||
model.texTriangleY = new short[var12];
|
||||
model.texTriangleZ = new short[var12];
|
||||
}
|
||||
|
||||
if (var28 == 1)
|
||||
{
|
||||
this.vertexSkins = new int[var10];
|
||||
model.vertexSkins = new int[var10];
|
||||
}
|
||||
|
||||
if (var13 == 1)
|
||||
{
|
||||
this.faceRenderType = new byte[var11];
|
||||
this.textureCoords = new byte[var11];
|
||||
this.faceTextures = new short[var11];
|
||||
model.faceRenderType = new byte[var11];
|
||||
model.textureCoords = new byte[var11];
|
||||
model.faceTextures = new short[var11];
|
||||
}
|
||||
|
||||
if (var14 == 255)
|
||||
{
|
||||
this.faceRenderPriorities = new byte[var11];
|
||||
model.faceRenderPriorities = new byte[var11];
|
||||
}
|
||||
else
|
||||
{
|
||||
this.priority = (byte) var14;
|
||||
model.priority = (byte) var14;
|
||||
}
|
||||
|
||||
if (var30 == 1)
|
||||
{
|
||||
this.faceAlphas = new byte[var11];
|
||||
model.faceAlphas = new byte[var11];
|
||||
}
|
||||
|
||||
if (var15 == 1)
|
||||
{
|
||||
this.triangleSkinValues = new int[var11];
|
||||
model.triangleSkinValues = new int[var11];
|
||||
}
|
||||
|
||||
this.faceColor = new short[var11];
|
||||
model.faceColor = new short[var11];
|
||||
var5.setOffset(var16);
|
||||
var39.setOffset(var34);
|
||||
var26.setOffset(var35);
|
||||
@@ -568,15 +572,15 @@ public class ModelLoader extends ModelDefinition
|
||||
var7 = var9.readShortSmart();
|
||||
}
|
||||
|
||||
this.vertexX[var18] = var41 + var31;
|
||||
this.vertexY[var18] = var33 + var6;
|
||||
this.vertexZ[var18] = var19 + var7;
|
||||
var41 = this.vertexX[var18];
|
||||
var33 = this.vertexY[var18];
|
||||
var19 = this.vertexZ[var18];
|
||||
model.vertexX[var18] = var41 + var31;
|
||||
model.vertexY[var18] = var33 + var6;
|
||||
model.vertexZ[var18] = var19 + var7;
|
||||
var41 = model.vertexX[var18];
|
||||
var33 = model.vertexY[var18];
|
||||
var19 = model.vertexZ[var18];
|
||||
if (var28 == 1)
|
||||
{
|
||||
this.vertexSkins[var18] = var3.readUnsignedByte();
|
||||
model.vertexSkins[var18] = var3.readUnsignedByte();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -588,50 +592,50 @@ public class ModelLoader extends ModelDefinition
|
||||
|
||||
for (var18 = 0; var18 < var11; ++var18)
|
||||
{
|
||||
this.faceColor[var18] = (short) var5.readUnsignedShort();
|
||||
model.faceColor[var18] = (short) var5.readUnsignedShort();
|
||||
if (var13 == 1)
|
||||
{
|
||||
var8 = var39.readUnsignedByte();
|
||||
if ((var8 & 1) == 1)
|
||||
{
|
||||
this.faceRenderType[var18] = 1;
|
||||
model.faceRenderType[var18] = 1;
|
||||
var2 = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.faceRenderType[var18] = 0;
|
||||
model.faceRenderType[var18] = 0;
|
||||
}
|
||||
|
||||
if ((var8 & 2) == 2)
|
||||
{
|
||||
this.textureCoords[var18] = (byte) (var8 >> 2);
|
||||
this.faceTextures[var18] = this.faceColor[var18];
|
||||
this.faceColor[var18] = 127;
|
||||
if (this.faceTextures[var18] != -1)
|
||||
model.textureCoords[var18] = (byte) (var8 >> 2);
|
||||
model.faceTextures[var18] = model.faceColor[var18];
|
||||
model.faceColor[var18] = 127;
|
||||
if (model.faceTextures[var18] != -1)
|
||||
{
|
||||
var43 = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.textureCoords[var18] = -1;
|
||||
this.faceTextures[var18] = -1;
|
||||
model.textureCoords[var18] = -1;
|
||||
model.faceTextures[var18] = -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (var14 == 255)
|
||||
{
|
||||
this.faceRenderPriorities[var18] = var26.readByte();
|
||||
model.faceRenderPriorities[var18] = var26.readByte();
|
||||
}
|
||||
|
||||
if (var30 == 1)
|
||||
{
|
||||
this.faceAlphas[var18] = var9.readByte();
|
||||
model.faceAlphas[var18] = var9.readByte();
|
||||
}
|
||||
|
||||
if (var15 == 1)
|
||||
{
|
||||
this.triangleSkinValues[var18] = var3.readUnsignedByte();
|
||||
model.triangleSkinValues[var18] = var3.readUnsignedByte();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -653,9 +657,9 @@ public class ModelLoader extends ModelDefinition
|
||||
var8 = var5.readShortSmart() + var18;
|
||||
var31 = var5.readShortSmart() + var8;
|
||||
var6 = var31;
|
||||
this.trianglePointsX[var7] = var18;
|
||||
this.trianglePointsY[var7] = var8;
|
||||
this.trianglePointsZ[var7] = var31;
|
||||
model.trianglePointsX[var7] = var18;
|
||||
model.trianglePointsY[var7] = var8;
|
||||
model.trianglePointsZ[var7] = var31;
|
||||
}
|
||||
|
||||
if (var22 == 2)
|
||||
@@ -663,9 +667,9 @@ public class ModelLoader extends ModelDefinition
|
||||
var8 = var31;
|
||||
var31 = var5.readShortSmart() + var6;
|
||||
var6 = var31;
|
||||
this.trianglePointsX[var7] = var18;
|
||||
this.trianglePointsY[var7] = var8;
|
||||
this.trianglePointsZ[var7] = var31;
|
||||
model.trianglePointsX[var7] = var18;
|
||||
model.trianglePointsY[var7] = var8;
|
||||
model.trianglePointsZ[var7] = var31;
|
||||
}
|
||||
|
||||
if (var22 == 3)
|
||||
@@ -673,9 +677,9 @@ public class ModelLoader extends ModelDefinition
|
||||
var18 = var31;
|
||||
var31 = var5.readShortSmart() + var6;
|
||||
var6 = var31;
|
||||
this.trianglePointsX[var7] = var18;
|
||||
this.trianglePointsY[var7] = var8;
|
||||
this.trianglePointsZ[var7] = var31;
|
||||
model.trianglePointsX[var7] = var18;
|
||||
model.trianglePointsY[var7] = var8;
|
||||
model.trianglePointsZ[var7] = var31;
|
||||
}
|
||||
|
||||
if (var22 == 4)
|
||||
@@ -685,9 +689,9 @@ public class ModelLoader extends ModelDefinition
|
||||
var8 = var21;
|
||||
var31 = var5.readShortSmart() + var6;
|
||||
var6 = var31;
|
||||
this.trianglePointsX[var7] = var18;
|
||||
this.trianglePointsY[var7] = var21;
|
||||
this.trianglePointsZ[var7] = var31;
|
||||
model.trianglePointsX[var7] = var18;
|
||||
model.trianglePointsY[var7] = var21;
|
||||
model.trianglePointsZ[var7] = var31;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -695,24 +699,24 @@ public class ModelLoader extends ModelDefinition
|
||||
|
||||
for (var7 = 0; var7 < var12; ++var7)
|
||||
{
|
||||
this.textureRenderTypes[var7] = 0;
|
||||
this.texTriangleX[var7] = (short) var5.readUnsignedShort();
|
||||
this.texTriangleY[var7] = (short) var5.readUnsignedShort();
|
||||
this.texTriangleZ[var7] = (short) var5.readUnsignedShort();
|
||||
model.textureRenderTypes[var7] = 0;
|
||||
model.texTriangleX[var7] = (short) var5.readUnsignedShort();
|
||||
model.texTriangleY[var7] = (short) var5.readUnsignedShort();
|
||||
model.texTriangleZ[var7] = (short) var5.readUnsignedShort();
|
||||
}
|
||||
|
||||
if (this.textureCoords != null)
|
||||
if (model.textureCoords != null)
|
||||
{
|
||||
boolean var45 = false;
|
||||
|
||||
for (var22 = 0; var22 < var11; ++var22)
|
||||
{
|
||||
var21 = this.textureCoords[var22] & 255;
|
||||
var21 = model.textureCoords[var22] & 255;
|
||||
if (var21 != 255)
|
||||
{
|
||||
if ((this.texTriangleX[var21] & '\uffff') == this.trianglePointsX[var22] && (this.texTriangleY[var21] & '\uffff') == this.trianglePointsY[var22] && (this.texTriangleZ[var21] & '\uffff') == this.trianglePointsZ[var22])
|
||||
if ((model.texTriangleX[var21] & '\uffff') == model.trianglePointsX[var22] && (model.texTriangleY[var21] & '\uffff') == model.trianglePointsY[var22] && (model.texTriangleZ[var21] & '\uffff') == model.trianglePointsZ[var22])
|
||||
{
|
||||
this.textureCoords[var22] = -1;
|
||||
model.textureCoords[var22] = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -723,18 +727,18 @@ public class ModelLoader extends ModelDefinition
|
||||
|
||||
if (!var45)
|
||||
{
|
||||
this.textureCoords = null;
|
||||
model.textureCoords = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (!var43)
|
||||
{
|
||||
this.faceTextures = null;
|
||||
model.faceTextures = null;
|
||||
}
|
||||
|
||||
if (!var2)
|
||||
{
|
||||
this.faceRenderType = null;
|
||||
model.faceRenderType = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@ package net.runelite.modelviewer;
|
||||
import java.awt.Color;
|
||||
import java.io.File;
|
||||
import java.nio.file.Files;
|
||||
import net.runelite.cache.definitions.ModelDefinition;
|
||||
import net.runelite.cache.definitions.loaders.ModelLoader;
|
||||
import org.lwjgl.opengl.Display;
|
||||
import org.lwjgl.opengl.DisplayMode;
|
||||
@@ -49,9 +50,9 @@ public class ModelViewer
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
ModelLoader md = new ModelLoader();
|
||||
ModelLoader loader = new ModelLoader();
|
||||
byte[] b = Files.readAllBytes(new File(args[0]).toPath());
|
||||
md.load(b);
|
||||
ModelDefinition md = loader.load(b);
|
||||
|
||||
Display.setDisplayMode(new DisplayMode(800, 600));
|
||||
Display.setTitle("Model Viewer");
|
||||
|
||||
Reference in New Issue
Block a user