struct coord { s16 X; s16 Y; s16 Z; s16 d; }; struct collisionObj { u16 vertId1; u16 vertId2; u16 colId; u8 collisHeigth; u8 collisFlag; }; struct cylCollObj { u16 coordsVertex; u16 radius; u16 objectId; u8 collisHeigth; u8 collisFlag; }; struct boxObj { u16 coordsVertex; u16 boxId; u16 xWidth; u16 yWidth; u8 Heigth; u8 someFlag1; u8 someFlag2; u8 someFlag3; }; struct floorObj { u16 vertId1; u16 vertId2; u16 vertId3; u16 vertId4; u16 objectId; u8 Heigth; u8 someFlag; }; struct block { u32 blockSize; u32 blockOffset; }; struct header { block vertexMap; block collisionLines; block cylinders; block boxes; block floors; coord coords[vertexMap.blockSize] @ vertexMap.blockOffset; collisionObj coll[collisionLines.blockSize] @ collisionLines.blockOffset; cylCollObj cyl[cylinders.blockSize] @ cylinders.blockOffset; boxObj box[boxes.blockSize] @ boxes.blockOffset; floorObj floor[floors.blockSize] @ floors.blockOffset; }; header colls @ 0x00;