ksys/phys: Add RigidBody::setCollisionInfo

This commit is contained in:
Léo Lam
2022-03-01 19:48:35 +01:00
parent 6077a63ea6
commit 35cc8dd9ee
6 changed files with 25 additions and 9 deletions
@@ -36,6 +36,7 @@ public:
explicit CollisionInfo(const sead::SafeString& name);
~CollisionInfo() override;
bool isLinked() const { return mListNode.isLinked(); }
static constexpr size_t getListNodeOffset() { return offsetof(CollisionInfo, mListNode); }
private:
@@ -98,10 +98,10 @@ void ContactListener::handleCollisionRemoved(const hkpCollisionEvent& event, Rig
const auto layer_a = body_a->getContactLayer();
const auto layer_b = body_b->getContactLayer();
if (auto* unk = body_a->get90())
if (auto* unk = body_a->getCollisionInfo())
mMgr->x_19(unk, body_a, body_b);
if (auto* unk = body_b->get90())
if (auto* unk = body_b->getCollisionInfo())
mMgr->x_19(unk, body_b, body_a);
const auto i = int(layer_a - mLayerBase);
@@ -53,6 +53,9 @@ public:
void freeContactPointInfoEx(ContactPointInfoEx* info) const;
void registerContactPointInfo(ContactPointInfo* info) const;
// 0x000000710121696c
void registerCollisionInfo(CollisionInfo* info) const;
// 0x0000007101216974
void registerContactPointLayerPair(ContactPointInfoEx* info, ContactLayer layer1,
ContactLayer layer2, bool enabled);