Zone List: Difference between revisions
Content added Content deleted
m (Updated common data type links.) |
m (Fix comment) |
||
Line 52: | Line 52: | ||
| 0x10 || 0x8 || uint64_t || muZoneId || || |
| 0x10 || 0x8 || uint64_t || muZoneId || || |
||
|- |
|- |
||
| 0x18 || 0x2 || int16_t || miZoneType || || |
| 0x18 || 0x2 || int16_t || miZoneType || || |
||
|- |
|- |
||
| 0x1A || 0x2 || int16_t || miNumPoints || || |
| 0x1A || 0x2 || int16_t || miNumPoints || || Always 4 |
||
|- |
|- |
||
| 0x1C || 0x2 || int16_t || miNumSafeNeighbours || || |
| 0x1C || 0x2 || int16_t || miNumSafeNeighbours || || |
||
Line 77: | Line 77: | ||
| 0x18 || 0x8 || uint64_t || muZoneId || || |
| 0x18 || 0x8 || uint64_t || muZoneId || || |
||
|- |
|- |
||
| 0x20 || 0x2 || int16_t || miZoneType || || |
| 0x20 || 0x2 || int16_t || miZoneType || || |
||
|- |
|- |
||
| 0x22 || 0x2 || int16_t || miNumPoints || || |
| 0x22 || 0x2 || int16_t || miNumPoints || || Always 4 |
||
|- |
|- |
||
| 0x24 || 0x2 || int16_t || miNumSafeNeighbours || || |
| 0x24 || 0x2 || int16_t || miNumSafeNeighbours || || |
Revision as of 00:07, 11 July 2023
The zone list resource type is used in the PVS (potentially visible segments) bundle. Its purpose is to tell the game which track units to load when the player enters a certain track unit.
Structures
CgsSceneManager::ZoneList
32-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | Vector2* | mpPoints | ||
0x4 | 0x4 | Zone* | mpZones | ||
0x8 | 0x4 | uint32_t* | mpuZonePointStarts | ||
0xC | 0x4 | int16_t* | mpiZonePointCounts | ||
0x10 | 0x4 | uint32_t | muTotalZones | ||
0x14 | 0x4 | uint32_t | muTotalPoints |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Vector2* | mpPoints | ||
0x8 | 0x8 | Zone* | mpZones | ||
0x10 | 0x8 | uint32_t* | mpuZonePointStarts | ||
0x18 | 0x8 | int16_t* | mpiZonePointCounts | ||
0x20 | 0x4 | uint32_t | muTotalZones | ||
0x24 | 0x4 | uint32_t | muTotalPoints |
CgsSceneManager::Zone
32-bit
Offset | Size | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | Vector2* | mpPoints | ||
0x4 | 0x4 | Neighbour* | mpSafeNeighbours | ||
0x8 | 0x4 | Neighbour* | mpUnsafeNeighbours | ||
0xC | 0x4 | padding | |||
0x10 | 0x8 | uint64_t | muZoneId | ||
0x18 | 0x2 | int16_t | miZoneType | ||
0x1A | 0x2 | int16_t | miNumPoints | Always 4 | |
0x1C | 0x2 | int16_t | miNumSafeNeighbours | ||
0x1E | 0x2 | int16_t | miNumUnsafeNeighbours | ||
0x20 | 0x4 | uint32_t | muFlags | Unused | |
0x24 | 0xC | padding |
64-bit
Offset | Length | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Vector2* | mpPoints | ||
0x8 | 0x8 | Neighbour* | mpSafeNeighbours | ||
0x10 | 0x8 | Neighbour* | mpUnsafeNeighbours | ||
0x18 | 0x8 | uint64_t | muZoneId | ||
0x20 | 0x2 | int16_t | miZoneType | ||
0x22 | 0x2 | int16_t | miNumPoints | Always 4 | |
0x24 | 0x2 | int16_t | miNumSafeNeighbours | ||
0x26 | 0x2 | int16_t | miNumUnsafeNeighbours | ||
0x28 | 0x4 | uint32_t | muFlags | Unused | |
0x2C | 0x4 | padding |
CgsSceneManager::Neighbour
32-bit
Offset | Size | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x4 | Zone* | mpZone | ||
0x4 | 0x4 | uint32_t | muFlags | See eNeighbourFlags | |
0x8 | 0x8 | padding |
64-bit
Offset | Size | Type | Name | Description | Comments |
---|---|---|---|---|---|
0x0 | 0x8 | Zone* | mpZone | ||
0x8 | 0x4 | uint32_t | muFlags | See eNeighbourFlags | |
0xC | 0x4 | padding |
Enumerations
CgsSceneManager::Neighbour::eNeighbourFlags
Name | Value | Comments |
---|---|---|
E_RENDERFLAG_NONE | 0x0 | |
E_NEIGHBOURFLAG_RENDER | 0x1 | |
E_NEIGHBOURFLAG_IMMEDIATE | 0x2 |