ksys/phys: Start adding ContactMgr

Also renames ContactInfoTable to ContactMgr because the contact info
table is a separate data structure that's managed by ContactMgr;
the manager itself handles more than just the table data
This commit is contained in:
Léo Lam
2021-12-26 14:33:41 +01:00
parent c716c3eec8
commit 536a00138e
14 changed files with 253 additions and 55 deletions
+20 -5
View File
@@ -2,23 +2,38 @@
#include <basis/seadTypes.h>
#include <heap/seadDisposer.h>
#include "KingSystem/Physics/System/physDefines.h"
#include "KingSystem/Utils/Types.h"
namespace ksys::phys {
class ContactMgr;
class GroupFilter;
class RigidBody;
class SystemGroupHandler;
// FIXME: obviously incomplete. Also this should be moved to its own header
struct RigidBodyRequestMgr {
void sub_7100FA6C8C(bool, RigidBody*);
};
class MemSystem {
SEAD_SINGLETON_DISPOSER(MemSystem)
public:
struct Struct160 {
void sub_7100FA6C8C(bool, RigidBody*);
};
GroupFilter* getGroupFilter(ContactLayerType type) const;
ContactMgr* getContactMgr() const { return mContactMgr; }
RigidBodyRequestMgr* getRigidBodyRequestMgr() const { return mRigidBodyRequestMgr; }
void removeSystemGroupHandler(SystemGroupHandler* handler);
u8 _20[0x140];
Struct160* _160;
private:
u8 _20[0x148 - 0x20];
ContactMgr* mContactMgr;
void* _150;
void* _158;
RigidBodyRequestMgr* mRigidBodyRequestMgr;
u8 _168[0x480 - 0x168];
};
KSYS_CHECK_SIZE_NX150(MemSystem, 0x480);
} // namespace ksys::phys