Challenge List: Difference between revisions

From Burnout Wiki
Content added Content deleted
No edit summary
(Added infobox and normalized some content.)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{ParadiseResourceTypeInfobox
| name = ChallengeList
| resourcenames = B5ChallengeList
| id = 0x1001F
| category = Game-specific<br />(Burnout Paradise)
| memdist = Main Memory only
}}

{{todo|Cover previous versions and development versions of the resource.}}
{{todo|Cover previous versions and development versions of the resource.}}


Line 29: Line 37:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0xA0 || [[#BrnResource::ChallengeListEntryAction|ChallengeListEntryAction]][2] || maAction || ||
| 0x0 || 0xA0 || [[#BrnResource::ChallengeListEntryAction|ChallengeListEntryAction]][2] || maAction || Challenge parts ||
|-
|-
| 0xA0 || 0x10 || char[16] || macDescriptionStringID || Freeburn challenge description string ID || FBCD_<GameDB ID>
| 0xA0 || 0x10 || char[16] || macDescriptionStringID || Freeburn challenge description string ID || FBCD_<GameDB ID>
Line 53: Line 61:
| 0xD6 || 0x1 || uint8_t || ? || Entitlement group || See [[#BrnResource::ChallengeListEntry::EEntitlementGroup|EEntitlementGroup]]
| 0xD6 || 0x1 || uint8_t || ? || Entitlement group || See [[#BrnResource::ChallengeListEntry::EEntitlementGroup|EEntitlementGroup]]
|-
|-
| 0xD7 || 0x1 || || || padding ||
| 0xD7 || 0x1 || || || Padding ||
|}
|}


Line 60: Line 68:
! Offset !! Length !! Type !! Name !! Description !! Comments
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
|-
| 0x0 || 0x1 || uint8_t || muActionType || Challenge goal || See [[#BrnResource::ChallengeListEntryAction::EChallengeActionType|EChallengeActionType]]
| 0x0 || 0x1 || uint8_t || muActionType || Goal || See [[#BrnResource::ChallengeListEntryAction::EChallengeActionType|EChallengeActionType]]
|-
|-
| 0x1 || 0x1 || uint8_t || muCoopType || Co-op type used in this challenge || See [[#BrnResource::ChallengeListEntryAction::EChallengeCoopType|EChallengeCoopType]]
| 0x1 || 0x1 || uint8_t || muCoopType || Co-op type used || See [[#BrnResource::ChallengeListEntryAction::EChallengeCoopType|EChallengeCoopType]]
|-
|-
| 0x2 || 0x1 || uint8_t || mxModifier || Modifications to the challenge goal || See [[#Challenge modifier|challenge modifier]]
| 0x2 || 0x1 || uint8_t || mxModifier || Modifications to the goal || See [[#Challenge modifier|challenge modifier]]
|-
|-
| 0x3 || 0x1 || uint8_t || muCombineActionType || Score counting type || See [[#BrnResource::ChallengeListEntryAction::ECombineActionType|ECombineActionType]]
| 0x3 || 0x1 || uint8_t || muCombineActionType || Score counting type || See [[#BrnResource::ChallengeListEntryAction::ECombineActionType|ECombineActionType]]
|-
|-
| 0x4 || 0x1 || uint8_t || muNumLocations || ||
| 0x4 || 0x1 || uint8_t || muNumLocations || Number of locations ||
|-
|-
| 0x5 || 0x4 || uint8_t[4] || mauLocationType || || See [[#BrnResource::ChallengeListEntryAction::ELocationType|ELocationType]]
| 0x5 || 0x4 || uint8_t[4] || mauLocationType || Location types || See [[#BrnResource::ChallengeListEntryAction::ELocationType|ELocationType]]
|-
|-
| 0x9 || 0x7 || || || padding ||
| 0x9 || 0x7 || || || Padding ||
|-
|-
| 0x10 || 0x20 || [[#BrnResource::ChallengeListEntryAction::LocationData|LocationData]][4] || maLocationData || ||
| 0x10 || 0x20 || [[#BrnResource::ChallengeListEntryAction::LocationData|LocationData]][4] || maLocationData || Locations ||
|-
|-
| 0x30 || 0x1 || uint8_t || muNumTargets || || 1 or 2
| 0x30 || 0x1 || uint8_t || muNumTargets || Number of targets || Up to 2
|-
|-
| 0x31 || 0x3 || || || padding ||
| 0x31 || 0x3 || || || Padding ||
|-
|-
| 0x34 || 0x8 || int32_t[2] || maiTargetValue || Targets for each part ||
| 0x34 || 0x8 || int32_t[2] || maiTargetValue || Targets ||
|-
|-
| 0x3C || 0x2 || uint8_t[2] || mau8TargetDataType || || See [[#BrnResource::ChallengeListEntryAction::EChallengeDataType|EChallengeDataType]]
| 0x3C || 0x2 || uint8_t[2] || mau8TargetDataType || Target data types || See [[#BrnResource::ChallengeListEntryAction::EChallengeDataType|EChallengeDataType]]
|-
|-
| 0x3E || 0x2 || || || padding ||
| 0x3E || 0x2 || || || Padding ||
|-
|-
| 0x40 || 0x4 || float32_t || mfTimeLimit || Time limit on achieving the goal || Setting this makes any challenge timed
| 0x40 || 0x4 || float32_t || mfTimeLimit || Time limit on achieving the goal || Setting this makes any challenge timed
Line 92: Line 100:
| 0x48 || 0x4 || uint32_t || muPropType || ||
| 0x48 || 0x4 || uint32_t || muPropType || ||
|-
|-
| 0x4C || 0x4 || || || padding ||
| 0x4C || 0x4 || || || Padding ||
|}
|}


Line 219: Line 227:
| ? || 28 || Billboard chained multiplier<br />Non-functional (missing code)
| ? || 28 || Billboard chained multiplier<br />Non-functional (missing code)
|-
|-
| ? || 29 || Smash chained multiplier<br />Non-functional (always 0, but does still count for the generic chained multiplier action, though still affected by the missing chain tracking code issue)
| ? || 29 || Unknown chained multiplier<br />Non-functional (always 0, but does still count for the generic chained multiplier action, though still affected by the missing chain tracking code issue)
|-
|-
| ? || 30 || Chained multiplier (any type)<br />Non-functional (missing code)
| ? || 30 || Chained multiplier (any type - including stunt types not listed in prior actions and stunt types that don't typically receive stunt run modifiers)<br />Non-functional (missing code)
|-
|-
| ? || 31 || Air multiplier
| ? || 31 || Air multiplier
Line 237: Line 245:
| ? || 37 || Takedown multiplier
| ? || 37 || Takedown multiplier
|-
|-
| ? || 38 || Multiplier (any type)
| ? || 38 || Multiplier (any of the above multipliers, including chained)
|-
|-
| ? || 39 || Stunt score
| ? || 39 || Stunt score
Line 245: Line 253:
| ? || 41 || Land X Super Jumps anywhere
| ? || 41 || Land X Super Jumps anywhere
|-
|-
| ? || 42 || Land specific Super Jump. Selected via trigger ID
| ? || 42 || Land specific Super Jump. Selected via trigger ID in second target
|-
|-
| ? || 43 || Smash specific Billboard. Selected via trigger ID
| ? || 43 || Smash specific Billboard. Selected via trigger ID in second target
|-
|-
| ? || 44 || Interstate lap
| ? || 44 || Interstate lap
Line 380: Line 388:
! Name !! Value !! Comments
! Name !! Value !! Comments
|-
|-
| E_CHALLENGE_DATA_TYPE_CRASHES || 0x0 ||
| E_CHALLENGE_DATA_TYPE_CRASHES || 0 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_NEAR_MISS || 0x1 ||
| E_CHALLENGE_DATA_TYPE_NEAR_MISS || 1 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_ONCOMING || 0x2 ||
| E_CHALLENGE_DATA_TYPE_ONCOMING || 2 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_DRIFT || 0x3 ||
| E_CHALLENGE_DATA_TYPE_DRIFT || 3 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_AIR || 0x4 ||
| E_CHALLENGE_DATA_TYPE_AIR || 4 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_AIR_DISTANCE || 0x5 ||
| E_CHALLENGE_DATA_TYPE_AIR_DISTANCE || 5 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_BARREL_ROLLS || 0x6 ||
| E_CHALLENGE_DATA_TYPE_BARREL_ROLLS || 6 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_FLAT_SPINS || 0x7 ||
| E_CHALLENGE_DATA_TYPE_FLAT_SPINS || 7 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_CARS_LEAPT || 0x8 ||
| E_CHALLENGE_DATA_TYPE_CARS_LEAPT || 8 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_SPEED_ROAD_RULE || 0x9 ||
| E_CHALLENGE_DATA_TYPE_SPEED_ROAD_RULE || 9 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_CRASH_ROAD_RULE || 10 ||
| E_CHALLENGE_DATA_TYPE_CRASH_ROAD_RULE || 10 ||
Line 428: Line 436:
| E_CHALLENGE_DATA_TYPE_CORKSCREW || 23 || Perform a Barrel Roll and Flat Spin at the same time
| E_CHALLENGE_DATA_TYPE_CORKSCREW || 23 || Perform a Barrel Roll and Flat Spin at the same time
|-
|-
| E_CHALLENGE_DATA_TYPE_SUPER_JUMP || 24 ||
| E_CHALLENGE_DATA_TYPE_SUPER_JUMP || 24 || 1 on first target (number of jumps?), jump trigger ID on second target
|-
|-
| E_CHALLENGE_DATA_TYPE_INTERSTATE_LAP || 25 ||
| E_CHALLENGE_DATA_TYPE_INTERSTATE_LAP || 25 ||
Line 456: Line 464:
| E_CHALLENGE_DATA_TYPE_DISTANCE_TRAVELED || 37 ||
| E_CHALLENGE_DATA_TYPE_DISTANCE_TRAVELED || 37 ||
|-
|-
| E_CHALLENGE_DATA_TYPE_COUNT || 38 ||
| E_CHALLENGE_DATA_TYPE_COUNT || 38 || Used as a placeholder when there is no target
|}
|}



Latest revision as of 21:27, 4 October 2023

ChallengeList
aka {{{othernames}}}
No Example
Resource names B5ChallengeList
Type ID 0x1001F
Category Game-specific
(Burnout Paradise)
Memory
distribution
Main Memory only
Imports Unknown
Imported by Unknown
Editor
available?
No
Hmmm...
Hmmm...
To do:
Cover previous versions and development versions of the resource.

The challenge list resource holds a list of online challenges. These challenges support up to two goals to be completed by 2-8 players on a timed or non-timed basis.

Structures

BrnResource::ChallengeListResource

32-bit

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muNumChallenges
0x4 0x4 ChallengeListEntry* mpEntries
0x8 0x8 uint64_t mu16BytePad

64-bit

Offset Length Type Name Description Comments
0x0 0x8 ChallengeListEntry* mpEntries
0x8 0x4 uint32_t muNumChallenges

BrnResource::ChallengeListEntry

Offset Length Type Name Description Comments
0x0 0xA0 ChallengeListEntryAction[2] maAction Challenge parts
0xA0 0x10 char[16] macDescriptionStringID Freeburn challenge description string ID FBCD_<GameDB ID>
0xB0 0x10 char[16] macTitleStringID Freeburn challenge title string ID FBCT_<GameDB ID>
0xC0 0x8 CgsID mChallengeID Challenge GameDB ID
0xC8 0x8 CgsID mCarID Car ID to restrict to for challenge participation Unused
0xD0 0x1 uint8_t muCarType Car type to restrict to for challenge participation Unused. See ECarRestrictionType
0xD1 0x1 int8_t miCarColourIndex Unused
0xD2 0x1 int8_t miCarColourPaletteIndex Unused
0xD3 0x1 uint8_t muNumPlayers Number of players required to run the challenge 22 = 2-player, 33 = 3-player, etc.
0xD4 0x1 uint8_t muNumActions Number of parts in the challenge 1 or 2
0xD5 0x1 uint8_t muDifficulty See EChallengeDifficulty
0xD6 0x1 uint8_t ? Entitlement group See EEntitlementGroup
0xD7 0x1 Padding

BrnResource::ChallengeListEntryAction

Offset Length Type Name Description Comments
0x0 0x1 uint8_t muActionType Goal See EChallengeActionType
0x1 0x1 uint8_t muCoopType Co-op type used See EChallengeCoopType
0x2 0x1 uint8_t mxModifier Modifications to the goal See challenge modifier
0x3 0x1 uint8_t muCombineActionType Score counting type See ECombineActionType
0x4 0x1 uint8_t muNumLocations Number of locations
0x5 0x4 uint8_t[4] mauLocationType Location types See ELocationType
0x9 0x7 Padding
0x10 0x20 LocationData[4] maLocationData Locations
0x30 0x1 uint8_t muNumTargets Number of targets Up to 2
0x31 0x3 Padding
0x34 0x8 int32_t[2] maiTargetValue Targets
0x3C 0x2 uint8_t[2] mau8TargetDataType Target data types See EChallengeDataType
0x3E 0x2 Padding
0x40 0x4 float32_t mfTimeLimit Time limit on achieving the goal Setting this makes any challenge timed
0x44 0x4 float32_t mfConvoyTime Counts down instead of up Unused
0x48 0x4 uint32_t muPropType
0x4C 0x4 Padding

Unions

BrnResource::ChallengeListEntryAction::LocationData

Length Type Name Description Comments
0x4 EDistrict meDistrict
0x4 ECounty ?
0x8 CgsID mTriggerID
0x8 CgsID mRoadID

Enumerations

BrnResource::ChallengeListEntry::ECarRestrictionType

Name Value Comments
E_CAR_TYPE_NONE 0
E_CAR_TYPE_DANGER 1
E_CAR_TYPE_AGGRESSION 2
E_CAR_TYPE_STUNT 3
E_CAR_TYPE_COUNT 4

BrnResource::ChallengeListEntry::EChallengeDifficulty

Name Value Comments
E_CHALLENGE_DIFFICULTY_EASY 0
E_CHALLENGE_DIFFICULTY_MEDIUM 1
E_CHALLENGE_DIFFICULTY_HARD 2
E_CHALLENGE_DIFFICULTY_VERY_HARD 3
E_CHALLENGE_DIFFICULTY_COUNT 4

BrnResource::ChallengeListEntry::EEntitlementGroup

Name Value Comments
? 0 Release (Freeburn challenges)
? 1 Unknown DLC.
Same behaviour as 0.
? 2
? 3 Cagney (Timed challenges)
? 4 Davis (Bike challenges)
? 5 Island challenges

BrnResource::ChallengeListEntryAction::EChallengeActionType

Name Value Comments
E_CHALLENGE_ACTION_MINIMUM_SPEED 0
E_CHALLENGE_ACTION_IN_AIR 1
E_CHALLENGE_ACTION_AIR_DISTANCE 2
E_CHALLENGE_ACTION_LEAP_CARS 3
E_CHALLENGE_ACTION_DRIFT 4
E_CHALLENGE_ACTION_NEAR_MISS 5
E_CHALLENGE_ACTION_BARREL_ROLLS 6
E_CHALLENGE_ACTION_ONCOMING 7
E_CHALLENGE_ACTION_FLATSPIN 8
E_CHALLENGE_ACTION_LAND_SUCCESSFUL 9
E_CHALLENGE_ACTION_ROAD_RULE_TIME 10
E_CHALLENGE_ACTION_ROAD_RULE_CRASH 11
E_CHALLENGE_ACTION_PLAYER_POWER_PARKING 12
E_CHALLENGE_ACTION_TRAFFIC_POWER_PARKING 13
E_CHALLENGE_ACTION_CRASH_INTO_PLAYER 14
E_CHALLENGE_ACTION_BURNOUTS 15
E_CHALLENGE_ACTION_MEET_UP 16
E_CHALLENGE_ACTION_BILLBOARD 17 Smash X Billboards
E_CHALLENGE_ACTION_BOOST_TIME 18
E_CHALLENGE_ACTION_BARREL_ROLLS_REVERSE 19
E_CHALLENGE_ACTION_FLATSPIN_REVERSE 20
E_CHALLENGE_ACTION_LAND_SUCCESSFUL_REVERSE 21
? 22 Convoy-related?
Likely non-functional (missing code)
? 23
? 24 Air chained multiplier
Non-functional (missing code)
? 25 Flat Spin chained multiplier
Non-functional (missing code)
? 26 Barrel Roll chained multiplier
Non-functional (missing code)
? 27 Super Jump chained multiplier
Non-functional (missing code)
? 28 Billboard chained multiplier
Non-functional (missing code)
? 29 Unknown chained multiplier
Non-functional (always 0, but does still count for the generic chained multiplier action, though still affected by the missing chain tracking code issue)
? 30 Chained multiplier (any type - including stunt types not listed in prior actions and stunt types that don't typically receive stunt run modifiers)
Non-functional (missing code)
? 31 Air multiplier
? 32 Flat Spin multiplier
? 33 Barrel Roll multiplier
? 34 Super Jump multiplier
? 35 Billboard multiplier
? 36 Cars leapt multiplier
? 37 Takedown multiplier
? 38 Multiplier (any of the above multipliers, including chained)
? 39 Stunt score
? 40 Corkscrew (perform a Barrel Roll and Flat Spin at the same time)
? 41 Land X Super Jumps anywhere
? 42 Land specific Super Jump. Selected via trigger ID in second target
? 43 Smash specific Billboard. Selected via trigger ID in second target
? 44 Interstate lap
? 45 Interstate lap without stopping
? 46 Interstate lap without crashing
? 47 Aerial near miss
? 48 Reverse driving
? 49 Reverse oncoming
? 50 Get X takedowns
? 51 Vertical takedown
? 52 Target (generic counter, usually used as a MEET_UP counter)
? 53 Wheelie distance
? 54 Wheelie X times
? 55 Wheelie near miss
? 56 Wheelie oncoming
? 57 Oncoming near miss
? 58 No longer exists
? 59 No longer exists
? 60 Distance traveled
? 61 No longer exists
? 62 Jump over bikes
E_ACTION_COUNT 63

BrnResource::ChallengeListEntryAction::EChallengeCoopType

Name Value Comments
E_CHALLENGE_COOP_TYPE_ONCE 0
E_CHALLENGE_COOP_TYPE_INDIVIDUAL 1
E_CHALLENGE_COOP_TYPE_INDIVIDUAL_ACCUMULATION 2
E_CHALLENGE_COOP_TYPE_SIMULTANEOUS 3
E_CHALLENGE_COOP_TYPE_CUMULATIVE 4
E_CHALLENGE_COOP_TYPE_AVERAGE 5 Non-functional (missing code)
E_CHALLENGE_COOP_TYPE_INDIVIDUAL_SEQUENCE 6 Non-functional (missing code)
E_CHALLENGE_COOP_TYPE_COUNT 7

Challenge modifier

Name Value Comments
KX_MODIFIER_WITHOUT_CRASHING 0x1 Crashing resets score
KX_MODIFIER_PRISTINE 0x2 Has "contributed most"/"finished first" popup
KX_MODIFIER_HEAD_ON 0x4 Unused
KX_MODIFIER_IN_AIR 0x8 In air
KX_MODIFIER_BANK_FOR_SUCCESS 0x10 Must be set unless co-op type is individual accumulation or scoring may go berserk.
? 0x20 Stands by before part 2
? 0x40 Timer starts on challenge activation

BrnResource::ChallengeListEntryAction::ECombineActionType

Name Value Comments
E_COMBINE_ACTION_CHAIN 0
E_COMBINE_ACTION_FAILURE_RESETS_CHAIN 1 Only works if KX_MODIFIER_WITHOUT_CRASHING is set in the modifier
E_COMBINE_ACTION_FAILURE_RESETS_EVERYONE 2
? 3 Unknown, unused. Non-functional but would be similar to sequential
E_COMBINE_ACTION_SIMULTANEOUS 4 Perform two actions at the same time
E_COMBINE_ACTION_INDEPENDENT 5 Perform two actions at any time
? 6 Perform two actions sequentially
E_COMBINE_ACTION_COUNT 7

BrnResource::ChallengeListEntryAction::ELocationType

Name Value Comments
E_LOCATION_TYPE_ANYWHERE 0
E_LOCATION_TYPE_DISTRICT 1
E_LOCATION_TYPE_COUNTY 2
E_LOCATION_TYPE_TRIGGER 3
E_LOCATION_TYPE_ROAD 4
E_LOCATION_TYPE_ROAD_NO_MARKER 5
? 6 Gas Station
? 7 Auto Repair
? 8 Paint Shop
E_LOCATION_TYPE_COUNT 9

BrnResource::ChallengeListEntryAction::EChallengeDataType

Name Value Comments
E_CHALLENGE_DATA_TYPE_CRASHES 0
E_CHALLENGE_DATA_TYPE_NEAR_MISS 1
E_CHALLENGE_DATA_TYPE_ONCOMING 2
E_CHALLENGE_DATA_TYPE_DRIFT 3
E_CHALLENGE_DATA_TYPE_AIR 4
E_CHALLENGE_DATA_TYPE_AIR_DISTANCE 5
E_CHALLENGE_DATA_TYPE_BARREL_ROLLS 6
E_CHALLENGE_DATA_TYPE_FLAT_SPINS 7
E_CHALLENGE_DATA_TYPE_CARS_LEAPT 8
E_CHALLENGE_DATA_TYPE_SPEED_ROAD_RULE 9
E_CHALLENGE_DATA_TYPE_CRASH_ROAD_RULE 10
E_CHALLENGE_DATA_TYPE_SUCCESSFUL_LANDINGS 11
E_CHALLENGE_DATA_TYPE_BURNOUTS 12
E_CHALLENGE_DATA_TYPE_POWER_PARKS 13
E_CHALLENGE_DATA_TYPE_PERCENTAGE 14
E_CHALLENGE_DATA_TYPE_MEET_UP 15
E_CHALLENGE_DATA_TYPE_BILLBOARDS 16
E_CHALLENGE_DATA_TYPE_BOOST_TIME 17
E_CHALLENGE_DATA_TYPE_CONVOY_POSITION 18
E_CHALLENGE_DATA_TYPE_DISTANCE 19
E_CHALLENGE_DATA_TYPE_CHAIN 20
E_CHALLENGE_DATA_TYPE_MULTIPLIER 21
E_CHALLENGE_DATA_TYPE_STUNT_SCORE 22
E_CHALLENGE_DATA_TYPE_CORKSCREW 23 Perform a Barrel Roll and Flat Spin at the same time
E_CHALLENGE_DATA_TYPE_SUPER_JUMP 24 1 on first target (number of jumps?), jump trigger ID on second target
E_CHALLENGE_DATA_TYPE_INTERSTATE_LAP 25
E_CHALLENGE_DATA_TYPE_TAKEDOWNS 26
E_CHALLENGE_DATA_TYPE_VERT_TAKEDOWN 27
E_CHALLENGE_DATA_TYPE_AERIAL_NEAR_MISS 28
E_CHALLENGE_DATA_TYPE_REV_DRIVING 29
E_CHALLENGE_DATA_TYPE_REV_ONCOMING 30
E_CHALLENGE_DATA_TYPE_TARGET 31 Generic counter, usually used as a MEET_UP counter
E_CHALLENGE_DATA_TYPE_BIKES_LEAPT 32
E_CHALLENGE_DATA_TYPE_WHEELIE 33
E_CHALLENGE_DATA_TYPE_WHEELIE_NEAR_MISS 34
E_CHALLENGE_DATA_TYPE_WHEELIE_ONCOMING 35
E_CHALLENGE_DATA_TYPE_ONCOMING_NEAR_MISS 36
E_CHALLENGE_DATA_TYPE_DISTANCE_TRAVELED 37
E_CHALLENGE_DATA_TYPE_COUNT 38 Used as a placeholder when there is no target

BrnWorld::EDistrict

See districts.

BrnWorld::ECounty

See counties.