Originally Posted by
Professor Oak
That's weird. I packed index1 and obj.idx/obj.dat, results:
Thats because you cache packed the obj files. Load them from your cache root.
Incase someone needs the item readvals cuz they're leazy.
Code:
private void readValues(Buffer stream) {
do {
int opcode = stream.readUnsignedByte();
if (opcode == 0)
return;
if (opcode == 1)
inventoryModel = stream.readUShort();
else if (opcode == 2)
name = stream.readString();
else if (opcode == 3)
description = stream.readString();
else if (opcode == 4)
modelZoom = stream.readUShort();
else if (opcode == 5)
rotationX = stream.readUShort();
else if (opcode == 6)
rotationY = stream.readUShort();
else if (opcode == 7) {
offsetX = stream.readUShort();
if (offsetX > 32767)
offsetX -= 0x10000;
} else if (opcode == 8) {
offsetY = stream.readUShort();
if (offsetY > 32767)
offsetY -= 0x10000;
} else if (opcode == 11)
stackable = true;
else if (opcode == 12)
value = stream.readInt();
else if (opcode == 16)
membersObject = true;
else if (opcode == 23) {
maleModel0 = stream.readUShort();
maleOffset = stream.readSignedByte();
} else if (opcode == 24)
maleModel1 = stream.readUShort();
else if (opcode == 25) {
femaleModel0 = stream.readUShort();
femaleOffset = stream.readSignedByte();
} else if (opcode == 26)
femaleModel1 = stream.readUShort();
else if (opcode >= 30 && opcode < 35) {
if (groundOptions == null)
groundOptions = new String[5];
groundOptions[opcode - 30] = stream.readString();
if (groundOptions[opcode - 30].equalsIgnoreCase("hidden"))
groundOptions[opcode - 30] = null;
} else if (opcode >= 35 && opcode < 40) {
if (inventoryOptions == null)
inventoryOptions = new String[5];
inventoryOptions[opcode - 35] = stream.readString();
} else if (opcode == 40) {
int j = stream.readUnsignedByte();
originalModelColors = new int[j];
modifiedModelColors = new int[j];
for (int k = 0; k < j; k++) {
originalModelColors[k] = stream.readUShort();
modifiedModelColors[k] = stream.readUShort();
}
} else if (opcode == 41) {
int j = stream.readUnsignedByte();
textureFind = new int[j];
textureReplace = new int[j];
for (int k = 0; k < j; k++) {
textureFind[k] = stream.readUShort();
textureReplace[k] = stream.readUShort();
}
} else if (opcode == 65) {
stockMarket = true;
} else if (opcode == 78)
maleModel2 = stream.readUShort();
else if (opcode == 79)
femaleModel2 = stream.readUShort();
else if (opcode == 90)
maleHead0 = stream.readUShort();
else if (opcode == 91)
femaleHead0 = stream.readUShort();
else if (opcode == 92)
maleHead1 = stream.readUShort();
else if (opcode == 93)
femaleHead1 = stream.readUShort();
else if (opcode == 95)
iconRoll = stream.readUShort();
else if (opcode == 97)
notedId = stream.readUShort();
else if (opcode == 98)
notedTemplate = stream.readUShort();
else if (opcode >= 100 && opcode < 110) {
if (countObj == null) {
countObj = new int[10];
countCo = new int[10];
}
countObj[opcode - 100] = stream.readUShort();
countCo[opcode - 100] = stream.readUShort();
} else if (opcode == 110)
scaleX = stream.readUShort();
else if (opcode == 111)
scaleY = stream.readUShort();
else if (opcode == 112)
scaleZ = stream.readUShort();
else if (opcode == 113)
ambient = stream.readSignedByte();
else if (opcode == 114)
contrast = stream.readSignedByte();
else if (opcode == 115)
team = stream.readUnsignedByte();
else if (opcode == 139)
boughtLink = stream.readUShort();
else if (opcode == 140)
boughtTemplate = stream.readUShort();
/*
* else if (opcode == 148) opcode148 = stream.readUShort(); else if
* (opcode == 149) opcode149 = stream.readUShort();
*/
} while (true);
}