Prop Physics

From Burnout Wiki
Revision as of 06:02, 31 October 2022 by Burninrubber0 (talk | contribs) (Created page.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The prop physics resource type handles collision attributes for props on a per-track unit basis.

Structures

BrnPhysics::Props::PropPhysicsDataHeader

32-bit

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muNumberOfPropTypes Number of prop types
0x4 0x4 uint32_t muNumberOfVolumeTypes Number of volume types
0x8 0x4 uint32_t muNumberOfPartTypes Number of prop part types
0xC 0x4 uint32_t muSizeInBytes Resource size
0x10 0x7D0 PropTypeData*[500] mapPropTypes Prop types
0x7E0 0x4B0 PropPartTypeData*[300] mapPropPartTypes Prop part types
0xC90 0x2000 Volume*[2048] mapVolumeTypes Volume types
0x2C90 0x4 uint32_t muTimeStamp time_t timestamp Null in Remastered

64-bit

Offset Length Type Name Description Comments
0x0 0x4 uint32_t muNumberOfPropTypes Number of prop types
0x4 0x4 uint32_t muNumberOfVolumeTypes Number of volume types
0x8 0x4 uint32_t muNumberOfPartTypes Number of prop part types
0xC 0x4 uint32_t muSizeInBytes Resource size
0x10 0xFA0 PropTypeData*[500] mapPropTypes Prop types
0xFB0 0x960 PropPartTypeData*[300] mapPropPartTypes Prop part types
0x1910 0x4000 Volume*[2048] mapVolumeTypes Volume types
0x5910 0x4 uint32_t muTimeStamp time_t timestamp Null in Remastered

BrnPhysics::Props::PropTypeData

32-bit

Offset Length Type Name Description Comments
0x0 0x10 Vector3 mJointLocator
0x10 0x10 Vector3 mCOMOffset
0x20 0x10 Vector3 mInertia
0x30 0x8 ID mResourceId
0x38 0x4 float32_t mfMass
0x3C 0x4 Volume* maCollisionVolumes
0x40 0x4 PropPartTypeData* maParts Uninitialized in asset
0x44 0x4 float32_t mfSphereRadius
0x48 0x4 float32_t mfMaxJointAngleCos
0x4C 0x4 float32_t mfLeanThreshold
0x50 0x4 float32_t mfMoveThreshold
0x54 0x4 float32_t mfSmashThreshold
0x58 0x4 uint32_t muSceneUriId
0x5C 0x1 uint8_t muMaxState
0x5D 0x1 uint8_t muNumberOfParts
0x5E 0x1 uint8_t muNumberOfVolumes
0x5F 0x1 uint8_t mu8JointType
0x60 0x1 uint8_t mu8ExtraTypeInfo
0x61 0xF padding

64-bit

Offset Length Type Name Description Comments
0x0 0x10 Vector3 mJointLocator
0x10 0x10 Vector3 mCOMOffset
0x20 0x10 Vector3 mInertia
0x30 0x8 ID mResourceId
0x38 0x4 float32_t mfMass
0x3C 0x4 padding
0x40 0x8 Volume* maCollisionVolumes
0x48 0x8 PropPartTypeData* maParts Uninitialized in asset
0x50 0x4 float32_t mfSphereRadius
0x54 0x4 float32_t mfMaxJointAngleCos
0x58 0x4 float32_t mfLeanThreshold
0x5C 0x4 float32_t mfMoveThreshold
0x60 0x4 float32_t mfSmashThreshold
0x64 0x4 uint32_t muSceneUriId
0x68 0x1 uint8_t muMaxState
0x69 0x1 uint8_t muNumberOfParts
0x6A 0x1 uint8_t muNumberOfVolumes
0x6B 0x1 uint8_t mu8JointType
0x6C 0x1 uint8_t mu8ExtraTypeInfo
0x6D 0x3 padding

BrnPhysics::Props::PropPartTypeData

32-bit

Offset Length Type Name Description Comments
0x0 0x10 Vector3 mOffset
0x10 0x10 Vector3 mInertia
0x20 0x4 float32_t mfMass
0x24 0x4 Volume* maCollisionVolumes
0x28 0x4 float32_t mfSphereRadius
0x2C 0x1 uint8_t muNumberOfVolumes
0x2D 0x3 padding

64-bit

Offset Length Type Name Description Comments
0x0 0x10 Vector3 mOffset
0x10 0x10 Vector3 mInertia
0x20 0x4 float32_t mfMass
0x24 0x4 padding
0x28 0x8 Volume* maCollisionVolumes
0x30 0x4 float32_t mfSphereRadius
0x34 0x1 uint8_t muNumberOfVolumes
0x35 0x3 padding

rw::collision::Volume

32-bit

Offset Length Type Name Description Comments
0x0 0x40 Matrix44Affine transform
0x40 0x4 VTable* vTable
0x44 0xC Anonymous union
0x50 0x4 float32_t radius
0x54 0x4 uint32_t groupID
0x58 0x4 uint32_t surfaceID
0x5C 0x4 uint32_t m_flags

64-bit

Offset Length Type Name Description Comments
0x0 0x40 Matrix44Affine transform
0x40 0x8 VTable* vTable
0x48 0xC Anonymous union
0x54 0x4 padding
0x58 0x4 float32_t radius
0x5C 0x4 uint32_t groupID
0x60 0x4 uint32_t surfaceID
0x64 0x4 uint32_t m_flags

rw::collision::Volume::VTable

Hmmm...
Hmmm...
To do:
Several anonymous fields are present and need to be researched.

Unions

Anonymous union in Volume

Hmmm...
Hmmm...
To do:
The listed structures are currently undocumented.
Length Type Name Description Comments
0x4 AggregateSpecificData aggregateData
0x4 SphereSpecificData sphereData
0x4 CapsuleSpecificData capsuleData
0xC TriangleSpecificData triangleData
0xC BoxSpecificData boxData
0x8 CylinderSpecificData cylinderData
0x8 TargetPtr[2] sizeOfTargetPointer