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 || || ||
|}
Line 103 ⟶ 114:
| 0x38 || 0x4 || float32_t || mfMass || ||
|-
| 0x3C || 0x4 || || ||
|-
| 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 || || ||
|}
Line 151 ⟶ 162:
| 0x2C || 0x1 || uint8_t || muNumberOfVolumes || ||
|-
| 0x2D || 0x3 || || ||
|}
Line 164 ⟶ 175:
| 0x20 || 0x4 || float32_t || mfMass || ||
|-
| 0x24 || 0x4 || || ||
|-
| 0x28 || 0x8 || [[#rw::collision::VolRef::Volume|Volume]]* || maCollisionVolumes || ||
Line 172 ⟶ 183:
| 0x34 || 0x1 || uint8_t || muNumberOfVolumes || ||
|-
| 0x35 || 0x3 || || ||
|}
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 || || ||
|-
| 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 ===
{| class="wikitable"
! Length !! Type !! Name !! Description !! Comments
Line 333 ⟶ 377:
! Name !! Type !! Length !! Comments
|-
| AABBox || [[#AABBoxTemplate<Matrix44Affine,Vector3,AABBoxMemoryDumpPolicy>|AABBoxTemplate]] ||
|}
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?
|}
|