mirror of
https://github.com/zeldaret/botw
synced 2026-08-22 06:28:58 -04:00
Merge pull request #185 from RobbyV2/phys-system-heap-accessors
Match phys::System heap accessors
This commit is contained in:
@@ -94037,13 +94037,13 @@ Address,Quality,Size,Name
|
||||
0x0000007101216ac8,O,000032,_ZNK4ksys4phys6System14getGroupFilterENS0_16ContactLayerTypeE
|
||||
0x0000007101216ae8,O,000012,_ZN4ksys4phys6System19allocRayCastRequestEPNS0_18SystemGroupHandlerENS0_9GroundHitE
|
||||
0x0000007101216af4,U,000276,
|
||||
0x0000007101216c08,U,000080,PhysicsMemSys::isHavokMainHeapOom
|
||||
0x0000007101216c08,O,000080,_ZNK4ksys4phys6System18isHavokMainHeapOomEv
|
||||
0x0000007101216c58,U,000008,PhysicsMemSys::setRigidBodyDividedMeshShapeMgr
|
||||
0x0000007101216c60,U,000020,phys::System::setEntityContactListenerField90
|
||||
0x0000007101216c74,U,000016,_ZNK4ksys4phys6System31getEntityContactListenerField90Ev
|
||||
0x0000007101216c84,O,000032,_ZNK4ksys4phys6System21getRagdollCtrlKeyListEv
|
||||
0x0000007101216ca4,U,000072,_ZNK4ksys4phys6System17isActorSystemIdleEv
|
||||
0x0000007101216cec,U,000148,_ZNK4ksys4phys6System18getPhysicsTempHeapENS0_11LowPriorityE
|
||||
0x0000007101216cec,O,000148,_ZNK4ksys4phys6System18getPhysicsTempHeapENS0_11LowPriorityE
|
||||
0x0000007101216d80,U,000112,
|
||||
0x0000007101216df0,U,000152,PhysicsMemSys::__auto9
|
||||
0x0000007101216e88,U,000076,
|
||||
|
||||
|
Can't render this file because it is too large.
|
@@ -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"
|
||||
@@ -16,6 +18,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"
|
||||
|
||||
@@ -133,4 +136,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
|
||||
|
||||
@@ -18,6 +18,7 @@ class ContactListener;
|
||||
class ContactMgr;
|
||||
class ContactPointInfo;
|
||||
class GroupFilter;
|
||||
class HavokMemoryAllocator;
|
||||
class LayerContactPointInfo;
|
||||
class MaterialTable;
|
||||
class RayCastForRequest;
|
||||
@@ -133,7 +134,8 @@ public:
|
||||
// 0x000000710121684c
|
||||
void decrementWorldUnkCounter(ContactLayerType layer_type);
|
||||
|
||||
// 0x0000007101216cec
|
||||
bool isHavokMainHeapOom() const;
|
||||
|
||||
sead::Heap* getPhysicsTempHeap(LowPriority low_priority) const;
|
||||
|
||||
private:
|
||||
@@ -145,7 +147,8 @@ private:
|
||||
float _6c = 1.0;
|
||||
float _70 = 1.0 / 30.0;
|
||||
float mTimeFactor{};
|
||||
u8 _78[0xa8 - 0x78];
|
||||
HavokMemoryAllocator* mHavokAllocator{};
|
||||
u8 _80[0xa8 - 0x80];
|
||||
sead::CriticalSection mCS;
|
||||
void* _e8{};
|
||||
void* _f0{};
|
||||
|
||||
Reference in New Issue
Block a user