Prop Physics: Difference between revisions

Added infobox and normalized some content.
(Simplified vTable description and added volume data documentation.)
(Added infobox and normalized some content.)
 
(8 intermediate revisions by the same user not shown)
Line 1:
{{ParadiseResourceTypeInfobox
| name = PropPhysics
| resourcenames = PRP_PHYSICS_
| id = 0x1000F
| category = Game-specific<br />(Burnout Paradise)
| memdist = Main Memory only
}}
 
The prop physics resource type handles collision attributes for props on a per-track unit basis.
 
= Types =
{{subpage|Prop Types|text=List of prop types used in Burnout Paradise.}}
 
= Structures =
Line 82 ⟶ 93:
| 0x5E || 0x1 || uint8_t || muNumberOfVolumes || ||
|-
| 0x5F || 0x1 || uint8_t || mu8JointType || || [[#Prop joint type|Joint type]]
|-
| 0x60 || 0x1 || uint8_t || mu8ExtraTypeInfo || || [[#Prop extra type info|Extra type info]]
|-
| 0x61 || 0xF || || || paddingPadding ||
|}
 
Line 103 ⟶ 114:
| 0x38 || 0x4 || float32_t || mfMass || ||
|-
| 0x3C || 0x4 || || || paddingPadding ||
|-
| 0x40 || 0x8 || [[#rw::collision::VolRef::Volume|Volume]]* || maCollisionVolumes || ||
Line 127 ⟶ 138:
| 0x6A || 0x1 || uint8_t || muNumberOfVolumes || ||
|-
| 0x6B || 0x1 || uint8_t || mu8JointType || || [[#Prop joint type|Joint type]]
|-
| 0x6C || 0x1 || uint8_t || mu8ExtraTypeInfo || || [[#Prop extra type info|Extra type info]]
|-
| 0x6D || 0x3 || || || paddingPadding ||
|}
 
Line 151 ⟶ 162:
| 0x2C || 0x1 || uint8_t || muNumberOfVolumes || ||
|-
| 0x2D || 0x3 || || || paddingPadding ||
|}
 
Line 164 ⟶ 175:
| 0x20 || 0x4 || float32_t || mfMass || ||
|-
| 0x24 || 0x4 || || || paddingPadding ||
|-
| 0x28 || 0x8 || [[#rw::collision::VolRef::Volume|Volume]]* || maCollisionVolumes || ||
Line 172 ⟶ 183:
| 0x34 || 0x1 || uint8_t || muNumberOfVolumes || ||
|-
| 0x35 || 0x3 || || || paddingPadding ||
|}
 
Line 192 ⟶ 203:
| 0x58 || 0x4 || uint32_t || surfaceID || ||
|-
| 0x5C || 0x4 || uint32_t || m_flags || || See [[#Volume flags|volume flags]]
|}
 
Line 205 ⟶ 216:
| 0x48 || 0xC || [[#Anonymous union in Volume|Anonymous union]] || || Volume data ||
|-
| 0x54 || 0x4 || || || paddingPadding ||
|-
| 0x58 || 0x4 || float32_t || radius || ||
Line 213 ⟶ 224:
| 0x60 || 0x4 || uint32_t || surfaceID || ||
|-
| 0x64 || 0x4 || uint32_t || m_flags || || See [[#Volume flags|volume flags]]
|}
 
=== rw::collision::AggregateSpecificData ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || [[#rw::collision::Aggregate|Aggregate]]* || agg || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || [[#rw::collision::Aggregate|Aggregate]]* || agg || ||
|}
 
=== rw::collision::Aggregate ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
Line 236 ⟶ 256:
|-
| 0x2C || 0x4 || uint32_t || pad || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x20 || [[#rw::collision::AALineClipper::Init::AABBox|AABBox]] || m_AABB || ||
|-
| 0x20 || 0x8 || VTable* || m_vTable || List of Aggregate functions || rw::collision::Aggregate::VTable
|-
| 0x28 || 0x4 || uint32_t || m_numTagBits || ||
|-
| 0x2C || 0x4 || uint32_t || m_numVolumes || ||
|-
| 0x30 || 0x4 || uint32_t || pad || ||
|-
| 0x34 || 0x4 || || || Padding ||
|}
 
Line 248 ⟶ 285:
 
=== rw::collision::SphereSpecificData ===
==== 32-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x4 || void* || nothing || ||
|}
 
==== 64-bit ====
{| class="wikitable"
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x8 || void* || nothing || ||
|}
 
Line 294 ⟶ 339:
= Unions =
=== Anonymous union in Volume ===
{{todo|The listed structures are currently undocumented.}}
{| class="wikitable"
! Length !! Type !! Name !! Description !! Comments
Line 333 ⟶ 377:
! Name !! Type !! Length !! Comments
|-
| AABBox || [[#AABBoxTemplate<Matrix44Affine,Vector3,AABBoxMemoryDumpPolicy>|AABBoxTemplate]] || 0x40x20 ||
|}
 
Line 341 ⟶ 385:
|-
| TargetPtr || uint32_t || 0x4 ||
|}
 
= Enumerations =
=== Prop joint type ===
{| class="wikitable"
! Name !! Value !! Comments
|-
| ? || 0 || Not used
|-
| ? || 1 ||
|-
| ? || 2 ||
|-
| ? || 3 ||
|-
| E_TILT || ? || From a hardcoded string
|}
 
=== Prop extra type info ===
{| class="wikitable"
! Name !! Value !! Comments
|-
| ? || 0 ||
|-
| ? || 1 ||
|-
| ? || 2 ||
|}
 
=== Volume flags ===
{| class="wikitable"
! Name !! Value !! Comments
|-
| ? || 0x1 || IsEnabled?
|}