Zone List: Difference between revisions

Add info and update for wiki display.
(Created page with "=== ZoneList === {| class="wikitable" ! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments |- | 0x0 || 0x4 || Vector2 * || mpPoints || || || |- | 0x4 || 0x4 || Zone * || mpZones || || Zone format || |- | 0x8 || 0x4 || uint32_t * || mpuZonePointStarts || || || |- | 0xC || 0x4 || int16_t * || mpiZonePointCounts || || || |- | 0x10 || 0x4 || uint32_t || muTotalZones || || || |- | 0x14 || 0x4 || uint32_t || muTotalPoints || || || |}...")
 
(Add info and update for wiki display.)
Line 1:
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.
=== ZoneList ===
 
= Structures =
=== CgsSceneManager::ZoneList ===
==== Zone32-bit ====
{| class="wikitable"
! Offset !! SizeLength !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x0 || 0x4 || [[Common_Data_Types_(Burnout_Paradise)#Vector2 | Vector2]]* || mpPoints || || ||
|-
| 0x4 || 0x4 || [[#CgsSceneManager::Zone | Zone]]* || mpZones || || Zone format ||
|-
| 0x8 || 0x4 || uint32_t * || mpuZonePointStarts || || ||
|-
| 0xC || 0x4 || int16_t * || mpiZonePointCounts || || ||
|-
| 0x10 || 0x4 || uint32_t || muTotalZones || || ||
|-
| 0x14 || 0x4 || uint32_t || muTotalPoints || || ||
|}
 
=== Zone ===
==== Zone64-bit ====
{| class="wikitable"
! Offset !! SizeLength !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x0 || 0x40x8 || [[Common_Data_Types_(Burnout_Paradise)#Vector2 | Vector2]]* || mpPoints || || ||
|-
| 0x40x8 || 0x40x8 || Neighbour[[#CgsSceneManager::Zone * || mpSafeNeighboursZone]]* || mpZones || Neighbour format ||
|-
| 0x80x10 || 0x40x8 || Neighbour uint32_t* || mpUnsafeNeighbours || mpuZonePointStarts || ||
|-
| 0xC0x18 || 0x40x8 || int16_t* || || paddingmpiZonePointCounts || ||
|-
| 0x100x20 || 0x80x4 || uint64_t || muZoneIduint32_t || muTotalZones || ||
|-
| 0x180x24 || 0x20x4 || int16_t || miZoneTypeuint32_t || muTotalPoints || ||
|}
 
=== CgsSceneManager::Zone ===
==== ZoneList32-bit ====
{| class="wikitable"
! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x1A0x0 || 0x20x4 || int16_t[[Common_Data_Types_(Burnout_Paradise)#Vector2 || miNumPointsVector2]]* || mpPoints || ||
|-
| 0x1C0x4 || 0x20x4 || int16_t[[#CgsSceneManager::Neighbour || miNumSafeNeighboursNeighbour]]* || mpSafeNeighbours || ||
|-
| 0x1E0x8 || 0x20x4 || int16_t[[#CgsSceneManager::Neighbour || miNumUnsafeNeighboursNeighbour]]* || mpUnsafeNeighbours || ||
|-
| 0x200xC || 0x4 || uint32_t || muFlags || 0x00000001 (Bit 0) = ? || padding || IsPointInZone?
|-
| 0x240x10 || 0xC0x8 || uint64_t || || paddingmuZoneId || ||
|}
=== Neighbour ===
{| class="wikitable"
! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x00x18 || 0x40x2 || Zone *int16_t || mpZonemiZoneType || || Always || 4
|-
| 0x40x1A || 0x40x2 || uint32_tint16_t || muFlagsmiNumPoints || || 0x0 = E_RENDERFLAG_NONE ||
|-
| 0x1C || 0x2 || int16_t || miNumSafeNeighbours || || 0x1 = E_NEIGHBOURFLAG_RENDER ||
|-
| 0x1E || 0x2 || int16_t || miNumUnsafeNeighbours || || 0x2 = E_NEIGHBOURFLAG_IMMEDIATE ||
|-
| 0x80x20 || 0x80x4 || uint32_t || || paddingmuFlags || || Unused
|-
| 0x00x24 || 0x80xC || Zone * || mpZone || || padding ||
|}
 
==== PS464-bit ====
=== ZoneList ===
{| class="wikitable"
! Offset !! SizeLength !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x0 || 0x8 || [[Common_Data_Types_(Burnout_Paradise)#Vector2 | Vector2]]* || mpPoints || || ||
|-
| 0x8 || 0x8 || Zone[[#CgsSceneManager::Neighbour * || mpZonesNeighbour]]* || mpSafeNeighbours || Zone format ||
|-
| 0x10 || 0x8 || uint32_t *[[#CgsSceneManager::Neighbour || mpuZonePointStartsNeighbour]]* || mpUnsafeNeighbours || ||
|-
| 0x18 || 0x8 || int16_t * || mpiZonePointCountsuint64_t || muZoneId || ||
|-
| 0x20 || 0x40x2 || uint32_tint16_t || muTotalZonesmiZoneType || || Always || 4
|-
| 0x240x22 || 0x40x2 || uint32_t || muTotalPointsint16_t || miNumPoints || ||
|}
=== Zone ===
{| class="wikitable"
! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x00x24 || 0x80x2 || Vector2 * || mpPointsint16_t || miNumSafeNeighbours || ||
|-
| 0x80x26 || 0x80x2 || Neighbour *int16_t || mpSafeNeighboursmiNumUnsafeNeighbours || || Neighbour format ||
|-
| 0x100x28 || 0x80x4 || Neighbour * || mpUnsafeNeighboursuint32_t || muFlags || || Unused
|-
| 0x180x2C || 0x80x4 || uint64_t || muZoneId || || padding ||
|}
 
=== CgsSceneManager::Neighbour ===
==== Neighbour32-bit ====
{| class="wikitable"
! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x200x0 || 0x20x4 || int16_t[[#CgsSceneManager::Zone || miZoneTypeZone]]* || mpZone || ||
|-
| 0x220x4 || 0x20x4 || int16_tuint32_t || miNumPointsmuFlags || || See [[#CgsSceneManager::Neighbour::eNeighbourFlags || eNeighbourFlags]]
|-
| 0x240x8 || 0x20x8 || int16_t || miNumSafeNeighbours || || padding ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x260x0 || 0x20x8 || int16_t[[#CgsSceneManager::Zone || miNumUnsafeNeighboursZone]]* || mpZone || ||
|-
| 0x280x8 || 0x4 || uint32_t || muFlags || 0x00000001 (Bit 0) = ? || See [[#CgsSceneManager::Neighbour::eNeighbourFlags || IsPointInZone?eNeighbourFlags]]
|-
| 0x2C0xC || 0x4 || || || padding || ||
|}
 
=== Neighbour ===
= Enumerations =
=== CgsSceneManager::Neighbour::eNeighbourFlags ===
{| class="wikitable"
! Offset !! Size !! Type !! Name !! Description !! More Information !! Comments
|-
| 0x0 || 0x8 || Zone * || mpZone || || ||
|-
! Name !! Value !! Comments
| 0x8 || 0x4 || uint32 || muFlags || || 0x0 = E_RENDERFLAG_NONE ||
|-
| E_RENDERFLAG_NONE || 0x0 ||
| || || || || || 0x1 = E_NEIGHBOURFLAG_RENDER ||
|-
| E_NEIGHBOURFLAG_RENDER || 0x1 ||
| || || || || || 0x2 = E_NEIGHBOURFLAG_IMMEDIATE ||
|-
| 0xC || 0x4 || || || paddingE_NEIGHBOURFLAG_IMMEDIATE || 0x2 ||
|}