Progression Data/Burnout Paradise/Development

From Burnout Wiki

Versions

Versions as defined by the muVersionNumber field.

Structures

BrnProgression::ProgressionData

Version 4

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

Version 8

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

Version 4

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

Version 8

The final revision of BaseRace. This type, including its flags, remained unchanged through to retail, though did get dropped from the progression file at some point in favour of new RaceEventData type.

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 See Flag
0x29 0x1 uint8_t muRank 0-9
0x2A 0x1 uint8_t muLaps Always 1
0x2B 0x5 uint8_t[5] maPad Padding

BrnProgression::SavedPresetRace

Version 4

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

BrnProgression::SavedRace

Version 8

Offset Length Type Name Description Comments
0x0 0x30 BaseRace Base class
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.

Version 4

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_* ("endorsement level"?)

Version 8

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_* ("endorsement level"?)

BrnProgression::Rival

Versions 4-8

Offset Length Type Name Description Comments
0x0 0x8 CgsID mCarId Vehicle to use
0x8 0x4 int32_t miRank Rank 0-1
0xC 0x4 float32_t mfSpeed Speed Always 1
0x10 0x4 float32_t mfAggression Aggression Always 1
0x14 0x4 float32_t mfVolatility Volatility Always 1
0x18 0x4 float32_t mfSkill Skill Always 1
0x1C 0x2 int16_t miTakedownCount Takedown count Always 1 in v4 sample
Sequential 0x6-26 in v8 sample
0x1E 0x1 int8_t miCountyIndex County index Always -1 in v4 sample, 0-4 in v8 sample
0x1F 0x20 char[32] macName Rival name
0x3F 0x1 Padding

Enumerations

BrnProgression::BaseRace::Flag

Name Value Comments
E_FLAG_CUSTOM 0x1
E_FLAG_CRASHBREAKER 0x2
E_FLAG_ELIMINATOR 0x4
E_FLAG_STUNT 0x8
E_FLAG_SURVIVAL 0x10