Split up model loader from model definition

This commit is contained in:
Adam
2016-09-16 23:15:09 -04:00
parent f044d0207f
commit 520df7f8f4
2 changed files with 166 additions and 161 deletions

View File

@@ -3,21 +3,25 @@ package net.runelite.cache.definitions.loaders;
import net.runelite.cache.definitions.ModelDefinition; import net.runelite.cache.definitions.ModelDefinition;
import net.runelite.cache.io.InputStream; 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) if (var1[var1.length - 1] == -1 && var1[var1.length - 2] == -1)
{ {
this.load1(var1); this.load1(def, var1);
} }
else 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 var2 = new InputStream(var1);
InputStream var24 = new InputStream(var1); InputStream var24 = new InputStream(var1);
@@ -47,12 +51,12 @@ public class ModelLoader extends ModelDefinition
int position; int position;
if (textureTriangleCount > 0) if (textureTriangleCount > 0)
{ {
this.textureRenderTypes = new byte[textureTriangleCount]; model.textureRenderTypes = new byte[textureTriangleCount];
var2.setOffset(0); var2.setOffset(0);
for (position = 0; position < textureTriangleCount; ++position) for (position = 0; position < textureTriangleCount; ++position)
{ {
byte renderType = this.textureRenderTypes[position] = var2.readByte(); byte renderType = model.textureRenderTypes[position] = var2.readByte();
if (renderType == 0) if (renderType == 0)
{ {
++textureAmount; ++textureAmount;
@@ -133,73 +137,73 @@ public class ModelLoader extends ModelDefinition
position += var7; position += var7;
int var46 = position; int var46 = position;
position += var7 * 2 + var29 * 2; position += var7 * 2 + var29 * 2;
this.vertexCount = verticeCount; model.vertexCount = verticeCount;
this.triangleFaceCount = triangleCount; model.triangleFaceCount = triangleCount;
this.anInt2569 = textureTriangleCount; model.anInt2569 = textureTriangleCount;
this.vertexX = new int[verticeCount]; model.vertexX = new int[verticeCount];
this.vertexY = new int[verticeCount]; model.vertexY = new int[verticeCount];
this.vertexZ = new int[verticeCount]; model.vertexZ = new int[verticeCount];
this.trianglePointsX = new int[triangleCount]; model.trianglePointsX = new int[triangleCount];
this.trianglePointsY = new int[triangleCount]; model.trianglePointsY = new int[triangleCount];
this.trianglePointsZ = new int[triangleCount]; model.trianglePointsZ = new int[triangleCount];
if (modelVertexSkins == 1) if (modelVertexSkins == 1)
{ {
this.vertexSkins = new int[verticeCount]; model.vertexSkins = new int[verticeCount];
} }
if (var13 == 1) if (var13 == 1)
{ {
this.faceRenderType = new byte[triangleCount]; model.faceRenderType = new byte[triangleCount];
} }
if (modelPriority == 255) if (modelPriority == 255)
{ {
this.faceRenderPriorities = new byte[triangleCount]; model.faceRenderPriorities = new byte[triangleCount];
} }
else else
{ {
this.priority = (byte) modelPriority; model.priority = (byte) modelPriority;
} }
if (var50 == 1) if (var50 == 1)
{ {
this.faceAlphas = new byte[triangleCount]; model.faceAlphas = new byte[triangleCount];
} }
if (var17 == 1) if (var17 == 1)
{ {
this.triangleSkinValues = new int[triangleCount]; model.triangleSkinValues = new int[triangleCount];
} }
if (modelTexture == 1) if (modelTexture == 1)
{ {
this.faceTextures = new short[triangleCount]; model.faceTextures = new short[triangleCount];
} }
if (modelTexture == 1 && textureTriangleCount > 0) 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) if (textureTriangleCount > 0)
{ {
this.texTriangleX = new short[textureTriangleCount]; model.texTriangleX = new short[textureTriangleCount];
this.texTriangleY = new short[textureTriangleCount]; model.texTriangleY = new short[textureTriangleCount];
this.texTriangleZ = new short[textureTriangleCount]; model.texTriangleZ = new short[textureTriangleCount];
if (var7 > 0) if (var7 > 0)
{ {
this.aShortArray2574 = new short[var7]; model.aShortArray2574 = new short[var7];
this.aShortArray2575 = new short[var7]; model.aShortArray2575 = new short[var7];
this.aShortArray2586 = new short[var7]; model.aShortArray2586 = new short[var7];
this.aShortArray2577 = new short[var7]; model.aShortArray2577 = new short[var7];
this.aByteArray2580 = new byte[var7]; model.aByteArray2580 = new byte[var7];
this.aShortArray2578 = new short[var7]; model.aShortArray2578 = new short[var7];
} }
if (var29 > 0) 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(); vertexZOffset = var28.readShortSmart();
} }
this.vertexX[point] = vX + vertexXOffset; model.vertexX[point] = vX + vertexXOffset;
this.vertexY[point] = vY + vertexYOffset; model.vertexY[point] = vY + vertexYOffset;
this.vertexZ[point] = vZ + vertexZOffset; model.vertexZ[point] = vZ + vertexZOffset;
vX = this.vertexX[point]; vX = model.vertexX[point];
vY = this.vertexY[point]; vY = model.vertexY[point];
vZ = this.vertexZ[point]; vZ = model.vertexZ[point];
if (modelVertexSkins == 1) 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) for (point = 0; point < triangleCount; ++point)
{ {
this.faceColor[point] = (short) var2.readUnsignedShort(); model.faceColor[point] = (short) var2.readUnsignedShort();
if (var13 == 1) if (var13 == 1)
{ {
this.faceRenderType[point] = var24.readByte(); model.faceRenderType[point] = var24.readByte();
} }
if (modelPriority == 255) if (modelPriority == 255)
{ {
this.faceRenderPriorities[point] = var3.readByte(); model.faceRenderPriorities[point] = var3.readByte();
} }
if (var50 == 1) if (var50 == 1)
{ {
this.faceAlphas[point] = var28.readByte(); model.faceAlphas[point] = var28.readByte();
} }
if (var17 == 1) if (var17 == 1)
{ {
this.triangleSkinValues[point] = var6.readUnsignedByte(); model.triangleSkinValues[point] = var6.readUnsignedByte();
} }
if (modelTexture == 1) 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; trianglePointY = var2.readShortSmart() + trianglePointX;
trianglePointZ = var2.readShortSmart() + trianglePointY; trianglePointZ = var2.readShortSmart() + trianglePointY;
vertexYOffset = trianglePointZ; vertexYOffset = trianglePointZ;
this.trianglePointsX[vertexZOffset] = trianglePointX; model.trianglePointsX[vertexZOffset] = trianglePointX;
this.trianglePointsY[vertexZOffset] = trianglePointY; model.trianglePointsY[vertexZOffset] = trianglePointY;
this.trianglePointsZ[vertexZOffset] = trianglePointZ; model.trianglePointsZ[vertexZOffset] = trianglePointZ;
} }
if (numFaces == 2) if (numFaces == 2)
@@ -319,9 +323,9 @@ public class ModelLoader extends ModelDefinition
trianglePointY = trianglePointZ; trianglePointY = trianglePointZ;
trianglePointZ = var2.readShortSmart() + vertexYOffset; trianglePointZ = var2.readShortSmart() + vertexYOffset;
vertexYOffset = trianglePointZ; vertexYOffset = trianglePointZ;
this.trianglePointsX[vertexZOffset] = trianglePointX; model.trianglePointsX[vertexZOffset] = trianglePointX;
this.trianglePointsY[vertexZOffset] = trianglePointY; model.trianglePointsY[vertexZOffset] = trianglePointY;
this.trianglePointsZ[vertexZOffset] = trianglePointZ; model.trianglePointsZ[vertexZOffset] = trianglePointZ;
} }
if (numFaces == 3) if (numFaces == 3)
@@ -329,9 +333,9 @@ public class ModelLoader extends ModelDefinition
trianglePointX = trianglePointZ; trianglePointX = trianglePointZ;
trianglePointZ = var2.readShortSmart() + vertexYOffset; trianglePointZ = var2.readShortSmart() + vertexYOffset;
vertexYOffset = trianglePointZ; vertexYOffset = trianglePointZ;
this.trianglePointsX[vertexZOffset] = trianglePointX; model.trianglePointsX[vertexZOffset] = trianglePointX;
this.trianglePointsY[vertexZOffset] = trianglePointY; model.trianglePointsY[vertexZOffset] = trianglePointY;
this.trianglePointsZ[vertexZOffset] = trianglePointZ; model.trianglePointsZ[vertexZOffset] = trianglePointZ;
} }
if (numFaces == 4) if (numFaces == 4)
@@ -341,9 +345,9 @@ public class ModelLoader extends ModelDefinition
trianglePointY = var57; trianglePointY = var57;
trianglePointZ = var2.readShortSmart() + vertexYOffset; trianglePointZ = var2.readShortSmart() + vertexYOffset;
vertexYOffset = trianglePointZ; vertexYOffset = trianglePointZ;
this.trianglePointsX[vertexZOffset] = trianglePointX; model.trianglePointsX[vertexZOffset] = trianglePointX;
this.trianglePointsY[vertexZOffset] = var57; model.trianglePointsY[vertexZOffset] = var57;
this.trianglePointsZ[vertexZOffset] = trianglePointZ; model.trianglePointsZ[vertexZOffset] = trianglePointZ;
} }
} }
@@ -356,52 +360,52 @@ public class ModelLoader extends ModelDefinition
for (int texIndex = 0; texIndex < textureTriangleCount; ++texIndex) for (int texIndex = 0; texIndex < textureTriangleCount; ++texIndex)
{ {
int type = this.textureRenderTypes[texIndex] & 255; int type = model.textureRenderTypes[texIndex] & 255;
if (type == 0) if (type == 0)
{ {
this.texTriangleX[texIndex] = (short) var2.readUnsignedShort(); model.texTriangleX[texIndex] = (short) var2.readUnsignedShort();
this.texTriangleY[texIndex] = (short) var2.readUnsignedShort(); model.texTriangleY[texIndex] = (short) var2.readUnsignedShort();
this.texTriangleZ[texIndex] = (short) var2.readUnsignedShort(); model.texTriangleZ[texIndex] = (short) var2.readUnsignedShort();
} }
if (type == 1) if (type == 1)
{ {
this.texTriangleX[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
this.texTriangleY[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
this.texTriangleZ[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
this.aShortArray2574[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2575[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2586[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2577[texIndex] = (short) var28.readUnsignedShort(); model.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
this.aByteArray2580[texIndex] = var6.readByte(); model.aByteArray2580[texIndex] = var6.readByte();
this.aShortArray2578[texIndex] = (short) var55.readUnsignedShort(); model.aShortArray2578[texIndex] = (short) var55.readUnsignedShort();
} }
if (type == 2) if (type == 2)
{ {
this.texTriangleX[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
this.texTriangleY[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
this.texTriangleZ[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
this.aShortArray2574[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2575[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2586[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2577[texIndex] = (short) var28.readUnsignedShort(); model.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
this.aByteArray2580[texIndex] = var6.readByte(); model.aByteArray2580[texIndex] = var6.readByte();
this.aShortArray2578[texIndex] = (short) var55.readUnsignedShort(); model.aShortArray2578[texIndex] = (short) var55.readUnsignedShort();
this.texturePrimaryColor[texIndex] = (short) var55.readUnsignedShort(); model.texturePrimaryColor[texIndex] = (short) var55.readUnsignedShort();
} }
if (type == 3) if (type == 3)
{ {
this.texTriangleX[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleX[texIndex] = (short) var24.readUnsignedShort();
this.texTriangleY[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleY[texIndex] = (short) var24.readUnsignedShort();
this.texTriangleZ[texIndex] = (short) var24.readUnsignedShort(); model.texTriangleZ[texIndex] = (short) var24.readUnsignedShort();
this.aShortArray2574[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2574[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2575[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2575[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2586[texIndex] = (short) var3.readUnsignedShort(); model.aShortArray2586[texIndex] = (short) var3.readUnsignedShort();
this.aShortArray2577[texIndex] = (short) var28.readUnsignedShort(); model.aShortArray2577[texIndex] = (short) var28.readUnsignedShort();
this.aByteArray2580[texIndex] = var6.readByte(); model.aByteArray2580[texIndex] = var6.readByte();
this.aShortArray2578[texIndex] = (short) var55.readUnsignedShort(); 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 var2 = false;
boolean var43 = false; boolean var43 = false;
@@ -484,55 +488,55 @@ public class ModelLoader extends ModelDefinition
int var35 = var46; int var35 = var46;
var46 += var20; var46 += var20;
int var10000 = var46 + var36; int var10000 = var46 + var36;
this.vertexCount = var10; model.vertexCount = var10;
this.triangleFaceCount = var11; model.triangleFaceCount = var11;
this.anInt2569 = var12; model.anInt2569 = var12;
this.vertexX = new int[var10]; model.vertexX = new int[var10];
this.vertexY = new int[var10]; model.vertexY = new int[var10];
this.vertexZ = new int[var10]; model.vertexZ = new int[var10];
this.trianglePointsX = new int[var11]; model.trianglePointsX = new int[var11];
this.trianglePointsY = new int[var11]; model.trianglePointsY = new int[var11];
this.trianglePointsZ = new int[var11]; model.trianglePointsZ = new int[var11];
if (var12 > 0) if (var12 > 0)
{ {
this.textureRenderTypes = new byte[var12]; model.textureRenderTypes = new byte[var12];
this.texTriangleX = new short[var12]; model.texTriangleX = new short[var12];
this.texTriangleY = new short[var12]; model.texTriangleY = new short[var12];
this.texTriangleZ = new short[var12]; model.texTriangleZ = new short[var12];
} }
if (var28 == 1) if (var28 == 1)
{ {
this.vertexSkins = new int[var10]; model.vertexSkins = new int[var10];
} }
if (var13 == 1) if (var13 == 1)
{ {
this.faceRenderType = new byte[var11]; model.faceRenderType = new byte[var11];
this.textureCoords = new byte[var11]; model.textureCoords = new byte[var11];
this.faceTextures = new short[var11]; model.faceTextures = new short[var11];
} }
if (var14 == 255) if (var14 == 255)
{ {
this.faceRenderPriorities = new byte[var11]; model.faceRenderPriorities = new byte[var11];
} }
else else
{ {
this.priority = (byte) var14; model.priority = (byte) var14;
} }
if (var30 == 1) if (var30 == 1)
{ {
this.faceAlphas = new byte[var11]; model.faceAlphas = new byte[var11];
} }
if (var15 == 1) 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); var5.setOffset(var16);
var39.setOffset(var34); var39.setOffset(var34);
var26.setOffset(var35); var26.setOffset(var35);
@@ -568,15 +572,15 @@ public class ModelLoader extends ModelDefinition
var7 = var9.readShortSmart(); var7 = var9.readShortSmart();
} }
this.vertexX[var18] = var41 + var31; model.vertexX[var18] = var41 + var31;
this.vertexY[var18] = var33 + var6; model.vertexY[var18] = var33 + var6;
this.vertexZ[var18] = var19 + var7; model.vertexZ[var18] = var19 + var7;
var41 = this.vertexX[var18]; var41 = model.vertexX[var18];
var33 = this.vertexY[var18]; var33 = model.vertexY[var18];
var19 = this.vertexZ[var18]; var19 = model.vertexZ[var18];
if (var28 == 1) 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) for (var18 = 0; var18 < var11; ++var18)
{ {
this.faceColor[var18] = (short) var5.readUnsignedShort(); model.faceColor[var18] = (short) var5.readUnsignedShort();
if (var13 == 1) if (var13 == 1)
{ {
var8 = var39.readUnsignedByte(); var8 = var39.readUnsignedByte();
if ((var8 & 1) == 1) if ((var8 & 1) == 1)
{ {
this.faceRenderType[var18] = 1; model.faceRenderType[var18] = 1;
var2 = true; var2 = true;
} }
else else
{ {
this.faceRenderType[var18] = 0; model.faceRenderType[var18] = 0;
} }
if ((var8 & 2) == 2) if ((var8 & 2) == 2)
{ {
this.textureCoords[var18] = (byte) (var8 >> 2); model.textureCoords[var18] = (byte) (var8 >> 2);
this.faceTextures[var18] = this.faceColor[var18]; model.faceTextures[var18] = model.faceColor[var18];
this.faceColor[var18] = 127; model.faceColor[var18] = 127;
if (this.faceTextures[var18] != -1) if (model.faceTextures[var18] != -1)
{ {
var43 = true; var43 = true;
} }
} }
else else
{ {
this.textureCoords[var18] = -1; model.textureCoords[var18] = -1;
this.faceTextures[var18] = -1; model.faceTextures[var18] = -1;
} }
} }
if (var14 == 255) if (var14 == 255)
{ {
this.faceRenderPriorities[var18] = var26.readByte(); model.faceRenderPriorities[var18] = var26.readByte();
} }
if (var30 == 1) if (var30 == 1)
{ {
this.faceAlphas[var18] = var9.readByte(); model.faceAlphas[var18] = var9.readByte();
} }
if (var15 == 1) 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; var8 = var5.readShortSmart() + var18;
var31 = var5.readShortSmart() + var8; var31 = var5.readShortSmart() + var8;
var6 = var31; var6 = var31;
this.trianglePointsX[var7] = var18; model.trianglePointsX[var7] = var18;
this.trianglePointsY[var7] = var8; model.trianglePointsY[var7] = var8;
this.trianglePointsZ[var7] = var31; model.trianglePointsZ[var7] = var31;
} }
if (var22 == 2) if (var22 == 2)
@@ -663,9 +667,9 @@ public class ModelLoader extends ModelDefinition
var8 = var31; var8 = var31;
var31 = var5.readShortSmart() + var6; var31 = var5.readShortSmart() + var6;
var6 = var31; var6 = var31;
this.trianglePointsX[var7] = var18; model.trianglePointsX[var7] = var18;
this.trianglePointsY[var7] = var8; model.trianglePointsY[var7] = var8;
this.trianglePointsZ[var7] = var31; model.trianglePointsZ[var7] = var31;
} }
if (var22 == 3) if (var22 == 3)
@@ -673,9 +677,9 @@ public class ModelLoader extends ModelDefinition
var18 = var31; var18 = var31;
var31 = var5.readShortSmart() + var6; var31 = var5.readShortSmart() + var6;
var6 = var31; var6 = var31;
this.trianglePointsX[var7] = var18; model.trianglePointsX[var7] = var18;
this.trianglePointsY[var7] = var8; model.trianglePointsY[var7] = var8;
this.trianglePointsZ[var7] = var31; model.trianglePointsZ[var7] = var31;
} }
if (var22 == 4) if (var22 == 4)
@@ -685,9 +689,9 @@ public class ModelLoader extends ModelDefinition
var8 = var21; var8 = var21;
var31 = var5.readShortSmart() + var6; var31 = var5.readShortSmart() + var6;
var6 = var31; var6 = var31;
this.trianglePointsX[var7] = var18; model.trianglePointsX[var7] = var18;
this.trianglePointsY[var7] = var21; model.trianglePointsY[var7] = var21;
this.trianglePointsZ[var7] = var31; model.trianglePointsZ[var7] = var31;
} }
} }
@@ -695,24 +699,24 @@ public class ModelLoader extends ModelDefinition
for (var7 = 0; var7 < var12; ++var7) for (var7 = 0; var7 < var12; ++var7)
{ {
this.textureRenderTypes[var7] = 0; model.textureRenderTypes[var7] = 0;
this.texTriangleX[var7] = (short) var5.readUnsignedShort(); model.texTriangleX[var7] = (short) var5.readUnsignedShort();
this.texTriangleY[var7] = (short) var5.readUnsignedShort(); model.texTriangleY[var7] = (short) var5.readUnsignedShort();
this.texTriangleZ[var7] = (short) var5.readUnsignedShort(); model.texTriangleZ[var7] = (short) var5.readUnsignedShort();
} }
if (this.textureCoords != null) if (model.textureCoords != null)
{ {
boolean var45 = false; boolean var45 = false;
for (var22 = 0; var22 < var11; ++var22) for (var22 = 0; var22 < var11; ++var22)
{ {
var21 = this.textureCoords[var22] & 255; var21 = model.textureCoords[var22] & 255;
if (var21 != 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 else
{ {
@@ -723,18 +727,18 @@ public class ModelLoader extends ModelDefinition
if (!var45) if (!var45)
{ {
this.textureCoords = null; model.textureCoords = null;
} }
} }
if (!var43) if (!var43)
{ {
this.faceTextures = null; model.faceTextures = null;
} }
if (!var2) if (!var2)
{ {
this.faceRenderType = null; model.faceRenderType = null;
} }
} }

View File

@@ -32,6 +32,7 @@ package net.runelite.modelviewer;
import java.awt.Color; import java.awt.Color;
import java.io.File; import java.io.File;
import java.nio.file.Files; import java.nio.file.Files;
import net.runelite.cache.definitions.ModelDefinition;
import net.runelite.cache.definitions.loaders.ModelLoader; import net.runelite.cache.definitions.loaders.ModelLoader;
import org.lwjgl.opengl.Display; import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode; import org.lwjgl.opengl.DisplayMode;
@@ -49,9 +50,9 @@ public class ModelViewer
System.exit(1); System.exit(1);
} }
ModelLoader md = new ModelLoader(); ModelLoader loader = new ModelLoader();
byte[] b = Files.readAllBytes(new File(args[0]).toPath()); byte[] b = Files.readAllBytes(new File(args[0]).toPath());
md.load(b); ModelDefinition md = loader.load(b);
Display.setDisplayMode(new DisplayMode(800, 600)); Display.setDisplayMode(new DisplayMode(800, 600));
Display.setTitle("Model Viewer"); Display.setTitle("Model Viewer");