Burnout Game Data (Takedown-Dominator)/Burnout 3

From Burnout Wiki

Structures

Names are guessed based on debugging symbols from Burnout Revenge (2005-07-14 build).

CB3GameDataStruct

Offset Length Type Name Description Comments
0x0 0x4 RwUInt32 muVersionNumber Game data format version 9
0x4 0x4 Padding
0x8 0x190 GtID[50] maStageDataIDs Stage IDs
0x198 0xC8 RwInt32[50] manStageDataOffsets Stage data (individual stages) See CB3GameStageDataStruct
0x260 0x4 RwInt32 mnNumStages Number of stages
0x264 0x4 RwInt32 ? Stage data See CB3GameStageDataStruct
0x268 0x4 RwInt32 mnTrackDataOffset Track data See CB3TrackDataStruct
0x26C 0x4 RwInt32 mnTrafficDataOffset Traffic data See CB3TrafficDataStruct
0x270 0x4 RwInt32 mnTrafficLanesDataOffset Traffic lanes data See CB3TrafficLanesStruct
0x274 0x4 RwInt32 mnAILanesDataOffset AI lanes data See CB3AILanesDataStruct

CB3GameStageDataStruct

Offset Length Type Name Description Comments
0x0 0x390 CB4AIDriverStruct[6] maDrivers Drivers
0x390 0x8 GtID mTrackID Track ID
0x398 0x8 GtID mStageID Stage ID
0x3A0 0x4 RwReal mrGoldThreshold Gold medal threshold
0x3A4 0x4 RwReal mrSilverThreshold Silver medal threshold
0x3A8 0x4 RwReal mrBronzeThreshold Bronze medal threshold
0x3AC 0x4 RwInt32 ? 15 in samples
0x3B0 0x4 RwInt32 ? 20 in samples
0x3B4 0x4 RwInt32 mnNumDrivers Number of drivers Up to 6
0x3B8 0x4 RwInt32 mnNumLaps Number of laps
0x3BC 0x4 RwInt32 mnTrackDataSetSize Track data size
0x3C0 0x4 RwInt32 mnTrackDataSetOffset Track data See CB3TrackDataStruct
0x3C4 0x4 RwInt32 mnTrafficDataSetSize Traffic data size
0x3C8 0x4 RwInt32 mnTrafficDataSetOffset Traffic data See CB3TrafficDataStruct
0x3CC 0x4 RwInt32 mnTrafficLanesSetSize Traffic lanes size
0x3D0 0x4 RwInt32 mnTrafficLanesSetOffset Traffic lanes See CB3TrafficLanesStruct
0x3D4 0x4 RwInt32 mnAILanesSetSize AI lanes size
0x3D8 0x4 RwInt32 mnAILanesSetOffset AI lanes See CB3AILanesDataStruct
0x3DC 0x4 Padding

CB3AIDriverStruct

Hmmm...
Hmmm...
To do:
List flags.
Offset Length Type Name Description Comments
0x0 0x8 GtID mVehicleClass Vehicle class ID
0x8 0x8 GtID mVehcileID Vehicle ID
0x10 0x40 RwReal[16] marMinSplitValues Minimum split values
0x50 0x40 RwReal[16] marMaxSplitValues Maximum split values
0x90 0x1 RwUInt8 mu8Aggression Aggression
0x91 0x1 RwUInt8 mu8AggressionMax Maximum aggression
0x92 0x1 RwUInt8 mu8AggressionDelta Delta aggression
0x93 0x1 RwUInt8 mu8CatchupTailoff Catchup tailoff
0x94 0x1 RwInt8 mn8VehicleColour Vehicle color
0x95 0x1 RwInt8 mn8TakedownDifficulty Takedown difficulty
0x96 0x1 RwInt8 mx8Flags Flags
0x97 0x1 RwUInt8 mu8Difficulty Difficulty

CB3TrackDataStruct

Offset Length Type Name Description Comments
0x0 0x1E0 CB3StartPositionStruct[6] maStartPositionStructs Start positions
0x1E0 0x40 CB3PlanarTriggerStruct[2] maStartLineStructs Start lines
0x220 0x40 CB3PlanarTriggerStruct[2] maFinishLineStructs Finish lines
0x260 0x180 CB3PlanarTriggerStruct[12] maSplitTimeCheckpointStructs
0x3E0 0x4 CB3SignatureTakedownStruct* mpSignatureTakedowns Signature takedowns
0x3E4 0x4 CB3CrashModePickupStruct* mpCrashModePickups Crash Mode pickups
0x3E8 0x4 RwUInt32 muVersionNumber Version number 5
0x3EC 0x4 RwInt32 mnNumStartLines Number of start lines
0x3F0 0x4 RwInt32 mnNumFinishLines Number of finish line
0x3F4 0x4 RwInt32 mnNumSplitTimeCheckpoints Number of split time checkpoints
0x3F8 0x4 RwInt32 mnNumSignatureTakedowns Number of Signature Takedowns
0x3FC 0x4 RwInt32 mnNumCrashModePickups Number of Crash Mode pickups

