Bphsh: Difference between revisions

Watertoon (talk | contribs)
Initial page for bphsh
 
Watertoon (talk | contribs)
Add very likely (but not fully confirmed through code yet) guess for second array with caveat. Evidence includes: layer hit mask size change between games, layer hit masks being included in PhiveConfig MaterialPreset, clamping of size to material array
Line 37: Line 37:
|}
|}


=== Unknown ===
=== Layer Hit Mask Array (Not Fully Confirmed) ===
0x10 sized per structure.
In previous titles from NSO PT the layer hit masks were 32-bits each, making each element 0x8 bytes. A bphsh may have different counts for materials and layer hit masks. Phive clamps the size of the material array and layer hit mask array to the smaller of the two. HknpMeshShape shapeTags are presumably used to map Havok's geometry to Phive's material and layer hit masks.
{| class="wikitable"
|+
!Offset
!Size
!Type
!Description
|-
|0x0
|0x8
|u64
|Layer Hit Mask.The PhiveConfig byaml stores an application's layers under LayerEntityCollection for entity rigid bodies and LayerSensorCollection for sensor rigid bodies. Each bit in the mask corresponds to a layer in the order they are defined by PhiveConfig.
|-
|0x8
|0x8
|u64
|Sub Layer Hit Mask.The PhiveConfig byaml stores an application's layers under SubLayerEntityCollection for entity rigid bodies and SubLayerSensorCollection for sensor rigid bodies. Each bit in the mask corresponds to a layer in the order they are defined by PhiveConfig.
|}


== Structures (Havok Physics) ==
== Structures (Havok Physics) ==
Line 122: Line 139:
|}
|}
{| class="wikitable"
{| class="wikitable"
|+hkReferencedObject
|+hkReferencedObject : hkBaseObject
!Offset
!Offset
!Size
!Size