Hi all,
as some of you were interested in the collision files, I started to research them. There are 2 versions of collision files. Once there are simple collsion files with only 1 bounding box, and then there are collision files with several sections (several bounding boxes, probably for more complex objects which can't be represented with 1 single bounding box).
Simple *.col-version:
CBBX - "Cube BoundingBox"
{
//Defines origin base position of the whole mesh
FLOAT CenterXAxis;
FLOAT CenterZAxis;
FLOAT CenterYAxis;
FLOAT MaximumXAxis; //Global final position: CenterXAxis +- MaximumXAxis
FLOAT MaximumZAxis; //Global final position: CenterZAxis +- MaximumZAxis
FLOAT MaximumYAxis; //Global final position: CenterZAxis +- MaximumZAxis
DWORD Unknown1;
DWORD Diameter; //Maybe diameter for bounding sphere?
}
*.col version with several sections:
CBBX - "Cube BoundingBox" (file with multiple sections)
{
//Defines origin base position of the whole mesh
FLOAT CenterXAxis;
FLOAT CenterZAxis;
FLOAT CenterYAxis;
FLOAT MaximumXAxis; //Global final position: CenterXAxis +- MaximumXAxis
FLOAT MaximumZAxis; //Global final position: CenterZAxis +- MaximumZAxis
FLOAT MaximumYAxis; //Global final position: CenterZAxis +- MaximumZAxis
DWORD Diameter; //Maybe diameter for bounding sphere?
}
COL - "Collision"
{
DWORD Unknown;
DWORD NumberOfBoundingBoxes;
DWORD Unknown;
}
struct BoundingBox
{
//The following is representing 1 vertex
//Maximum on X axis
FLOAT MaximumX; //x coordinate of first point
FLOAT MaximumY; //y coordinate of first point
FLOAT MaximumZ; //z coordinate of first point
//The following is representing 1 vertex
//Maximum on Z axis
FLOAT MaximumX; //x coordinate of first point
FLOAT MaximumY; //y coordinate of first point
FLOAT MaximumZ; //z coordinate of first point
FLOAT Unknown;
FLOAT Unknown;
FLOAT Unknown;
FLOAT Unknown;
FLOAT Unknown;
FLOAT Unknown;
}
GRDP - "Groupdata"
{
DOWRD NumberOfIndices;
DWORD Indices[ NumberOfIndices ];
}
On the more complex format you can see, that it is holding several bounding boxes, which are indexed in the "GRDP"-section. We know this pattern from *.msh-mesh files. As you can see, there are still some unknown variables. I could write a software which lets you create custom bounding boxes for your custom models, but I think it would be better to reserch the missing variables first.