Code:
private void readValues(Stream stream) {
do {
int i = stream.readUnsignedByte();
if (i == 0)
return;
if (i == 1)
modelID = stream.readUnsignedWord();
else if (i == 2)
name = stream.readString();
else if (i == 3)
description = stream.readString().getBytes();
else if (i == 4)
modelZoom = stream.readUnsignedWord();
else if (i == 5)
modelRotationY = stream.readUnsignedWord();
else if (i == 6)
modelRotationX = stream.readUnsignedWord();
else if (i == 7) {
modelOffset1 = stream.readUnsignedWord();
if (modelOffset1 > 32767)
modelOffset1 -= 0x10000;
} else if (i == 8) {
modelOffset2 = stream.readUnsignedWord();
if (modelOffset2 > 32767)
modelOffset2 -= 0x10000;
} else if (i == 10)
stream.readUnsignedWord();
else if (i == 11)
stackable = true;
else if (i == 12)
value = stream.readDWord();
else if (i == 16)
membersObject = true;
else if (i == 23) {
anInt165 = stream.readUnsignedWord();
aByte205 = stream.readSignedByte();
} else if (i == 24)
anInt188 = stream.readUnsignedWord();
else if (i == 25) {
anInt200 = stream.readUnsignedWord();
aByte154 = stream.readSignedByte();
} else if (i == 26)
anInt164 = stream.readUnsignedWord();
else if (i >= 30 && i < 35) {
if (groundActions == null)
groundActions = new String[5];
groundActions[i - 30] = stream.readString();
if (groundActions[i - 30].equalsIgnoreCase("hidden"))
groundActions[i - 30] = null;
} else if (i >= 35 && i < 40) {
if (itemActions == null)
itemActions = new String[5];
itemActions[i - 35] = stream.readString();
if (itemActions[i - 35].equalsIgnoreCase("hidden"))
itemActions[i - 35] = null;
} else if (i == 40) {
int j = stream.readUnsignedByte();
modifiedModelColors = new int[j];
originalModelColors = new int[j];
for (int k = 0; k < j; k++) {
originalModelColors[k] = stream.readUnsignedWord();
modifiedModelColors[k] = stream.readUnsignedWord();
}
} else if (i == 78)
anInt185 = stream.readUnsignedWord();
else if (i == 79)
anInt162 = stream.readUnsignedWord();
else if (i == 90)
anInt175 = stream.readUnsignedWord();
else if (i == 91)
anInt197 = stream.readUnsignedWord();
else if (i == 92)
anInt166 = stream.readUnsignedWord();
else if (i == 93)
anInt173 = stream.readUnsignedWord();
else if (i == 95)
anInt204 = stream.readUnsignedWord();
else if (i == 97)
certID = stream.readUnsignedWord();
else if (i == 98)
certTemplateID = stream.readUnsignedWord();
else if (i >= 100 && i < 110) {
if (stackIDs == null) {
stackIDs = new int[10];
stackAmounts = new int[10];
}
stackIDs[i - 100] = stream.readUnsignedWord();
stackAmounts[i - 100] = stream.readUnsignedWord();
} else if (i == 110)
anInt167 = stream.readUnsignedWord();
else if (i == 111)
anInt192 = stream.readUnsignedWord();
else if (i == 112)
anInt191 = stream.readUnsignedWord();
else if (i == 113)
anInt196 = stream.readSignedByte();
else if (i == 114)
anInt184 = stream.readSignedByte() * 5;
else if (i == 115)
team = stream.readUnsignedByte();
else
System.out.println("unknown opcode: " + i);
} while (true);
}
https://thispixel.com/obj.dat
https://thispixel.com/obj.idx