Progression Data/Burnout Paradise/Development: Difference between revisions

Updated with new information.
(Finish version descriptions.)
(Updated with new information.)
 
(6 intermediate revisions by 2 users not shown)
Line 2:
Versions as defined by the <code>muVersionNumber</code> field.
 
* Version 4: Found in the [[Burnout 5 (2006-11-13 build)]]. Most content is not yet present, but some events, rivals and opponent balancing is done.
=== v4 ===
* Version 8: Found in the [[Burnout 5 (20062007-1102-1322 build)]]. MostThis contentversion isiterates noton yetwhat present,was butin somev4 events,but rivalsis andultimately opponent balancing isvery donesimilar.
 
=== 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 ===
==== v4Version 4 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
Line 18 ⟶ 15:
| 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 31 ⟶ 28:
|}
 
==== v8Version 8 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
Line 41 ⟶ 38:
| 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 ⟶ 51:
|}
 
=== BrnProgression::RaceEventDataBaseRace ===
Type name from 1.0 data - actual name may be different, in particular for version 4.
==== v4 ====
 
==== v4Version 4 ====
{| 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 ||
|-}
 
==== v8Version 8 ====
{| 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 ====
==== v4Version 4 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x200x30 || char[32[#BrnProgression::BaseRace|BaseRace]] || ? || EventBase nameclass || 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 ===
==== v8Version 8 ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x2B0x0 || 0x50x30 || [[#BrnProgression::BaseRace|BaseRace]] || || paddingBase class ||
|-
| 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 || paddingPadding ||
|}
 
=== Unknown 0 ===
Rank data. Actual name unknown.
Acts as a wrapper for what would become the AI balances.
 
==== v4Version 4 ====
{| class="wikitable"
! 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_*
|}
 
==== v8Version 8 ====
{| class="wikitable"
! 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 || 0x1DC0x1E0 || [[ProgressionCgsArray]]<[[../#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 129 ⟶ 144:
 
=== BrnProgression::Rival ===
==== v4Versions 4-v88 ====
{| class="wikitable"
! 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
|-
| 0x80x14 || 0x4 || uint32_tfloat32_t || ?mfVolatility || Flags?Volatility || 0-Always 1
|-
| 0xC0x18 || 0x100x4 || float[4]float32_t || ?mfSkill || Skill || Likely a vector. Always 1,1,1,1
|-
| 0x1D0x1C || 0x2 || uint16_tint16_t || ?miTakedownCount || Takedown count || Always 1 in v4 sample, sequential<br>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 || || || paddingPadding ||
|}