Difference between revisions of "Collision PLG (RW Section)"
Jump to navigation
Jump to search
EnergyDrink (talk | contribs) (Add format) |
(No difference)
|
Latest revision as of 12:28, 15 July 2024
| Collision PLG | |
|---|---|
| RenderWare Stream Section | |
| Vendor | Criterion Games |
| Module | Toolkit |
| Module ID | 0x000001
|
| Identifier | 0x1D
|
| Chunk ID | 0x0000011D
|
| Versions | All |
| Hierarchy | |
| Parents: Geometry (Extension) | |
| Children: Coll Tree | |
| Extensions: None | |
| File Format | |
Structure
A Collision PLG either contains data itself if the version is older than 3.6 or stores a Coll Tree child structure if it's 3.6 or newer. The version in the chunk header is ignored. RenderWare reads the first uint32, which is restricted to uint16 in the older format (numLeafNodes). If the value is 0x36001 or greater, the new format is read. If it's smaller, the old format is read.
#if version < 0x36001
uint32 numLeafNodes
uint32 numTriangles
#repeat for numLeafNodes - 1
uint8 rightType, leftType (1 = Leaf, 2 = Branch)
uint16 type (Axis: 0 = X, 4 = Y, 8 = Z)
uint16 rightNode
uint16 leftNode
float32 leftValue
float32 rightValue
#endrepeat
#repeat for numLeafNodes
uint16 firstPolygon
uint16 numPolygons
#endrepeat
uint16 triangleMap[numTriangles]
#else
uint32 version
#endif