Progression Data/Burnout Paradise/Development: Difference between revisions

From Burnout Wiki
Content added Content deleted
m (Fix link.)
No edit summary
Line 18:
| 0x4 || 0x4 || uint32_t || muSize || Resource size ||
|-
| 0x8 || 0x4 || [[#BrnProgression::RaceEventDataSavedPresetRace|RaceEventDataSavedPresetRace]]* || mpaEvents || Events ||
|-
| 0xC || 0x4 || uint32_t || muEventCountmuPresetRaceCount || Number of events ||
|-
| 0x10 || 0x4 || [[#Unknown 0|Unknown]]* || ? || AI opponent balancingRank data ||
|-
| 0x14 || 0x4 || uint32_tint32_t || ?miRankCount || Number of balancing datarank entries ||
|-
| 0x18 || 0x4 || [[#BrnProgression::Rival|Rival]]* || mpaRivals || Rivals ||
Line 41:
| 0x8 || 0x8 || [[CgsID]] || ? || Default player vehicle || B1 Saloon
|-
| 0x10 || 0x4 || [[#BrnProgression::RaceEventDataSavedRace|RaceEventDataSavedRace]]* || mpaEvents || Events ||
|-
| 0x14 || 0x4 || uint32_t || muEventCountmuRaceCount || Number of events ||
|-
| 0x18 || 0x4 || [[#Unknown 0|Unknown]]* || ? || AI opponent balancingRank data ||
|-
| 0x1C || 0x4 || uint32_tint32_t || ?miRankCount || Number of balancing datarank entries ||
|-
| 0x20 || 0x4 || [[#BrnProgression::Rival|Rival]]* || mpaRivals || Rivals ||
Line 54:
|}
 
=== BrnProgression::RaceEventDataBaseRace ===
Type name from 1.0 data - actual name may be different, in particular for version 4.
 
==== v4 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || uint64_t[[CgsID]] || muIdmId || Event ID || GameDB ID
|-
| 0x8 || 0x4 || uint32_t || ?muRank || Flags? || 0-1
|-
| 0xC || 0x4 || uint32_t || ? || RankLaps? || 1-2
|-
| 0x10 || 0x20 || char[32] || ?macName || Event name || Always null
|-}
 
==== v8 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x300x0 || 0x1900x20 || uint64_tchar[5032] || ?macName || CheckpointsEvent name || GameDBAlways IDsnull
|-
| 0x1C00x20 || 0x40x8 || int32_t[[CgsID]] || ?mId || NumberEvent of checkpointsID || GameDB ID
|-
| 0x1C40x28 || 0x40x1 || uint8_t || mxFlags || padding || Always 0
|-
| 0x1E80x29 || 0x40x1 || uint8_t || muRank || padding || 0-9
|-
| 0x2A || 0x1 || uint8_t || muLaps || || Always 1
|-
| 0x2B || 0x5 || uint8_t[5] || maPad || Padding ||
|}
 
=== BrnProgression::SavedPresetRace ===
==== v8 ====
==== v4 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x200x30 || char[32[#BrnProgression::BaseRace|BaseRace]] || ?super_BaseRace || Event name || Always null
|-
| 0x200x30 || 0x80x190 || uint64_t[[CgsID]][50] || muIdmaLandmarkCgsIds || Event IDCheckpoints || GameDB IDIDs
|-
| 0x280x1C0 || 0x20x4 || uint16_tuint32_t || ?muNumLandmarks || Rank?Number of checkpoints || 0-9
|-
| 0x2A0x1C4 || 0x10x4 || uint8_t || ? || Flags?padding || Always 1
|}
 
=== BrnProgression::SavedRace ===
==== v8 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x2B0x0 || 0x50x30 || [[#BrnProgression::BaseRace|BaseRace]] || super_BaseRace || padding ||
|-
| 0x30 || 0x80 || uint64_t[[CgsID]][16] || ?maLandmarkCgsIds || Checkpoints || GameDB IDs
|-
| 0xB0 || 0x1 || int8_tuint8_t || ?muNumLandmarks || Number of checkpoints ||
|-
| 0xB1 || 0x7 || uint8_t[7] || maPad || padding ||
|}
 
=== Unknown 0 ===
Rank data. Actual name unknown.
Acts as a wrapper for what would become the AI balances.
 
==== v4 ====
Line 102 ⟶ 122:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t* || ? || Unknown integers || Race indices? Unlocks?
|-
| 0x4 || 0x4 || uint32_t || ? || Number of unknown integers ||
|-
| 0x8 || 0x4 || uint32_t || ? || Number of violation/offence points to acquire this rank || Ascending order
|-
| 0xC || 0x20 || char[32] || ? || Name || EL_*
Line 115 ⟶ 135:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || uint32_t* || ? || Unknown integers || Race indices? Unlocks?
|-
| 0x4 || 0x4 || uint32_t || ? || Number of unknown integers ||
|-
| 0x8 || 0x4 || uint32_t || ? || Number of violation/offence points to acquire this rank || Ascending order
|-
| 0xC || 0x1DC || [[Progression Data/Burnout Paradise#BrnProgression::OpponentBalanceData|OpponentBalanceData]][7] || ? || ||
|-
| 0xC || 0x1DC0x1E0 || [[CgsArray]]<[[Progression Data/Burnout Paradise#BrnProgression::OpponentBalanceData|OpponentBalanceData]][7],7u> || ? || || Length is always 0, but there will always be 7 populated entries.
| 0x1E8 || 0x4 || || || padding ||
|-
| 0x1EC || 0x20 || char[32] || ? || Name || EL_*
Line 133 ⟶ 151:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[CgsID]] || mCarId || Vehicle to use ||
|-
| 0x8 || 0x4 || uint32_t || ? || Flags?Rank || 0-1
|-
| 0xC || 0x10 || float[4] || ? || ? || Likely a vector. Always 1,1,1,1
|-
| 0x1D0x1C || 0x2 || uint16_t || ? || ? || Always 1 in v4 sample, sequential 0x6-26 in v8 sample
|-
| 0x1E || 0x1 || int8_t || ? || County index? || Always -1 in v4 sample, 0-4 in v8 sample
|-
| 0x1F || 0x20 || char[32] || macName || Rival name ||

Revision as of 05:22, 12 February 2023

Versions

Versions as defined by the muVersionNumber field.

v4

Found in the Burnout 5 (2006-11-13 build). Most content is not yet present, but some events, rivals and opponent balancing is done.

v8

Found in Burnout 5 (2007-02-22 build). This version iterates on what was in v4 but is ultimately very similar.

Structures

BrnProgression::ProgressionData

v4

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muVersionNumber Resource version 4
0x4 0x4 uint32_t muSize Resource size
0x8 0x4 SavedPresetRace* Events
0xC 0x4 uint32_t muPresetRaceCount Number of events
0x10 0x4 Unknown* ? Rank data
0x14 0x4 int32_t miRankCount Number of rank entries
0x18 0x4 Rival* mpaRivals Rivals
0x1C 0x4 int32_t miRivalCount Number of rivals

v8

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muVersionNumber Resource version 8
0x4 0x4 uint32_t muSize Resource size
0x8 0x8 CgsID ? Default player vehicle B1 Saloon
0x10 0x4 SavedRace* Events
0x14 0x4 uint32_t muRaceCount Number of events
0x18 0x4 Unknown* ? Rank data
0x1C 0x4 int32_t miRankCount Number of rank entries
0x20 0x4 Rival* mpaRivals Rivals
0x24 0x4 int32_t miRivalCount Number of rivals

BrnProgression::BaseRace

Type name from 1.0 data - actual name may be different, in particular for version 4.

v4

Offset Length Type Name Description Comments
0x0 0x8 CgsID mId Event ID GameDB ID
0x8 0x4 uint32_t muRank 0-1
0xC 0x4 uint32_t Laps? 1-2
0x10 0x20 char[32] macName Event name Always null

v8

Offset Length Type Name Description Comments
0x0 0x20 char[32] macName Event name Always null
0x20 0x8 CgsID mId Event ID GameDB ID
0x28 0x1 uint8_t mxFlags Always 0
0x29 0x1 uint8_t muRank 0-9
0x2A 0x1 uint8_t muLaps Always 1
0x2B 0x5 uint8_t[5] maPad Padding

BrnProgression::SavedPresetRace

v4

Offset Length Type Name Description Comments
0x0 0x30 BaseRace super_BaseRace
0x30 0x190 CgsID[50] maLandmarkCgsIds Checkpoints GameDB IDs
0x1C0 0x4 uint32_t muNumLandmarks Number of checkpoints
0x1C4 0x4 padding

BrnProgression::SavedRace

v8

Offset Length Type Name Description Comments
0x0 0x30 BaseRace super_BaseRace
0x30 0x80 CgsID[16] maLandmarkCgsIds Checkpoints GameDB IDs
0xB0 0x1 uint8_t muNumLandmarks Number of checkpoints
0xB1 0x7 uint8_t[7] maPad padding

Unknown 0

Rank data. Actual name unknown.

v4

Offset Length Type Name Description Comments
0x0 0x4 uint32_t* ? Unknown integers Race indices? Unlocks?
0x4 0x4 uint32_t ? Number of unknown integers
0x8 0x4 uint32_t ? Number of violation/offence points to acquire this rank
0xC 0x20 char[32] ? Name EL_*

v8

Offset Length Type Name Description Comments
0x0 0x4 uint32_t* ? Unknown integers Race indices? Unlocks?
0x4 0x4 uint32_t ? Number of unknown integers
0x8 0x4 uint32_t ? Number of violation/offence points to acquire this rank
0xC 0x1E0 CgsArray<OpponentBalanceData,7u> ? Length is always 0, but there will always be 7 populated entries.
0x1EC 0x20 char[32] ? Name EL_*

BrnProgression::Rival

v4-v8

Offset Length Type Name Description Comments
0x0 0x8 CgsID mCarId Vehicle to use
0x8 0x4 uint32_t ? Rank 0-1
0xC 0x10 float[4] ? ? Likely a vector. Always 1,1,1,1
0x1C 0x2 uint16_t ? ? Always 1 in v4 sample, sequential 0x6-26 in v8 sample
0x1E 0x1 int8_t ? County index Always -1 in v4 sample, 0-4 in v8 sample
0x1F 0x20 char[32] macName Rival name
0x3F 0x1 padding