Given the following definitions, assuming I'm filling them right (I'm not able to compile it just yet but my main concern is with Java's signed bytes and ints, otherwise it should be right tomorrow morning), how do I build the Object3Ds?
class THobFile {
protected int obj_count;
protected THobObject[] objects;
public THobFile() {
objects = new THobObject[2];
}
public void setLength(int length) {
THobObject[] newObjects = new THobObject[length];
for (int i = 0; i < length && i < objects.length; i++)
newObjects[i] = objects[i];
objects = newObjects;
}
}
class THobObject {
byte[] name = new byte[16];
int face_group_offset, face_group_header_offset, face_group_header2_offset;
int face_group_count, face_group_count0;
protected THobFaceGroup[] face_groups;
public THobObject() {
face_groups = new THobFaceGroup[2];
}
public void setLength(int length) {
THobFaceGroup[] newFaces = new THobFaceGroup[length];
for (int i = 0; i < length && i < face_groups.length; i++)
newFaces[i] = face_groups[i];
face_groups = newFaces;
}
}
class THobFaceGroup {
protected int meshdef1_offset, face_block_end_offset, face_block_offset, vertex_block_offset;
protected int face_count;
protected THobFace[] faces;
protected int vertex_count;
protected Vector[] vertices;
public THobFaceGroup() {
faces = new THobFace[2];
}
public void setLength(int length) {
THobFace[] newFaces = new THobFace[length];
for (int i = 0; i < length && i < faces.length; i++)
newFaces[i] = faces[i];
faces = newFaces;
}
public void setVerticesLength(int length) {
Vector[] newVertices = new Vector[length];
for (int i = 0; i < length && i < vertices.length; i++)
newVertices[i] = vertices[i];
vertices = newVertices;
}
}
class THobFace {
protected int flags;
protected byte b1, b2, b3;
protected byte bsize;
protected byte ftype; //3 - tri, 4 - quad
protected short material_index;
protected short[] indices = new short[4];
protected TRGBA[] vertex_colors = new TRGBA[4];
protected TTexCoord[] tex_coords = new TTexCoord[4];
}
class TTexCoord {
protected short u, v;
}
class Vector {
protected float x, y, z, unknown;
public SimpleVector getSimpleVector() {
return new SimpleVector(x, y, z);
}
}