Collision PLG (RW Section)
								
								Jump to navigation
				Jump to search
				
					
								
							
		| 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

