cache: refactor ModelLoader.decodeOldFormat variable names
This commit is contained in:
@@ -1088,325 +1088,314 @@ public class ModelLoader
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void decodeOldFormat(ModelDefinition def, byte[] var1)
|
void decodeOldFormat(ModelDefinition def, byte[] inputData)
|
||||||
{
|
{
|
||||||
boolean var2 = false;
|
boolean usesFaceRenderTypes = false;
|
||||||
boolean var3 = false;
|
boolean usesFaceTextures = false;
|
||||||
InputStream var4 = new InputStream(var1);
|
InputStream stream1 = new InputStream(inputData);
|
||||||
InputStream var5 = new InputStream(var1);
|
InputStream stream2 = new InputStream(inputData);
|
||||||
InputStream var6 = new InputStream(var1);
|
InputStream stream3 = new InputStream(inputData);
|
||||||
InputStream var7 = new InputStream(var1);
|
InputStream stream4 = new InputStream(inputData);
|
||||||
InputStream var8 = new InputStream(var1);
|
InputStream stream5 = new InputStream(inputData);
|
||||||
var4.setOffset(var1.length - 18);
|
stream1.setOffset(inputData.length - 18);
|
||||||
int var9 = var4.readUnsignedShort();
|
int vertexCount = stream1.readUnsignedShort();
|
||||||
int var10 = var4.readUnsignedShort();
|
int faceCount = stream1.readUnsignedShort();
|
||||||
int var11 = var4.readUnsignedByte();
|
int textureCount = stream1.readUnsignedByte();
|
||||||
int var12 = var4.readUnsignedByte();
|
int isTextured = stream1.readUnsignedByte();
|
||||||
int var13 = var4.readUnsignedByte();
|
int faceRenderPriority = stream1.readUnsignedByte();
|
||||||
int var14 = var4.readUnsignedByte();
|
int hasFaceTransparencies = stream1.readUnsignedByte();
|
||||||
int var15 = var4.readUnsignedByte();
|
int hasPackedTransparencyVertexGroups = stream1.readUnsignedByte();
|
||||||
int var16 = var4.readUnsignedByte();
|
int hasPackedVertexGroups = stream1.readUnsignedByte();
|
||||||
int var17 = var4.readUnsignedShort();
|
int vertexXDataByteCount = stream1.readUnsignedShort();
|
||||||
int var18 = var4.readUnsignedShort();
|
int vertexYDataByteCount = stream1.readUnsignedShort();
|
||||||
int var19 = var4.readUnsignedShort();
|
int vertezZDataByteCount = stream1.readUnsignedShort();
|
||||||
int var20 = var4.readUnsignedShort();
|
int faceIndexDataByteCount = stream1.readUnsignedShort();
|
||||||
byte var21 = 0;
|
byte offsetOfVertexFlags = 0;
|
||||||
int var22 = var21 + var9;
|
int dataOffset = offsetOfVertexFlags + vertexCount;
|
||||||
int var23 = var22;
|
int offsetOfFaceIndexCompressionTypes = dataOffset;
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
int var24 = var22;
|
int offsetOfFaceRenderPriorities = dataOffset;
|
||||||
if (var13 == 255)
|
if (faceRenderPriority == 255)
|
||||||
{
|
{
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var25 = var22;
|
int offsetOfPackedTransparencyVertexGroups = dataOffset;
|
||||||
if (var15 == 1)
|
if (hasPackedTransparencyVertexGroups == 1)
|
||||||
{
|
{
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var26 = var22;
|
int offsetOfFaceTextureFlags = dataOffset;
|
||||||
if (var12 == 1)
|
if (isTextured == 1)
|
||||||
{
|
{
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var27 = var22;
|
int offsetOfPackedVertexGroups = dataOffset;
|
||||||
if (var16 == 1)
|
if (hasPackedVertexGroups == 1)
|
||||||
{
|
{
|
||||||
var22 += var9;
|
dataOffset += vertexCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var28 = var22;
|
int offsetOfFaceTransparencies = dataOffset;
|
||||||
if (var14 == 1)
|
if (hasFaceTransparencies == 1)
|
||||||
{
|
{
|
||||||
var22 += var10;
|
dataOffset += faceCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
int var29 = var22;
|
int offsetOfFaceIndexData = dataOffset;
|
||||||
var22 += var20;
|
dataOffset += faceIndexDataByteCount;
|
||||||
int var30 = var22;
|
int offsetOfFaceColorsOrFaceTextures = dataOffset;
|
||||||
var22 += var10 * 2;
|
dataOffset += faceCount * 2;
|
||||||
int var31 = var22;
|
int offsetOfTextureIndices = dataOffset;
|
||||||
var22 += var11 * 6;
|
dataOffset += textureCount * 6;
|
||||||
int var32 = var22;
|
int offsetOfVertexXData = dataOffset;
|
||||||
var22 += var17;
|
dataOffset += vertexXDataByteCount;
|
||||||
int var33 = var22;
|
int offsetOfVertexYData = dataOffset;
|
||||||
var22 += var18;
|
dataOffset += vertexYDataByteCount;
|
||||||
int var10000 = var22 + var19;
|
int offsetOfVertexZData = dataOffset;
|
||||||
def.vertexCount = var9;
|
def.vertexCount = vertexCount;
|
||||||
def.faceCount = var10;
|
def.faceCount = faceCount;
|
||||||
def.numTextureFaces = var11;
|
def.numTextureFaces = textureCount;
|
||||||
def.vertexX = new int[var9];
|
def.vertexX = new int[vertexCount];
|
||||||
def.vertexY = new int[var9];
|
def.vertexY = new int[vertexCount];
|
||||||
def.vertexZ = new int[var9];
|
def.vertexZ = new int[vertexCount];
|
||||||
def.faceIndices1 = new int[var10];
|
def.faceIndices1 = new int[faceCount];
|
||||||
def.faceIndices2 = new int[var10];
|
def.faceIndices2 = new int[faceCount];
|
||||||
def.faceIndices3 = new int[var10];
|
def.faceIndices3 = new int[faceCount];
|
||||||
if (var11 > 0)
|
if (textureCount > 0)
|
||||||
{
|
{
|
||||||
def.textureRenderTypes = new byte[var11];
|
def.textureRenderTypes = new byte[textureCount];
|
||||||
def.texIndices1 = new short[var11];
|
def.texIndices1 = new short[textureCount];
|
||||||
def.texIndices2 = new short[var11];
|
def.texIndices2 = new short[textureCount];
|
||||||
def.texIndices3 = new short[var11];
|
def.texIndices3 = new short[textureCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var16 == 1)
|
if (hasPackedVertexGroups == 1)
|
||||||
{
|
{
|
||||||
def.packedVertexGroups = new int[var9];
|
def.packedVertexGroups = new int[vertexCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var12 == 1)
|
if (isTextured == 1)
|
||||||
{
|
{
|
||||||
def.faceRenderTypes = new byte[var10];
|
def.faceRenderTypes = new byte[faceCount];
|
||||||
def.textureCoords = new byte[var10];
|
def.textureCoords = new byte[faceCount];
|
||||||
def.faceTextures = new short[var10];
|
def.faceTextures = new short[faceCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var13 == 255)
|
if (faceRenderPriority == 255)
|
||||||
{
|
{
|
||||||
def.faceRenderPriorities = new byte[var10];
|
def.faceRenderPriorities = new byte[faceCount];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
def.priority = (byte) var13;
|
def.priority = (byte) faceRenderPriority;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var14 == 1)
|
if (hasFaceTransparencies == 1)
|
||||||
{
|
{
|
||||||
def.faceTransparencies = new byte[var10];
|
def.faceTransparencies = new byte[faceCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var15 == 1)
|
if (hasPackedTransparencyVertexGroups == 1)
|
||||||
{
|
{
|
||||||
def.packedTransparencyVertexGroups = new int[var10];
|
def.packedTransparencyVertexGroups = new int[faceCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
def.faceColors = new short[var10];
|
def.faceColors = new short[faceCount];
|
||||||
var4.setOffset(var21);
|
stream1.setOffset(offsetOfVertexFlags);
|
||||||
var5.setOffset(var32);
|
stream2.setOffset(offsetOfVertexXData);
|
||||||
var6.setOffset(var33);
|
stream3.setOffset(offsetOfVertexYData);
|
||||||
var7.setOffset(var22);
|
stream4.setOffset(offsetOfVertexZData);
|
||||||
var8.setOffset(var27);
|
stream5.setOffset(offsetOfPackedVertexGroups);
|
||||||
int var35 = 0;
|
int previousVertexX = 0;
|
||||||
int var36 = 0;
|
int previousVertexY = 0;
|
||||||
int var37 = 0;
|
int previousVertexZ = 0;
|
||||||
|
|
||||||
int var38;
|
for (int i = 0; i < vertexCount; ++i)
|
||||||
int var39;
|
|
||||||
int var40;
|
|
||||||
int var41;
|
|
||||||
int var42;
|
|
||||||
for (var38 = 0; var38 < var9; ++var38)
|
|
||||||
{
|
{
|
||||||
var39 = var4.readUnsignedByte();
|
int vertexFlags = stream1.readUnsignedByte();
|
||||||
var40 = 0;
|
int deltaX = 0;
|
||||||
if ((var39 & 1) != 0)
|
if ((vertexFlags & 1) != 0)
|
||||||
{
|
{
|
||||||
var40 = var5.readShortSmart();
|
deltaX = stream2.readShortSmart();
|
||||||
}
|
}
|
||||||
|
|
||||||
var41 = 0;
|
int deltaY = 0;
|
||||||
if ((var39 & 2) != 0)
|
if ((vertexFlags & 2) != 0)
|
||||||
{
|
{
|
||||||
var41 = var6.readShortSmart();
|
deltaY = stream3.readShortSmart();
|
||||||
}
|
}
|
||||||
|
|
||||||
var42 = 0;
|
int deltaZ = 0;
|
||||||
if ((var39 & 4) != 0)
|
if ((vertexFlags & 4) != 0)
|
||||||
{
|
{
|
||||||
var42 = var7.readShortSmart();
|
deltaZ = stream4.readShortSmart();
|
||||||
}
|
}
|
||||||
|
|
||||||
def.vertexX[var38] = var35 + var40;
|
def.vertexX[i] = previousVertexX + deltaX;
|
||||||
def.vertexY[var38] = var36 + var41;
|
def.vertexY[i] = previousVertexY + deltaY;
|
||||||
def.vertexZ[var38] = var37 + var42;
|
def.vertexZ[i] = previousVertexZ + deltaZ;
|
||||||
var35 = def.vertexX[var38];
|
previousVertexX = def.vertexX[i];
|
||||||
var36 = def.vertexY[var38];
|
previousVertexY = def.vertexY[i];
|
||||||
var37 = def.vertexZ[var38];
|
previousVertexZ = def.vertexZ[i];
|
||||||
if (var16 == 1)
|
if (hasPackedVertexGroups == 1)
|
||||||
{
|
{
|
||||||
def.packedVertexGroups[var38] = var8.readUnsignedByte();
|
def.packedVertexGroups[i] = stream5.readUnsignedByte();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var4.setOffset(var30);
|
stream1.setOffset(offsetOfFaceColorsOrFaceTextures);
|
||||||
var5.setOffset(var26);
|
stream2.setOffset(offsetOfFaceTextureFlags);
|
||||||
var6.setOffset(var24);
|
stream3.setOffset(offsetOfFaceRenderPriorities);
|
||||||
var7.setOffset(var28);
|
stream4.setOffset(offsetOfFaceTransparencies);
|
||||||
var8.setOffset(var25);
|
stream5.setOffset(offsetOfPackedTransparencyVertexGroups);
|
||||||
|
|
||||||
for (var38 = 0; var38 < var10; ++var38)
|
for (int i = 0; i < faceCount; ++i)
|
||||||
{
|
{
|
||||||
def.faceColors[var38] = (short) var4.readUnsignedShort();
|
def.faceColors[i] = (short) stream1.readUnsignedShort();
|
||||||
if (var12 == 1)
|
if (isTextured == 1)
|
||||||
{
|
{
|
||||||
var39 = var5.readUnsignedByte();
|
int faceTextureFlags = stream2.readUnsignedByte();
|
||||||
if ((var39 & 1) == 1)
|
if ((faceTextureFlags & 1) == 1)
|
||||||
{
|
{
|
||||||
def.faceRenderTypes[var38] = 1;
|
def.faceRenderTypes[i] = 1;
|
||||||
var2 = true;
|
usesFaceRenderTypes = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
def.faceRenderTypes[var38] = 0;
|
def.faceRenderTypes[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((var39 & 2) == 2)
|
if ((faceTextureFlags & 2) == 2)
|
||||||
{
|
{
|
||||||
def.textureCoords[var38] = (byte) (var39 >> 2);
|
def.textureCoords[i] = (byte) (faceTextureFlags >> 2);
|
||||||
def.faceTextures[var38] = def.faceColors[var38];
|
def.faceTextures[i] = def.faceColors[i];
|
||||||
def.faceColors[var38] = 127;
|
def.faceColors[i] = 127;
|
||||||
if (def.faceTextures[var38] != -1)
|
if (def.faceTextures[i] != -1)
|
||||||
{
|
{
|
||||||
var3 = true;
|
usesFaceTextures = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
def.textureCoords[var38] = -1;
|
def.textureCoords[i] = -1;
|
||||||
def.faceTextures[var38] = -1;
|
def.faceTextures[i] = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var13 == 255)
|
if (faceRenderPriority == 255)
|
||||||
{
|
{
|
||||||
def.faceRenderPriorities[var38] = var6.readByte();
|
def.faceRenderPriorities[i] = stream3.readByte();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var14 == 1)
|
if (hasFaceTransparencies == 1)
|
||||||
{
|
{
|
||||||
def.faceTransparencies[var38] = var7.readByte();
|
def.faceTransparencies[i] = stream4.readByte();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var15 == 1)
|
if (hasPackedTransparencyVertexGroups == 1)
|
||||||
{
|
{
|
||||||
def.packedTransparencyVertexGroups[var38] = var8.readUnsignedByte();
|
def.packedTransparencyVertexGroups[i] = stream5.readUnsignedByte();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var4.setOffset(var29);
|
stream1.setOffset(offsetOfFaceIndexData);
|
||||||
var5.setOffset(var23);
|
stream2.setOffset(offsetOfFaceIndexCompressionTypes);
|
||||||
var38 = 0;
|
int previousIndex1 = 0;
|
||||||
var39 = 0;
|
int previousIndex2 = 0;
|
||||||
var40 = 0;
|
int previousIndex3 = 0;
|
||||||
var41 = 0;
|
|
||||||
|
|
||||||
int var43;
|
for (int i = 0; i < faceCount; ++i)
|
||||||
int var44;
|
|
||||||
for (var42 = 0; var42 < var10; ++var42)
|
|
||||||
{
|
{
|
||||||
var43 = var5.readUnsignedByte();
|
int faceIndexCompressionType = stream2.readUnsignedByte();
|
||||||
if (var43 == 1)
|
if (faceIndexCompressionType == 1)
|
||||||
{
|
{
|
||||||
var38 = var4.readShortSmart() + var41;
|
previousIndex1 = stream1.readShortSmart() + previousIndex3;
|
||||||
var39 = var4.readShortSmart() + var38;
|
previousIndex2 = stream1.readShortSmart() + previousIndex1;
|
||||||
var40 = var4.readShortSmart() + var39;
|
previousIndex3 = stream1.readShortSmart() + previousIndex2;
|
||||||
var41 = var40;
|
def.faceIndices1[i] = previousIndex1;
|
||||||
def.faceIndices1[var42] = var38;
|
def.faceIndices2[i] = previousIndex2;
|
||||||
def.faceIndices2[var42] = var39;
|
def.faceIndices3[i] = previousIndex3;
|
||||||
def.faceIndices3[var42] = var40;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var43 == 2)
|
if (faceIndexCompressionType == 2)
|
||||||
{
|
{
|
||||||
var39 = var40;
|
previousIndex2 = previousIndex3;
|
||||||
var40 = var4.readShortSmart() + var41;
|
previousIndex3 = stream1.readShortSmart() + previousIndex3;
|
||||||
var41 = var40;
|
def.faceIndices1[i] = previousIndex1;
|
||||||
def.faceIndices1[var42] = var38;
|
def.faceIndices2[i] = previousIndex2;
|
||||||
def.faceIndices2[var42] = var39;
|
def.faceIndices3[i] = previousIndex3;
|
||||||
def.faceIndices3[var42] = var40;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var43 == 3)
|
if (faceIndexCompressionType == 3)
|
||||||
{
|
{
|
||||||
var38 = var40;
|
previousIndex1 = previousIndex3;
|
||||||
var40 = var4.readShortSmart() + var41;
|
previousIndex3 = stream1.readShortSmart() + previousIndex3;
|
||||||
var41 = var40;
|
def.faceIndices1[i] = previousIndex1;
|
||||||
def.faceIndices1[var42] = var38;
|
def.faceIndices2[i] = previousIndex2;
|
||||||
def.faceIndices2[var42] = var39;
|
def.faceIndices3[i] = previousIndex3;
|
||||||
def.faceIndices3[var42] = var40;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var43 == 4)
|
if (faceIndexCompressionType == 4)
|
||||||
{
|
{
|
||||||
var44 = var38;
|
int swap = previousIndex1;
|
||||||
var38 = var39;
|
previousIndex1 = previousIndex2;
|
||||||
var39 = var44;
|
previousIndex2 = swap;
|
||||||
var40 = var4.readShortSmart() + var41;
|
previousIndex3 = stream1.readShortSmart() + previousIndex3;
|
||||||
var41 = var40;
|
def.faceIndices1[i] = previousIndex1;
|
||||||
def.faceIndices1[var42] = var38;
|
def.faceIndices2[i] = previousIndex2;
|
||||||
def.faceIndices2[var42] = var44;
|
def.faceIndices3[i] = previousIndex3;
|
||||||
def.faceIndices3[var42] = var40;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var4.setOffset(var31);
|
stream1.setOffset(offsetOfTextureIndices);
|
||||||
|
|
||||||
for (var42 = 0; var42 < var11; ++var42)
|
for (int i = 0; i < textureCount; ++i)
|
||||||
{
|
{
|
||||||
def.textureRenderTypes[var42] = 0;
|
def.textureRenderTypes[i] = 0;
|
||||||
def.texIndices1[var42] = (short) var4.readUnsignedShort();
|
def.texIndices1[i] = (short) stream1.readUnsignedShort();
|
||||||
def.texIndices2[var42] = (short) var4.readUnsignedShort();
|
def.texIndices2[i] = (short) stream1.readUnsignedShort();
|
||||||
def.texIndices3[var42] = (short) var4.readUnsignedShort();
|
def.texIndices3[i] = (short) stream1.readUnsignedShort();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (def.textureCoords != null)
|
if (def.textureCoords != null)
|
||||||
{
|
{
|
||||||
boolean var45 = false;
|
boolean usesTextureCoords = false;
|
||||||
|
|
||||||
for (var43 = 0; var43 < var10; ++var43)
|
for (int i = 0; i < faceCount; ++i)
|
||||||
{
|
{
|
||||||
var44 = def.textureCoords[var43] & 255;
|
int coord = def.textureCoords[i] & 255;
|
||||||
if (var44 != 255)
|
if (coord != 255)
|
||||||
{
|
{
|
||||||
if (def.faceIndices1[var43] == (def.texIndices1[var44] & '\uffff') && def.faceIndices2[var43] == (def.texIndices2[var44] & '\uffff') && def.faceIndices3[var43] == (def.texIndices3[var44] & '\uffff'))
|
if (def.faceIndices1[i] == (def.texIndices1[coord] & '\uffff') && def.faceIndices2[i] == (def.texIndices2[coord] & '\uffff') && def.faceIndices3[i] == (def.texIndices3[coord] & '\uffff'))
|
||||||
{
|
{
|
||||||
def.textureCoords[var43] = -1;
|
def.textureCoords[i] = -1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var45 = true;
|
usesTextureCoords = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!var45)
|
if (!usesTextureCoords)
|
||||||
{
|
{
|
||||||
def.textureCoords = null;
|
def.textureCoords = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!var3)
|
if (!usesFaceTextures)
|
||||||
{
|
{
|
||||||
def.faceTextures = null;
|
def.faceTextures = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!var2)
|
if (!usesFaceRenderTypes)
|
||||||
{
|
{
|
||||||
def.faceRenderTypes = null;
|
def.faceRenderTypes = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user