summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/System/physSystem.h
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2022-03-14 01:41:28 +0100
committerLéo Lam <leo@leolam.fr>2022-03-15 01:20:41 +0100
commit0c3df3ed97101d91df6bfa7522e268f35885e58b (patch)
treed2c5f6a4c2529bb7dbe7ca8ef0adc7d872ebf779 /src/KingSystem/Physics/System/physSystem.h
parent2a9e3318b5b7892bb2c398293138ee1553c96ec0 (diff)
ksys/phys: Add ShapeCast
Diffstat (limited to 'src/KingSystem/Physics/System/physSystem.h')
-rw-r--r--src/KingSystem/Physics/System/physSystem.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/KingSystem/Physics/System/physSystem.h b/src/KingSystem/Physics/System/physSystem.h
index 68fd7bac..8c61d82d 100644
--- a/src/KingSystem/Physics/System/physSystem.h
+++ b/src/KingSystem/Physics/System/physSystem.h
@@ -7,6 +7,8 @@
#include "KingSystem/Physics/physDefines.h"
#include "KingSystem/Utils/Types.h"
+class hkpWorld;
+
namespace ksys::phys {
class CollisionInfo;
@@ -27,10 +29,8 @@ enum class IsIndoorStage {
Yes,
};
-enum class LowPriority : bool {
- Yes = true,
- No = false,
-};
+enum class LowPriority : bool { Yes = true, No = false };
+enum class OnlyLockIfNeeded : bool { Yes = true, No = false };
class System {
SEAD_SINGLETON_DISPOSER(System)
@@ -85,8 +85,11 @@ public:
void removeSystemGroupHandler(SystemGroupHandler* handler);
- void lockWorld(ContactLayerType type, void* a = nullptr, int b = 0, bool c = false);
- void unlockWorld(ContactLayerType type, void* a = nullptr, int b = 0, bool c = false);
+ hkpWorld* getHavokWorld(ContactLayerType type) const;
+ void lockWorld(ContactLayerType type, const char* description = nullptr, int b = 0,
+ OnlyLockIfNeeded only_lock_if_needed = OnlyLockIfNeeded::No);
+ void unlockWorld(ContactLayerType type, const char* description = nullptr, int b = 0,
+ OnlyLockIfNeeded only_lock_if_needed = OnlyLockIfNeeded::No);
// TODO: rename
// 0x0000007101216c60
@@ -94,6 +97,11 @@ public:
// 0x0000007101216c74
bool getEntityContactListenerField90() const;
+ // 0x0000007101216800
+ void setEntityContactListenerField91(bool value);
+ // 0x0000007101216814
+ bool getEntityContactListenerField91() const;
+
// 0x0000007101216cec
sead::Heap* getPhysicsTempHeap(LowPriority low_priority) const;