summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/System/physMemSystem.h
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-12-27 21:56:20 +0100
committerLéo Lam <leo@leolam.fr>2021-12-29 02:19:32 +0100
commitb513fbbf03dddaaf9084dd8358a656380f73c3d2 (patch)
tree08e9ce961f104a552dbe782ebd32ee606e430565 /src/KingSystem/Physics/System/physMemSystem.h
parente187c1ecfd7eeae05b2f7e9bf8f3719850e1a845 (diff)
ksys/phys: Start adding RigidContactPoints
Super messy stuff. I have no idea what it's used for
Diffstat (limited to 'src/KingSystem/Physics/System/physMemSystem.h')
-rw-r--r--src/KingSystem/Physics/System/physMemSystem.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/KingSystem/Physics/System/physMemSystem.h b/src/KingSystem/Physics/System/physMemSystem.h
index a5829227..92eec883 100644
--- a/src/KingSystem/Physics/System/physMemSystem.h
+++ b/src/KingSystem/Physics/System/physMemSystem.h
@@ -10,6 +10,8 @@ namespace ksys::phys {
class ContactMgr;
class GroupFilter;
class RigidBody;
+class RigidContactPoints;
+class RigidContactPointsEx;
class SystemGroupHandler;
// FIXME: obviously incomplete. Also this should be moved to its own header
@@ -19,15 +21,25 @@ struct RigidBodyRequestMgr {
class MemSystem {
SEAD_SINGLETON_DISPOSER(MemSystem)
+ MemSystem();
+ virtual ~MemSystem();
+
public:
GroupFilter* getGroupFilter(ContactLayerType type) const;
ContactMgr* getContactMgr() const { return mContactMgr; }
RigidBodyRequestMgr* getRigidBodyRequestMgr() const { return mRigidBodyRequestMgr; }
+ RigidContactPoints* allocContactPoints(sead::Heap* heap, int num, const sead::SafeString& name,
+ int a, int b, int c) const;
+ void freeContactPoints(RigidContactPoints* points) const;
+ void registerContactPoints(RigidContactPoints* points) const;
+ void registerContactPointLayerPair(RigidContactPointsEx* points, ContactLayer layer1,
+ ContactLayer layer2, bool enabled);
+
void removeSystemGroupHandler(SystemGroupHandler* handler);
private:
- u8 _20[0x148 - 0x20];
+ u8 _28[0x148 - 0x28];
ContactMgr* mContactMgr;
void* _150;
void* _158;