CB3StartPositionStruct

Hmmm...
Hmmm...
To do:
Confirm the fields following the matrix are the same as in Revenge.
Offset Length Type Name Description Comments
0x0 0x40 CGtMatrix3x4 mMatrix
0x40 0x4 RwInt32 mnStreamUnitIndex
0x44 0x4 RwInt32 mnAILaneIndex
0x48 0x4 RwInt32 mnAILaneSegmentIndex
0x4C 0x4 RwInt32 mnPad Padding

CB3PlanarTriggerStruct

Offset Length Type Name Description Comments
0x0 0x10 CGtSphere mSphere
0x10 0x10 CGtV3d mPlaneNormal

CB3SignatureTakedownStruct

Offset Length Type Name Description Comments
0x0 0x40 CGtOrthogonalBox mSigTDBox Start and end coordinates of the zone into which a rival must be taken down
0x40 0x4 EB3SignatureTakedownType meType
0x44 0xC Padding

CB3CrashModePickupStruct

Hmmm...
Hmmm...
To do:
List types and flags.
Offset Length Type Name Description Comments
0x0 0x10 CGtV3d mPosition
0x10 0x1 RwUInt8 meType
0x11 0x1 RwUInt8 mu8Flags
0x12 0x2 RwUInt8[2] mau8Pad Padding
0x14 0xC Padding

CB3TrafficDataStruct

Hmmm...
Hmmm...
To do:
List flags.
Offset Length Type Name Description Comments
0x0 0x8 GtID mHelicopterID
0x8 0x8 GtID mLTrainID
0x10 0x8 GtID mTramID
0x18 0x8 GtID mMonoRailID
0x20 0x8 GtID mPlaneID
0x28 0x4 RwUInt32 mu32VersionNumber 8
0x2C 0x4 CB3StopJunctionStruct* mpStopJunctions
0x30 0x4 RwInt32 mnNumStopJunctions
0x34 0x4 CB3TrafficLightPositionStruct* mpTrafficLights
0x38 0x4 RwInt32 mnNumTrafficLights
0x3C 0x4 CB3TrafficValvePositionStruct* mpTrafficValves
0x40 0x4 RwInt32 mnNumTrafficValves
0x44 0x4 CB3TrafficSplitterPositionStruct* mpTrafficSplitters
0x48 0x4 RwInt32 mnNumTrafficSplitters
0x4C 0x4 CB3TriggerStruct* mpTriggers
0x50 0x4 RwInt32 mnNumTriggers
0x54 0x4 CB3TrafficVehicleWeightStruct* mpCarWeightings
0x58 0x4 RwInt32 mnNumCarWeightings
0x5C 0x4 RwInt32 mnTotalCarWeighting
0x60 0x4 CB3TrafficVehicleWeightStruct* mpVanWeightings
0x64 0x4 RwInt32 mnNumVanWeightings
0x68 0x4 RwInt32 mnTotalVanWeighting
0x6C 0x4 CB3TrafficVehicleWeightStruct* mpBusWeightings
0x70 0x4 RwInt32 mnNumBusWeightings
0x74 0x4 RwInt32 mnTotalBusWeighting
0x78 0x4 CB3TrafficVehicleWeightStruct* mpLorryWeightings
0x7C 0x4 RwInt32 mnNumLorryWeightings
0x80 0x4 RwInt32 mnTotalLorryWeighting
0x84 0x4 CB3TrafficVehicleWeightStruct* mpArticCabWeightings
0x88 0x4 RwInt32 mnNumArticCabWeightings
0x8C 0x4 RwInt32 mnTotalArticCabWeighting
0x90 0x4 CB3TrafficVehicleWeightStruct* mpArticTrailerWeightings
0x94 0x4 RwInt32 mnNumArticTrailerWeightings
0x98 0x4 RwInt32 mnTotalArticTrailerWeighting
0x9C 0x4 CB3CrashTrafficDestructorStruct* mpCrashTrafficDestructors
0xA0 0x4 RwInt32 mnNumCrashTrafficDestructors
0xA4 0x4 CB3TrafficHullStruct* mpTrafficHulls
0xA8 0x4 RwInt32 mnNumTrafficHulls
0xAC 0x4 CB3TrafficLightCoronaStruct* mpTrafficLightCoronas
0xB0 0x4 RwInt32 mnNumTrafficLightCoronas
0xB4 0x1 RwUInt8 mx8Flags
0xB5 0x1 RwUInt8 mu8UsedSpecialVehicles
0xB6 0x1 RwUInt8 mu8NumSpecialVehicles
0xB7 0x1 RwUInt8 mu8Pad Padding

