From b4bbaf141f871352fe4eac1eb1ef9c7522ca8154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Lam?= Date: Fri, 7 Jan 2022 01:30:35 +0100 Subject: ksys/phys: Add MemSystem::initSystemData --- src/KingSystem/Physics/System/physMemSystem.cpp | 42 +++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'src/KingSystem/Physics/System/physMemSystem.cpp') diff --git a/src/KingSystem/Physics/System/physMemSystem.cpp b/src/KingSystem/Physics/System/physMemSystem.cpp index 834d6e2e..9bf4af62 100644 --- a/src/KingSystem/Physics/System/physMemSystem.cpp +++ b/src/KingSystem/Physics/System/physMemSystem.cpp @@ -1,11 +1,53 @@ #include "KingSystem/Physics/System/physMemSystem.h" +#include "KingSystem/Physics/Cloth/physClothResource.h" +#include "KingSystem/Physics/Ragdoll/physRagdollControllerKeyList.h" +#include "KingSystem/Physics/Ragdoll/physRagdollResource.h" +#include "KingSystem/Physics/RigidBody/TeraMesh/physTeraMeshRigidBodyResource.h" +#include "KingSystem/Physics/RigidBody/physRigidBodyResource.h" +#include "KingSystem/Physics/StaticCompound/physStaticCompound.h" +#include "KingSystem/Physics/SupportBone/physSupportBoneResource.h" #include "KingSystem/Physics/System/physContactMgr.h" +#include "KingSystem/Physics/System/physEntityGroupFilter.h" +#include "KingSystem/Physics/System/physMaterialTable.h" #include "KingSystem/Physics/System/physRigidContactPoints.h" +#include "KingSystem/Physics/System/physSensorGroupFilter.h" +#include "KingSystem/Physics/System/physSystemData.h" +#include "KingSystem/Resource/resEntryFactory.h" +#include "KingSystem/Resource/resSystem.h" namespace ksys::phys { SEAD_SINGLETON_DISPOSER_IMPL(MemSystem) +void MemSystem::initSystemData(sead::Heap* heap) { + res::registerEntryFactory(new (heap) res::EntryFactory(1.0, 0x400), "hkrb"); + res::registerEntryFactory(new (heap) res::EntryFactory(1.0, 0x400), "hkrg"); + res::registerEntryFactory(new (heap) res::EntryFactory(1.0, 0x100000), + "bphyssb"); + res::registerEntryFactory(new (heap) res::EntryFactory(2.0, 0x2800), "hkcl"); + res::registerEntryFactory(new (heap) res::EntryFactory(1.3, 0x40000), "hksc"); + res::registerEntryFactory(new (heap) res::EntryFactory(1.0, 0x800), + "hktmrb"); + res::registerEntryFactory(new (heap) res::EntryFactory(1.0, 0x4000), + "brgcon"); + + mEntityGroupFilter = EntityGroupFilter::make(ContactLayer::EntityObject, + ContactLayer::EntityMeshVisualizer, heap); + mSensorGroupFilter = SensorGroupFilter::make(ContactLayer::SensorCustomReceiver, heap); + mGroupFilters.pushBack(mEntityGroupFilter); + mGroupFilters.pushBack(mSensorGroupFilter); + + mContactMgr = new (heap) ContactMgr; + if (mContactMgr) + mContactMgr->init(heap); + + mMaterialTable = new (heap) MaterialTable; + + mSystemData = new (heap) SystemData; + mSystemData->load(mPhysicsSystemHeap, mEntityGroupFilter, mSensorGroupFilter, mMaterialTable, + mContactMgr); +} + RigidContactPoints* MemSystem::allocContactPoints(sead::Heap* heap, int num, const sead::SafeString& name, int a, int b, int c) const { -- cgit v1.2.3