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