CB3StopJunctionStruct

Offset Length Type Name Description Comments
0x0 0x18 RwInt32[6] manLaneIndices
0x18 0x10 RwInt32[4] manControlSectionStartNodes
0x28 0x10 RwInt32[4] manControlSectionStopNodes
0x38 0x18 RwInt32[6] manExclusionZoneEndNodes
0x50 0x4 RwInt32 mnNumControlZones
0x54 0x4 RwInt32 mnNumExclusionZoneLanes

CB3TrafficLightPositionStruct

Offset Length Type Name Description Comments
0x0 0x4 RwInt32* mpnStartSegments
0x4 0x4 RwInt32* mpnStopSegments
0x8 0x4 RwInt32* mpnEndSegments
0xC 0x4 RwInt32* mpnLanesIndices
0x10 0x4 RwUInt8[4] mau8CoronaIndices
0x14 0x1 RwUInt8 mu8NumCoronas
0x15 0x1 RwUInt8 mu8NumLanes
0x16 0x2 RwUInt8[2] mau8Pad Padding

CB3TrafficValvePositionStruct

Hmmm...
Hmmm...
To do:
List specials flags.
Offset Length Type Name Description Comments
0x0 0x4 RwInt32* mpnLanes
0x4 0x4 RwInt32* mpnSegments
0x8 0x4 RwInt32 mnNumLanes
0xC 0x1 RwUInt8 mx8IsAGenerator
0xD 0x1 RwUInt8 mx8Specials
0xE 0x2 RwUInt8[2] mau8Pad Padding

CB3TrafficSplitterPositionStruct

Offset Length Type Name Description Comments
0x0 0x4 RwInt32 mnLaneIndex
0x4 0x4 RwInt32 mnSegmentIndex

CB3TriggerStruct

Offset Length Type Name Description Comments
0x0 0x4 CB3TrafficFillerStruct* mpKillFillers
0x4 0x4 CB3TrafficValveLaneSpeedStruct* mpValveLaneSpeeds
0x8 0x4 RwUInt8* mpu8ValveSpeedChangeIndices
0xC 0x4 RwUInt8* mpu8ValveLaneSpeedChangeIndices
0x10 0x4 CB3TrafficValveLaneFlowStruct* mpValveLaneFlows
0x14 0x4 RwUInt8* mpu8ValveFlowChangeIndices
0x18 0x4 RwUInt8* mpu8ValveLaneFlowChangeIndices
0x1C 0x4 CB3FormationBehaviourStruct* mpValveLaneFormations
0x20 0x4 RwUInt8* mpu8ValveFormationsChangeIndices
0x24 0x4 RwUInt8* mpu8ValveLaneFormationChangeIndices
0x28 0x4 CB3TrafficSplitterFlowStruct* mpSplitterFlows
0x2C 0x4 RwUInt8* mpu8SplitterFlowChangeIndices
0x30 0x4 CB3TrafficLightTimingsStruct* mpTrafficLightTimings
0x34 0x4 RwUInt8* mpu8TrafficLightIndices
0x38 0x4 CB3CrashTrafficSequenceStruct* mpCrashJunctionSequences
0x3C 0x4 RwInt32 mnNumCrashJunctionSequences
0x40 0x4 RwInt32 mnNumValveSpeedChanges
0x44 0x4 RwInt32 mnNumValveFlowChanges
0x48 0x4 RwInt32 mnNumValveFormationChanges
0x4C 0x4 RwReal mrTriggerTime
0x50 0x2 RwUInt16 mu16TriggerSlice
0x52 0x1 RwUInt8 mu8TriggerLap
0x53 0x1 RwUInt8 mu8KillFillerCounts
0x54 0x1 RwUInt8 mu8NumSplitterFlowChanges
0x55 0x1 RwUInt8 mu8NumTrafficLightTimingChanges
0x56 0x2 Padding

CB3TrafficFillerStruct

Offset Length Type Name Description Comments
0x0 0x2 RwInt16 mu16StartSegmentIndex
0x2 0x2 RwInt16 mu16EndSegmentIndex
0x4 0x1 RwUInt8 mu8LaneIndex
0x5 0x1 RwUInt8 mu8FillerType

