Streamed Track Data: Difference between revisions
Content added Content deleted
AcuteSyntax (talk | contribs) mNo edit summary |
AcuteSyntax (talk | contribs) No edit summary |
||
Line 21: | Line 21: | ||
|- |
|- |
||
| 0x58 || Is LOD? || bool32 || || |
| 0x58 || Is LOD? || bool32 || || |
||
|} |
|||
=== LOD/Collision Data === |
|||
{| class="wikitable" |
|||
! Offset |
|||
! Name |
|||
! Type |
|||
! Value |
|||
! Notes |
|||
|- |
|||
| 0x60 || Track hull || Track Hull || || |
|||
|- |
|||
| 0x90 || Collision tree pointer || Collision Tree* || || |
|||
|} |
|} |
||
Line 75: | Line 88: | ||
|- |
|- |
||
| 0x3C || Reserved (13) || word || || |
| 0x3C || Reserved (13) || word || || |
||
|} |
|||
=== Collision Tree === |
|||
{| class="wikitable" |
|||
! Offset |
|||
! Name |
|||
! Type |
|||
! Value |
|||
! Notes |
|||
|- |
|||
| 0x00 || Bounding box || Bounding Box || || |
|||
|- |
|||
| 0x20 || Node branch array || Node Branch*[] || || Pointer to an array of Node Branches |
|||
|- |
|||
| 0x24 || Polygon soups || Polygon Soup*[] || || Pointer to an array of Polygon Soups |
|||
|- |
|||
| 0x28 || Polygon soup count || uint16 || || |
|||
|- |
|||
| 0x2A || Node branch count || uint16 || || |
|||
|- |
|||
| 0x2C || Is 16-bit? || bool32 || || |
|||
|} |
|||
=== Node Branch === |
|||
{| class="wikitable" |
|||
! Offset |
|||
! Name |
|||
! Type |
|||
! Value |
|||
! Notes |
|||
|- |
|||
! colspan="5" | Node Branch |
|||
|- |
|||
| 0x00 || Left node detail || Node Detail || || |
|||
|- |
|||
| 0x08 || Right node detail || Node Detail || || |
|||
|- |
|||
! colspan="5" | Node Detail |
|||
|- |
|||
| 0x00 || Value || float || || |
|||
|- |
|||
| 0x04 || Index || uint16 || || |
|||
|- |
|||
| 0x06 || Type || uint8 || || |
|||
|- |
|||
| 0x07 || Contents || uint8 || |
|||
|} |
|} |
Revision as of 19:24, 21 April 2021
This format contains the mesh data and collision geometry of a single track unit. All of a given track's streamed objects are stored together as an array, in a single file named STREAMED.DAT
.
Layout
Track Data
Offset | Name | Type | Value | Notes |
---|---|---|---|---|
0x00 | Loaded state | ELoadedState | 0x00 = Not Loaded 0x01 = Loaded 0x02 = Usable 0x03 = Maximum States | |
0x04 | Original hull ID | int | ||
0x08 | Data size (bytes) | int32 | ||
0x10 | Bounding box | Bounding Box | ||
0x50 | World render object | Track Render Object | ||
0x58 | Is LOD? | bool32 |
LOD/Collision Data
Offset | Name | Type | Value | Notes |
---|---|---|---|---|
0x60 | Track hull | Track Hull | ||
0x90 | Collision tree pointer | Collision Tree* |
Track Render Object
Offset | Name | Type | Value | Notes |
---|---|---|---|---|
0x00 | Mesh count | int16 | ||
0x04 | Meshes | Track Mesh*[] | Pointer to an array of Track Meshes |
Track Mesh
Offset | Name | Type | Value | Notes |
---|---|---|---|---|
0x00 | Reserved (1) | word | ||
0x04 | Reserved (2) | word | ||
0x08 | Reserved (3) | word | ||
0x0C | Render data (first) | word* | ||
0x10 | Reserved (4) | word | ||
0x14 | Reserved (5) | word | ||
0x18 | Reserved (6) | word | ||
0x1C | Render data (rest) | word* | ||
0x20 | Reserved (7) | word | ||
0x24 | Reserved (8) | word | ||
0x28 | Reserved (9) | word | ||
0x2C | Chained mesh | int | ||
0x30 | Reserved (10) | float | ||
0x34 | Reserved (11) | float | ||
0x38 | Reserved (12) | float | ||
0x3C | Reserved (13) | word |
Collision Tree
Offset | Name | Type | Value | Notes |
---|---|---|---|---|
0x00 | Bounding box | Bounding Box | ||
0x20 | Node branch array | Node Branch*[] | Pointer to an array of Node Branches | |
0x24 | Polygon soups | Polygon Soup*[] | Pointer to an array of Polygon Soups | |
0x28 | Polygon soup count | uint16 | ||
0x2A | Node branch count | uint16 | ||
0x2C | Is 16-bit? | bool32 |
Node Branch
Offset | Name | Type | Value | Notes |
---|---|---|---|---|
Node Branch | ||||
0x00 | Left node detail | Node Detail | ||
0x08 | Right node detail | Node Detail | ||
Node Detail | ||||
0x00 | Value | float | ||
0x04 | Index | uint16 | ||
0x06 | Type | uint8 | ||
0x07 | Contents | uint8 |