Vehicle Data/Burnout Revenge

From Burnout Wiki

Structures

CB4VehicleData

Offset Length Type Name Description Comments
0x0 0x4 RwUInt32 mxVersionNumber 31
0x4 0x4 RwInt32 mxLoadedState
0x8 0x1 RwInt8 mn8NumBodyParts
0x9 0x1 RwInt8 mn8NumWheels
0xA 0x1 RwInt8 mn8MinLOD
0xB 0x1 RwInt8 mn8MaxLOD
0xC 0x4 RwReal mrObjectRadius
0x10 0x4 RwReal mrWheelRadius
0x14 0x18 RwReal[6] marWheelScales
0x2C 0x20 RwReal[8] marBodyPartRadii
0x4C 0x14 CB4VehicleLODData*[5] mapLODData
0x60 0x4 CGtTexture* mpTexture
0x64 0x4 CGtTexture* mpTextureColourOverlay
0x68 0x4 CB4VehicleObject* mpShadowBodyObject
0x6c 0x4 CB4VehicleObject* mpShadowWheelObject
0x70 0x4C0 CGtMatrix3x4[19] maMainBoneMatrices
0x530 0x600 CGtMatrix3x4[8][3] maaBodyPartBoneMatrices
0xB30 0x4C0 CGtMatrix3x4[19] maMainSkinToBoneMatrices
0xFF0 0x600 CGtMatrix3x4[8][3] maaBodyPartSkinToBoneMatrices
0x15F0 0x100 CGtV3d[8][2] maaBodyPartAttachPoints
0x16F0 0x4C RwReal[19] marMainBoneLengths
0x173C 0x60 RwReal[8][3] maarBodyPartBoneLengths
0x179C 0x4 EBoneRigType meMainBoneRigType
0x17A0 0x20 EVehicleBodyPart[8] maeBodyPartType
0x17C0 0x8 RwUInt8[8] mau8HingeAxes
0x17C8 0x10 RwUInt8[8][2] maau8BodyPartBoneIndices
0x17D8 0x20 RwUInt8[8][2][2] maaau8AttachPointBoneIndices
0x17F8 0xC RwUInt8[6][2] maau8WheelBoneIndices
0x1804 0x20 RwReal[8] marHingeMaxAngles
0x1824 0x40 RwReal[8][2] maarBodyPartBoneWeights
0x1864 0x80 RwReal[8][2][2] maaarAttachPointWeights
0x18E4 0x30 RwReal[6][2] maarWheelBoneWeights
0x1914 0xC Padding
0x1920 0x180 CGtMatrix3x4[6] maWheelMatrices
0x1AA0 0x200 CGtMatrix3x4[8] maBodyPartMatrices
0x1CA0 0x20 CGtAxisAlignedBox mBBox
0x1CC0 0x100 CGtAxisAlignedBox[8] maBodyPartBBoxes
0x1DC0 0x340 CB4ConvexHullVehicle mHull
0x2100 0x4 RwBool mbHullExists
0x2104 0x48 CB4VehicleTag*[18] mpaTagPoints
0x214C 0x12 RwUInt8[18] mauTagPointCounts
0x215E 0x2 Padding
0x2160 0x4 CB4VehiclePayloadSet* mpaPayloadSets
0x2164 0x4 CB4VehiclePayload* mpaPayloads
0x2168 0x1 RwInt8 mn8NumPayloadSets
0x2169 0x1 RwInt8 mn8NumPayloads
0x216A 0x1 RwInt8 mn8CurrentPayloadSet
0x216B 0x1 Padding
0x216C 0x8 CB4SoundESMStruct*[2] mapESMs Engine sound model
0x2174 0x4 char* mpcVDB
0x2178 0x4 RwInt32 mnVDBSize
0x217C 0x4 Padding

CB4VehicleLODData

Offset Length Type Name Description Comments
0x0 0x40 CB4VehicleLODDataBase Base class

CB4VehicleLODDataBase

Offset Length Type Name Description Comments
0x0 0x4 CB4VehicleObject* mpBodyObject
0x4 0x20 CB4VehicleObject*[8] mapBodyParts
0x24 0xC CB4VehicleObject*[3] mapWheelObject

CB4VehicleObject

Offset Length Type Name Description Comments
0x0 0x1 RwInt8 mn8NumMeshes
0x1 0x1 RwInt8 mn8GlassMeshIndex
0x2 0x2 Padding
0x4 0x4 CB4VehicleMesh* mpaMeshes
0x8 0x4 RwReal mrNormalShift