CB3TrafficValveLaneSpeedStruct

Offset Length Type Name Description Comments
0x0 0x4 RwReal marLaneSpeed

CB3TrafficValveLaneFlowStruct

Offset Length Type Name Description Comments
0x0 0x1C RwReal[7] marFlowValues

CB3FormationBehaviourStruct

Offset Length Type Name Description Comments
0x0 0x4 RwReal* mprSameLaneDist
0x4 0x4 RwReal* mprLeftLaneDist
0x8 0x4 RwReal* mprRightLaneDist
0xC 0x4 RwReal mrMaxDist
0x10 0x4 RwInt32 mnNumBehaviours

CB3TrafficSplitterFlowStruct

Offset Length Type Name Description Comments
0x0 0x18 RwInt32[6] mnForwardFlowPercent
0x18 0x18 RwInt32[6] mnLeftFlowPercent
0x30 0x18 RwInt32[6] mnRightFlowPercent

CB3TrafficLightTimingsStruct

Offset Length Type Name Description Comments
0x0 0x4 RwReal mrTimeToGreen
0x4 0x4 RwReal mrRedTime
0x8 0x4 RwReal mrGreenTime
0xC 0x4 RwReal mrOrangeTime

CB3CrashTrafficSequenceStruct

Hmmm...
Hmmm...
To do:
Verify structure is same as Revenge (none in samples).
Offset Length Type Name Description Comments
0x0 0x4 CB3CrashTrafficVehicleStruct* mpVehicles
0x4 0x4 RwReal mrGenerationDistance
0x8 0x1 RwUInt8 mu8NumVehicles
0x9 0x1 RwUInt8 mu8NumRolledOutVehicles
0xA 0x1 RwUInt8 mu8ValveIndex
0xB 0x1 RwUInt8 mu8ValveLaneIndex

CB3CrashTrafficVehicleStruct

Hmmm...
Hmmm...
To do:
List type flags. Verify structure is same as Revenge (none in samples).
Offset Length Type Name Description Comments
0x0 0x8 GtID mVehicleType
0x8 0x8 GtID mTrailerType
0x10 0x4 RwReal mrGenerationDistance
0x14 0x4 RwReal mrGenerationTime
0x18 0x1 RwUInt8 mu8VehicleClass
0x19 0x1 RwUInt8 mu8VehicleColour
0x1A 0x1 RwUInt8 mu8TrailerColour
0x1B 0x1 RwUInt8 mx8TypeFlags
0x1C 0x4 Padding

CB3TrafficVehicleWeightStruct

Offset Length Type Name Description Comments
0x0 0x8 GtID mVehicleID
0x8 0x8 RwUInt8[8] mau8ColourWeights
0x10 0x4 RwInt32 mnWeighting
0x14 0x4 Padding

CB3CrashTrafficDestructorStruct

Hmmm...
Hmmm...
To do:
Verify structure is same as Revenge (none in samples).
Offset Length Type Name Description Comments
0x0 0x2 RwUInt16 mu16SegmentIndex
0x2 0x1 RwUInt8 mu8LaneIndex
0x3 0x1 RwUInt8 mu8Pad Padding

CB3TrafficHullStruct

Offset Length Type Name Description Comments
0x0 0x4 CB3TrafficFillerStruct* mpTrafficFillers
0x4 0x4 RwInt32 mnStartSlice
0x8 0x4 RwInt32 mnEndSlice
0xC 0x4 RwUInt16* mpu16ExtraSegments
0x10 0x4 RwUInt8* mpu8ValveIndices
0x14 0x1 RwUInt8 mu8NumTrafficFillers
0x15 0x1 RwUInt8 mu8NumValveIndices
0x16 0x2 RwUInt8[2] mau8Pad Padding

CB3TrafficLightCoronaStruct

Offset Length Type Name Description Comments
0x0 0x10 CGtV3d mPos
0x10 0x10 CGtV3d mAt

CB3TrafficLanesStruct

Offset Length Type Name Description Comments
0x0 0x4 CB3TrafficLaneStruct* mpLanes
0x4 0x4 CGtV3d* mpNodes
0x8 0x4 RwInt32 mnNumLanes

CB3TrafficLaneStruct

Offset Length Type Name Description Comments
0x0 0x4 CB3SegmentNodeStruct* mpSegmentNodeData
0x4 0x4 CB3SegmentDimensions* mpSegmentDimensions
0x8 0x4 CB3TrafficSegmentStruct* mpTrafficSegmentData
0xc 0x4 CGtV3d* mpNodes
0x10 0x4 RwInt32 mnNumSegments

CB3SegmentNodeStruct

