ksys/phys: Add RigidBody collision filter info functions

Including a bunch of BitFields additions so we can get the desired
codegen without sacrificing readability or flexibility.
(The alternative would be building masks and masking manually.)

getCollisionFilterInfo was changed to return a u32 instead of
EntityCollisionFilterInfo because a collision filter info mask
can be either an EntityCollisionFilterInfo or a ReceiverMask.

(Also at some point we'll probably want to rename
EntityCollisionFilterInfo because that is also used for sensor
rigid bodies and not just for entities.)
This commit is contained in:
Léo Lam
2022-01-23 01:07:28 +01:00
parent 4531c033a3
commit b728917ef4
13 changed files with 411 additions and 49 deletions
@@ -18,6 +18,8 @@ public:
namespace ksys::phys {
class SystemGroupHandler;
class Ragdoll {};
class RagdollController {
@@ -117,7 +119,7 @@ private:
u8 _e0[0x148 - 0xe0];
sead::TList<RigidBody*> mList;
u8 _160[0x188 - 0x160];
void* _188[2];
SystemGroupHandler* _188[2];
};
KSYS_CHECK_SIZE_NX150(InstanceSet, 0x198);