CB4VehicleMesh

Offset Length Type Name Description Comments
0x0 0x4 RwUInt8* mpRenderDataFirst
0x4 0x4 RwUInt8* mpRenderDataRest
0x8 0x2 RwUInt16 mx16MeshFlags TODO: List flags
0xA 0x1 RwUInt8 mu8Alpha1
0xB 0x1 RwUInt8 mu8TextureIndex
0xC 0x1 RwUInt8 mu8SourceOpacity
0xD 0x1 RwUInt8 mu8CurrentOpacity
0xE 0x1 RwUInt8 mu8Shininess
0xF 0x1 RwUInt8 mu8UNUSED

CGtTexture

Hmmm...
Hmmm...
To do:
Move this and other texture-related structures to their own page if it doesn't already exist.
Offset Length Type Name Description Comments
0x0 0x34 RwRaster mRwRaster
0x34 0x5C GtSkyRasterExt mSkyRasterExt
0x90 0x38 GtTextureExt mTextureExt

RwRaster

Offset Length Type Name Description Comments
0x0 0x4 RwRaster* parent
0x4 0x4 RwUInt8* cpPixels
0x8 0x4 RwUInt8* palette
0xC 0x4 RwInt32 width
0x10 0x4 RwInt32 height
0x14 0x4 RwInt32 depth
0x18 0x4 RwInt32 stride
0x1C 0x2 RwInt16 nOffsetX
0x1E 0x2 RwInt16 nOffsetY
0x20 0x1 RwUInt8 cType
0x21 0x1 RwUInt8 cFlags
0x22 0x1 RwUInt8 privateFlags
0x23 0x1 RwUInt8 cFormat
0x24 0x4 RwUInt8* originalPixels
0x28 0x4 RwInt32 originalWidth
0x2C 0x4 RwInt32 originalHeight
0x30 0x4 RwInt32 originalStride

GtSkyRasterExtTag

Offset Length Type Name Description Comments
0x0 0x4 RwInt32 dmaRefCount
0x4 0x4 RwInt32 dmaClrCount
0x8 0x4 RwUInt32 lsb
0xC 0x4 RwUInt32 msb
0x10 0x4 RwUInt32 palOffset
0x14 0x2 RwUInt16 mipmapKL
0x16 0x1 RwUInt8 maxMipLevel
0x17 0x1 RwUInt8 bLocked
0x18 0x4 RwUInt32 miptbp1Lsb
0x1C 0x4 RwUInt32 miptbp1Msb
0x20 0x4 RwUInt32 miptbp2Lsb
0x24 0x4 RwUInt32 miptbp2Msb
0x28 0x4 RwUInt32 sysMemSize
0x2C 0x4 RwUInt32 sysMemPalSize
0x30 0x4 RwUInt32 nTexCacheSize
0x34 0x1 RwUInt8 cachePkts
0x35 0x1 RwUInt8 lockedMipLevel
0x36 0x1 RwUInt8 flags
0x37 0x1 RwUInt8[1] pad
0x38 0x4 void* palUploadPkt
0x3C 0x1C void*[7] mipUploadPkts
0x58 0x4 _SkyMemBlock* mpCacheEntry

GtTextureExtTag

Offset Length Type Name Description Comments
0x0 0x10 RwUInt16[8] mau16PaletteGSOffsets
0x10 0x1 RwUInt8 mu8NumPalettes
0x11 0x1 RwUInt8 mu8PaletteWidth
0x12 0x1 RwUInt8 mu8PaletteHeight
0x13 0x1 RwUInt8 mu8CurrentPalette
0x14 0x4 RwUInt32 muSizeInMemory
0x18 0x20 char[32] macName

CB4ConvexHullVehicle

Offset Length Type Name Description Comments
0x0 0x1C CB4ConvexHull Base class
0x1C 0x38 CB4ConvexHullPlane[14] maPlaneVertData
0x54 0xC Padding
0x60 0xE0 CGtPlane[14] maPlaneData
0x140 0x100 CGtV3d[16] maVertData
0x240 0x38 CB4ConvexHullEdge[28] maEdgeData
0x278 0xC0 CB4ConvexHullVertMap[16] maVertWeightData
0x338 0x8 Padding

CB4ConvexHull

Offset Length Type Name Description Comments
0x0 0x4 CB4ConvexHullPlane* maPlaneVerts
0x4 0x4 CGtPlane* maPlanes
0x8 0x4 CGtV3d* maVerts
0xC 0x4 CB4ConvexHullEdge* maEdges
0x10 0x4 CB4ConvexHullVertMap* maVertWeights
0x14 0x4 RwUInt32 mxFlags
0x18 0x1 RwUInt8 mu8NumVerts
0x19 0x1 RwUInt8 mu8NumPlanes
0x1A 0x1 RwUInt8 mu8NumEdges
0x1B 0x1 Padding

