summaryrefslogtreecommitdiff
path: root/src/KingSystem/Physics/System/physSystem.cpp
diff options
context:
space:
mode:
authorRobbyV2 <robby@robby.blue>2026-07-29 18:38:52 -0400
committerRobbyV2 <robby@robby.blue>2026-07-30 09:07:17 -0400
commitc6c8beaf58523d2bc045e4753ac6ad8736d317f3 (patch)
tree875f79ee11a9df633c9fb6cc78ee177e33d69c7a /src/KingSystem/Physics/System/physSystem.cpp
parentcd3e7a9fbd5f76e23b4f4b837ee122659c60a4b3 (diff)
phys: match System heap accessors
Diffstat (limited to 'src/KingSystem/Physics/System/physSystem.cpp')
-rw-r--r--src/KingSystem/Physics/System/physSystem.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/KingSystem/Physics/System/physSystem.cpp b/src/KingSystem/Physics/System/physSystem.cpp
index e9a1ffb5..b320a04e 100644
--- a/src/KingSystem/Physics/System/physSystem.cpp
+++ b/src/KingSystem/Physics/System/physSystem.cpp
@@ -1,4 +1,6 @@
#include "KingSystem/Physics/System/physSystem.h"
+#include <heap/seadHeap.h>
+#include <thread/seadThread.h>
#include "KingSystem/Physics/Cloth/physClothResource.h"
#include "KingSystem/Physics/Ragdoll/physRagdollControllerKeyList.h"
#include "KingSystem/Physics/Ragdoll/physRagdollResource.h"
@@ -14,6 +16,7 @@
#include "KingSystem/Physics/System/physRayCastRequestMgr.h"
#include "KingSystem/Physics/System/physSensorGroupFilter.h"
#include "KingSystem/Physics/System/physSystemData.h"
+#include "KingSystem/Physics/physHavokMemoryAllocator.h"
#include "KingSystem/Resource/resEntryFactory.h"
#include "KingSystem/Resource/resSystem.h"
@@ -110,4 +113,22 @@ RagdollControllerKeyList* System::getRagdollCtrlKeyList() const {
return mSystemData->getRagdollCtrlKeyList();
}
+bool System::isHavokMainHeapOom() const {
+ return static_cast<f32>(mHavokAllocator->getHeapFreeSize()) /
+ static_cast<f32>(mHavokAllocator->getHeapSize()) <
+ 0.05f;
+}
+
+sead::Heap* System::getPhysicsTempHeap(LowPriority low_priority) const {
+ if (low_priority != LowPriority::No ||
+ sead::ThreadMgr::instance()->getCurrentThread()->getPriority() >
+ sead::Thread::cDefaultPriority)
+ return mPhysicsTempLowHeap;
+
+ if (mPhysicsTempDefaultHeap->getMaxAllocatableSize(8) <= 0x2800)
+ mPhysicsTempDefaultHeap->dump();
+
+ return mPhysicsTempDefaultHeap;
+}
+
} // namespace ksys::phys