Progression Data/Burnout Paradise/Development: Difference between revisions

From Burnout Wiki
Content added Content deleted
m (Fix link.)
No edit summary
Line 18: Line 18:
| 0x4 || 0x4 || uint32_t || muSize || Resource size ||
| 0x4 || 0x4 || uint32_t || muSize || Resource size ||
|-
|-
| 0x8 || 0x4 || [[#BrnProgression::RaceEventData|RaceEventData]]* || mpaEvents || Events ||
| 0x8 || 0x4 || [[#BrnProgression::SavedPresetRace|SavedPresetRace]]* || || Events ||
|-
|-
| 0xC || 0x4 || uint32_t || muEventCount || Number of events ||
| 0xC || 0x4 || uint32_t || muPresetRaceCount || Number of events ||
|-
|-
| 0x10 || 0x4 || [[#Unknown 0|Unknown]]* || ? || AI opponent balancing data ||
| 0x10 || 0x4 || [[#Unknown 0|Unknown]]* || ? || Rank data ||
|-
|-
| 0x14 || 0x4 || uint32_t || ? || Number of balancing data entries ||
| 0x14 || 0x4 || int32_t || miRankCount || Number of rank entries ||
|-
|-
| 0x18 || 0x4 || [[#BrnProgression::Rival|Rival]]* || mpaRivals || Rivals ||
| 0x18 || 0x4 || [[#BrnProgression::Rival|Rival]]* || mpaRivals || Rivals ||
Line 41: Line 41:
| 0x8 || 0x8 || [[CgsID]] || ? || Default player vehicle || B1 Saloon
| 0x8 || 0x8 || [[CgsID]] || ? || Default player vehicle || B1 Saloon
|-
|-
| 0x10 || 0x4 || [[#BrnProgression::RaceEventData|RaceEventData]]* || mpaEvents || Events ||
| 0x10 || 0x4 || [[#BrnProgression::SavedRace|SavedRace]]* || || Events ||
|-
|-
| 0x14 || 0x4 || uint32_t || muEventCount || Number of events ||
| 0x14 || 0x4 || uint32_t || muRaceCount || Number of events ||
|-
|-
| 0x18 || 0x4 || [[#Unknown 0|Unknown]]* || ? || AI opponent balancing data ||
| 0x18 || 0x4 || [[#Unknown 0|Unknown]]* || ? || Rank data ||
|-
|-
| 0x1C || 0x4 || uint32_t || ? || Number of balancing data entries ||
| 0x1C || 0x4 || int32_t || miRankCount || Number of rank entries ||
|-
|-
| 0x20 || 0x4 || [[#BrnProgression::Rival|Rival]]* || mpaRivals || Rivals ||
| 0x20 || 0x4 || [[#BrnProgression::Rival|Rival]]* || mpaRivals || Rivals ||
Line 54: Line 54:
|}
|}


=== BrnProgression::RaceEventData ===
=== BrnProgression::BaseRace ===
Type name from 1.0 data - actual name may be different, in particular for version 4.

==== v4 ====
==== v4 ====
{| class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x8 || uint64_t || muId || Event ID || GameDB ID
| 0x0 || 0x8 || [[CgsID]] || mId || Event ID || GameDB ID
|-
|-
| 0x8 || 0x4 || uint32_t || ? || Flags? || 0-1
| 0x8 || 0x4 || uint32_t || muRank || || 0-1
|-
|-
| 0xC || 0x4 || uint32_t || ? || Rank? || 1-2
| 0xC || 0x4 || uint32_t || || Laps? || 1-2
|-
|-
| 0x10 || 0x20 || char[32] || ? || Event name ||
| 0x10 || 0x20 || char[32] || macName || Event name || Always null
|}

==== v8 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x30 || 0x190 || uint64_t[50] || ? || Checkpoints || GameDB IDs
| 0x0 || 0x20 || char[32] || macName || Event name || Always null
|-
|-
| 0x1C0 || 0x4 || int32_t || ? || Number of checkpoints ||
| 0x20 || 0x8 || [[CgsID]] || mId || Event ID || GameDB ID
|-
|-
| 0x1C4 || 0x4 || || || padding ||
| 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 ===
==== v8 ====
==== v4 ====
{| class="wikitable"
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x20 || char[32] || ? || Event name || Always null
| 0x0 || 0x30 || [[#BrnProgression::BaseRace|BaseRace]] || super_BaseRace || ||
|-
|-
| 0x20 || 0x8 || uint64_t || muId || Event ID || GameDB ID
| 0x30 || 0x190 || [[CgsID]][50] || maLandmarkCgsIds || Checkpoints || GameDB IDs
|-
|-
| 0x28 || 0x2 || uint16_t || ? || Rank? || 0-9
| 0x1C0 || 0x4 || uint32_t || muNumLandmarks || Number of checkpoints ||
|-
|-
| 0x2A || 0x1 || uint8_t || ? || Flags? || Always 1
| 0x1C4 || 0x4 || || || padding ||
|}

=== BrnProgression::SavedRace ===
==== v8 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x2B || 0x5 || || || padding ||
| 0x0 || 0x30 || [[#BrnProgression::BaseRace|BaseRace]] || super_BaseRace || ||
|-
|-
| 0x30 || 0x80 || uint64_t[16] || ? || Checkpoints || GameDB IDs
| 0x30 || 0x80 || [[CgsID]][16] || maLandmarkCgsIds || Checkpoints || GameDB IDs
|-
|-
| 0xB0 || 0x1 || int8_t || ? || Number of checkpoints ||
| 0xB0 || 0x1 || uint8_t || muNumLandmarks || Number of checkpoints ||
|-
|-
| 0xB1 || 0x7 || || || padding ||
| 0xB1 || 0x7 || uint8_t[7] || maPad || padding ||
|}
|}


=== Unknown 0 ===
=== Unknown 0 ===
Rank data. Actual name unknown.
Acts as a wrapper for what would become the AI balances.


==== v4 ====
==== v4 ====
Line 102: Line 122:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || uint32_t* || ? || Unknown integers ||
| 0x0 || 0x4 || uint32_t* || ? || Unknown integers || Race indices? Unlocks?
|-
|-
| 0x4 || 0x4 || uint32_t || ? || Number of unknown integers ||
| 0x4 || 0x4 || uint32_t || ? || Number of unknown integers ||
|-
|-
| 0x8 || 0x4 || uint32_t || ? || || Ascending order
| 0x8 || 0x4 || uint32_t || ? || Number of violation/offence points to acquire this rank ||
|-
|-
| 0xC || 0x20 || char[32] || ? || Name || EL_*
| 0xC || 0x20 || char[32] || ? || Name || EL_*
Line 115: Line 135:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x4 || uint32_t* || ? || Unknown integers ||
| 0x0 || 0x4 || uint32_t* || ? || Unknown integers || Race indices? Unlocks?
|-
|-
| 0x4 || 0x4 || uint32_t || ? || Number of unknown integers ||
| 0x4 || 0x4 || uint32_t || ? || Number of unknown integers ||
|-
|-
| 0x8 || 0x4 || uint32_t || ? || || Ascending order
| 0x8 || 0x4 || uint32_t || ? || Number of violation/offence points to acquire this rank ||
|-
| 0xC || 0x1DC || [[Progression Data/Burnout Paradise#BrnProgression::OpponentBalanceData|OpponentBalanceData]][7] || ? || ||
|-
|-
| 0xC || 0x1E0 || [[CgsArray]]<[[Progression Data/Burnout Paradise#BrnProgression::OpponentBalanceData|OpponentBalanceData]],7u> || ? || || Length is always 0, but there will always be 7 populated entries.
| 0x1E8 || 0x4 || || || padding ||
|-
|-
| 0x1EC || 0x20 || char[32] || ? || Name || EL_*
| 0x1EC || 0x20 || char[32] || ? || Name || EL_*
Line 133: Line 151:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x8 || CgsID || mCarId || Vehicle to use ||
| 0x0 || 0x8 || [[CgsID]] || mCarId || Vehicle to use ||
|-
|-
| 0x8 || 0x4 || uint32_t || ? || Flags? || 0-1
| 0x8 || 0x4 || uint32_t || ? || Rank || 0-1
|-
|-
| 0xC || 0x10 || float[4] || ? || || Likely a vector. Always 1,1,1,1
| 0xC || 0x10 || float[4] || ? || ? || Likely a vector. Always 1,1,1,1
|-
|-
| 0x1D || 0x2 || uint16_t || ? || || Always 1 in v4 sample, sequential 0x6-26 in v8 sample
| 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
| 0x1E || 0x1 || int8_t || ? || County index || Always -1 in v4 sample, 0-4 in v8 sample
|-
|-
| 0x1F || 0x20 || char[32] || macName || Rival name ||
| 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