CB4ConvexHullPlane

Offset Length Type Name Description Comments
0x0 0x4 RwUInt8[4] mau8Verts

CB4ConvexHullEdge

Offset Length Type Name Description Comments
0x0 0x1 RwUInt8 mu8Vert0
0x1 0x1 RwUInt8 mu8Vert1

CB4ConvexHullVertMap

Offset Length Type Name Description Comments
0x0 0x8 RwReal[2] marWeights
0x8 0x2 RwUInt8[2] mau8Bones
0xA 0x2 Padding

CB4VehicleTag

Offset Length Type Name Description Comments
0x0 0x10 CGtV3dPlus mPosAndSize
0x10 0x10 CGtV3dPlus mNormalAndConeAngle
0x20 0x4 RwRGBA mColour
0x24 0x8 RwReal[2] marWeights
0x2C 0x2 RwUInt8[2] mau8BoneIndices
0x2E 0x2 Padding

CB4VehiclePayloadSet

Offset Length Type Name Description Comments
0x0 0x1 RwInt8 mn8NumPayloads
0x1 0x3 Padding
0x4 0x4 RwUInt32 mxFlags
0x8 0x4 CB4VehiclePayload* mpaPayloads

CB4VehiclePayload

Offset Length Type Name Description Comments
0x0 0x8 GtID mPartID
0x8 0x4 RwUInt32 mxFlags 1 flag, might be related to body part
0xC 0x1 RwInt8 mnPartIndex
0xD 0x3 Padding
0x10 0x40 CGtMatrix3x4 mPosition

CB4SoundESMStruct

Offset Length Type Name Description Comments
0x0 0x38 CB4SoundESMInputLag[7] maInputLags
0x38 0x4 RwUInt32 mun32VersionNumber 5
0x3C 0x4 CB4SoundESMPartialStruct* mpPartials
0x40 0x1 RwUInt8 mun8PartialCount
0x41 0x3 Padding
0x44 0x4 RwBool mbHighDetail

CB4SoundESMInputLag

Offset Length Type Name Description Comments
0x0 0x4 RwReal mrMin
0x4 0x4 RwReal mrMax

CB4SoundESMPartialStruct

Offset Length Type Name Description Comments
0x0 0x8 GtID mWaveID
0x8 0x4 CB4SoundESMGraphStruct* mpGraphs Negative pointer relative to partial start
0xC 0x1 RwUInt8 mun8GraphCount
0xD 0x1 RwUInt8 mun8Type See EPartialType
0xE 0x2 Padding

CB4SoundESMGraphStruct

Offset Length Type Name Description Comments
0x0 0x4 CB4SoundESMPointStruct* mpPoints Negative pointer relative to graph start
0x4 0x1 RwUInt8 mun8PointCount
0x5 0x1 RwInt8 mn8XAxis
0x6 0x1 RwInt8 mn8YAxis
0x7 0x1 Padding

CB4SoundESMPointStruct

Offset Length Type Name Description Comments
0x0 0x4 RwReal mrXpos
0x4 0x4 RwReal mrYpos

Typedefs

GtSkyRasterExt

Name Type Length Comments
GtSkyRasterExt GtSkyRasterExtTag 0x38

GtTextureExt

Name Type Length Comments
GtTextureExt GtTextureExtTag 0x5C

Enumerations

EBoneRigType

Name Value Comments
eNormalBoneRig 0
eLargeBoneRig 1
eNoBoneRig 2

EVehicleBodyPart

Name Value Comments
eBodyPartNull -1
eBodyPartLeftDoor 0
eBodyPartRightDoor 1
eBodyPartFrontBumper 2
eBodyPartRearBumper 3
eBodyPartBonnet 4
eBodyPartBoot 5
eBodyPartSpoiler 6
eBodyPartLeftSkirt 7
eBodyPartRightSkirt 8
eBodyPartFrontWindscreen 9
eBodyPartRearWindscreen 10
eBodyPartRearLeftDoor 11
eBodyPartRearRightDoor 12
eBodyPartCount 13

EPartialType

Hmmm...
Hmmm...
To do:
Check what high nibble means (sometimes marked as 1).
Name Value Comments
ePartialNormal 0
ePartialTurbo 1
ePartialGinsu 2