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.
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
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
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
Always 4
0x1A
0x2
int16_t
miNumPoints
0x1C
0x2
int16_t
miNumSafeNeighbours
0x1E
0x2
int16_t
miNumUnsafeNeighbours
0x20
0x4
uint32_t
muFlags
Unused
0x24
0xC
padding
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
Always 4
0x22
0x2
int16_t
miNumPoints
0x24
0x2
int16_t
miNumSafeNeighbours
0x26
0x2
int16_t
miNumUnsafeNeighbours
0x28
0x4
uint32_t
muFlags
Unused
0x2C
0x4
padding
CgsSceneManager::Neighbour [ edit | edit source ]
Offset
Size
Type
Name
Description
Comments
0x0
0x4
Zone *
mpZone
0x4
0x4
uint32_t
muFlags
See eNeighbourFlags
0x8
0x8
padding
Offset
Size
Type
Name
Description
Comments
0x0
0x8
Zone *
mpZone
0x8
0x4
uint32_t
muFlags
See eNeighbourFlags
0xC
0x4
padding
CgsSceneManager::Neighbour::eNeighbourFlags [ edit | edit source ]
Name
Value
Comments
E_RENDERFLAG_NONE
0x0
E_NEIGHBOURFLAG_RENDER
0x1
E_NEIGHBOURFLAG_IMMEDIATE
0x2