Well, PackBSP 2.0.4 may be delayed a bit due to extra complications in parsing the MDL files... In addition, I'm revisiting the idea of using Preon to more-easily program in the parsing rules. I tried it out a few months ago but decided to avoid it due to some blocking bugs. Now, however, with it getting a bit more activity and I want to see if it can replace some of my serviceable but-not-that-pretty code.
Here's a quick (incomplete) bit of sample code for MDL parsing. The Java class is being annotated so that the Preon framework can semi-magically shove data into it.
public class Mdl { @BoundString(match = "IDST", size = "4") protected String magicHeader; @BoundNumber protected int version; @BoundNumber protected int checksum; @BoundString(size = "64") protected String modelName; @BoundNumber protected int dataLength; @BoundObject protected Vector3f eyePosition; @BoundObject protected Vector3f illumposition; @BoundObject protected Vector3f hull_min; @BoundObject protected Vector3f hull_max; @BoundObject protected Vector3f view_bbmin; @BoundObject protected Vector3f view_bbmax; @BoundList(size="4") protected byte[] flags; //FIXME: Use boolean or bitset @BoundNumber protected int boneCount; @BoundNumber protected int boneIndex; @BoundList(offset="boneIndex",size="boneCount") protected Bone[] bones; }
Regarding this:
“protected byte[] flags; //FIXME: Use boolean or bitset”
… this should now be fixed. (That is, in the current head. There is no support for Bitset yet though.)