CLSN (File Format)
The CLSN format in Donkey Kong Country: Tropical Freeze is for static collision, usually used by world geometry.
| This file format is almost completely documented Collision materials need experimentation to verify structure + figure out what the different flags do |
Format
| Type | Count | Name | Description |
|---|---|---|---|
| Form Descriptor | 1 | Collision Form Descriptor | Data type is CLSN
|
| Chunk Descriptor | 1 | Vertices Chunk Descriptor | Data type is VERT
|
| u32 | 1 | Vertex Count | |
| vector3 | Vertex Count | Vertex Data | |
| Chunk Descriptor | 1 | Collision Materials Chunk Descriptor | Data type is MTRL
|
| u32 | 1 | Collision Material Count | |
| Collision Material | Collision Material Count | Collision Materials | Collision materials define collision properties. |
| Chunk Descriptor | 1 | Triangles Chunk Descriptor | Data type is TRIS
|
| u32 | 1 | Triangle Count | |
| Collision Triangle | Triangle Count | Triangles Array | |
| Chunk Descriptor | 1 | Tree Chunk Descriptor | Data type is TREE
|
| u32 | 1 | Leaf Node Count | |
| Tree Leaf Node | Leaf Node Count | Leaf Node Array | |
| End of file | |||
Collision Material
| Offset | Type | Count | Name | Description |
|---|---|---|---|---|
| 0x0 | u32 | 1 | Unknown | |
| 0x4 | u32 | 1 | Unknown | |
| 0x8 | u32 | 1 | Unknown | |
| 0xC | u32 | 1 | Unknown | |
| 0x10 | u32 | 1 | Unknown | |
| 0x14 | End of collision material | |||
Collision Triangle
| Offset | Type | Count | Name | Description |
|---|---|---|---|---|
| 0x0 | u32 | 3 | Vertex Indices | |
| 0xC | u16 | 1 | Collision Material Index | |
| 0xE | u16 | 1 | Unknown | Always 0? The game actually does read and store it, so it may not just be padding. |
| 0x10 | End of triangle | |||
Tree Leaf Node
| Offset | Type | Count | Name | Description |
|---|---|---|---|---|
| 0x0 | vector3 | 2 | Axis-Aligned Bounding Box | Represented by a pair of points where point 1 is min and point 2 is max. |
| 0x18 | u32 | 1 | Unknown | |
| 0x1C | u32 | 1 | Unknown | |
| 0x20 | u32 | 1 | Unknown | |
| 0x24 | End of leaf node | |||