Offset Length Type Name Description Comments
0x0 0x4 RwUInt16[2] mau16Nodes

CB3SegmentDimensions

Offset Length Type Name Description Comments
0x0 0x4 RwReal mrCumulativeLength
0x4 0x4 RwReal mrWidth

CB3TrafficSegmentStruct

Offset Length Type Name Description Comments
0x0 0xC RwUInt16[6] mau16NeighbourLaneSegments
0xC 0x6 RwUint8[6] mau8NeighbourLaneIndices

CB3AILanesDataStruct

Hmmm...
Hmmm...
To do:
Check whether the color fields at the end still exist (they may not).
Offset Length Type Name Description Comments
0x0 0x4 RwUInt32 mnLaneDataVersion Version number 3
0x4 0x4 RwInt32 mnLaneCount Number of AI lanes
0x8 0x4 RwInt32 mnSliceCount Number of slices
0xC 0x4 RwInt32 mnCornerCount Number of AI corners
0x10 0x4 RwUInt32 mnCheckpointCount Number of AI checkpoints
0x14 0x4 CB3AILaneStruct* mpLanesArray AI lanes
0x18 0x4 CB3SliceStruct* mpSlicesArray Slices
0x1C 0x4 CB3AICornerStruct* mpCornersArray AI corners
0x20 0x4 CGtV3d* mpNodesArray Nodes
0x24 0x80 CB3AICheckpoint[8] maCheckpoints AI checkpoints
0xA4 0x1 RwUInt8 mn8ColourOccluded Colour occluded
0xA5 0x1 RwUInt8 mn8ColourVisible Is colour visible
0xA6 0x2 Padding

CB3AILaneStruct

Offset Length Type Name Description Comments
0x0 0x4 CB3AIRungStruct* mpRungsArray
0x4 0x4 CB3AISegmentDimensionStruct* mpSegmentDimensionsArray
0x8 0x4 CB3AISegmentStruct* mpSegmentsArray
0xC 0x2 RwUInt16 mu16SegmentCount
0xE 0x1 RwUInt8 mu8Looped
0xF 0x1 RwInt8 mn8Pad1 Padding

CB3AIRungStruct

Offset Length Type Name Description Comments
0x0 0x4 RwUInt16[2] mau16Nodes

CB3AISegmentDimensionStruct

Offset Length Type Name Description Comments
0x0 0x4 RwReal mrCumulativeLength
0x4 0x4 RwReal mrWidth

CB3AISegmentStruct

Hmmm...
Hmmm...
To do:
List type flags.
Offset Length Type Name Description Comments
0x0 0x2 RwInt16 mn16SliceIndex
0x2 0x1 RwUInt8 mu8CornerIndex
0x3 0x1 RwUInt8 mx8TypeFlags
0x4 0x1 RwUInt8[2] mau8ChangeLaneIndices
0x6 0x4 RwUInt16[2] mau16ChangeLaneSegments

CB3SliceStruct

Hmmm...
Hmmm...
To do:
Confirm fields after length still exist.
Offset Length Type Name Description Comments
0x0 0x4 RwReal mrCumulativeLength Cumulative length
0x4 0x1 RwUInt8 mu8Indicator Indicator
0x5 0x1 RwUInt8 mu8WeatherIntensity Weather intensity
0x6 0x1 RwInt8 mn8Pad1 Padding
0x7 0x1 RwInt8 mn8Pad2 Padding

CB3AICornerStruct

Offset Length Type Name Description Comments
0x0 0x2 RwUInt16 mu16StartIndex
0x2 0x2 RwUInt16 mu16ApexIndex
0x4 0x2 RwUInt16 mu16EndIndex
0x6 0x2 RwUInt16 mu16Radius
0x8 0x1 RwUInt8 mu8LaneIndex
0x9 0x1 RwInt8 mn8DriftValue
0xA 0x1 RwInt8 mx8CornerDirection
0xB 0x1 RwInt8 mn8Pad

CB3AICheckpoint

Offset Length Type Name Description Comments
0x0 0x4 RwReal mrDistance Distance
0x4 0x4 RwReal mrMinTime Minimum time
0x8 0x4 RwReal mrMaxTime Maximum time
0xC 0x2 RwUInt16 mu16Slice Slice
0xE 0x2 RwUInt16 mu16Pad Padding

Enumerations

EB3SignatureTakedownType

Hmmm...
Hmmm...
To do:
Compare to Revenge to confirm takedown counts don't go beyond the max here.
Name Value Comments
eSignatureTakedownType0 0
eSignatureTakedownType1 1
eSignatureTakedownType2 2
? 3
eSignatureTakedownTypeCount ?