diff --git a/data/uking_functions.csv b/data/uking_functions.csv index f8bd60e8..759108c0 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -44846,15 +44846,15 @@ Address,Quality,Size,Name 0x00000071006cb0e4,U,000056,AI_F_AI_BowlPin 0x00000071006cb11c,U,000004,nullsub_5404 0x00000071006cb120,U,001872,sinitActors -0x00000071006cb870,O,000100,_ZN4ksys3act18ActorFactoryHolder18SingletonDisposer_D1Ev -0x00000071006cb8d4,O,000108,_ZN4ksys3act18ActorFactoryHolder18SingletonDisposer_D0Ev -0x00000071006cb940,O,000160,_ZN4ksys3act18ActorFactoryHolder14createInstanceEPN4sead4HeapE -0x00000071006cb9e0,O,000020,_ZN4ksys3act18ActorFactoryHolderD1Ev -0x00000071006cb9f4,O,000052,_ZN4ksys3act18ActorFactoryHolderD0Ev -0x00000071006cba28,O,000056,_ZN4ksys3act18ActorFactoryHolder4initEPN4sead4HeapE +0x00000071006cb870,O,000100,_ZN5uking3act18ActorFactoryHolder18SingletonDisposer_D1Ev +0x00000071006cb8d4,O,000108,_ZN5uking3act18ActorFactoryHolder18SingletonDisposer_D0Ev +0x00000071006cb940,O,000160,_ZN5uking3act18ActorFactoryHolder14createInstanceEPN4sead4HeapE +0x00000071006cb9e0,O,000020,_ZN5uking3act18ActorFactoryHolderD1Ev +0x00000071006cb9f4,O,000052,_ZN5uking3act18ActorFactoryHolderD0Ev +0x00000071006cba28,O,000056,_ZN5uking3act18ActorFactoryHolder4initEPN4sead4HeapE 0x00000071006cba60,U,000412,constructActor -0x00000071006cbbfc,O,000004,_ZN4ksys3act12ActorFactory5dummyEv -0x00000071006cbc00,O,000004,_ZN4ksys3act12ActorFactory6dummy2Ev +0x00000071006cbbfc,O,000004,_ZN5uking3act12ActorFactory5dummyEv +0x00000071006cbc00,O,000004,_ZN5uking3act12ActorFactory6dummy2Ev 0x00000071006cbc04,U,000016,AI::initBehaviors 0x00000071006cbc14,U,000056,AI_F_Behavior_SetEnableResetToInitialState 0x00000071006cbc4c,U,000056,AI_F_Behavior_SetWindForceScale @@ -89239,11 +89239,11 @@ Address,Quality,Size,Name 0x00000071010b7600,U,000056, 0x00000071010b7638,U,000092, 0x00000071010b7694,U,000120, -0x00000071010b770c,O,000056,_ZN4ksys3res17CurrentResNameMgr18SingletonDisposer_D1Ev -0x00000071010b7744,O,000092,_ZN4ksys3res17CurrentResNameMgr18SingletonDisposer_D0Ev -0x00000071010b77a0,O,000120,_ZN4ksys3res17CurrentResNameMgr14createInstanceEPN4sead4HeapE -0x00000071010b7818,O,000004,_ZN4ksys3res17CurrentResNameMgr4initEPN4sead4HeapE -0x00000071010b781c,O,000032,_ZNK4ksys3res17CurrentResNameMgr17getCurrentResNameEv +0x00000071010b770c,O,000056,_ZN4ksys17CurrentResNameMgr18SingletonDisposer_D1Ev +0x00000071010b7744,O,000092,_ZN4ksys17CurrentResNameMgr18SingletonDisposer_D0Ev +0x00000071010b77a0,O,000120,_ZN4ksys17CurrentResNameMgr14createInstanceEPN4sead4HeapE +0x00000071010b7818,O,000004,_ZN4ksys17CurrentResNameMgr4initEPN4sead4HeapE +0x00000071010b781c,O,000032,_ZNK4ksys17CurrentResNameMgr17getCurrentResNameEv 0x00000071010b783c,U,000004,j__ZN4sead16ExceptionHandler10initializeEv 0x00000071010b7840,U,000224, 0x00000071010b7920,U,000444,GameConfig::initProperties diff --git a/src/Game/Actor/CMakeLists.txt b/src/Game/Actor/CMakeLists.txt index 7a61adbc..a48223b9 100644 --- a/src/Game/Actor/CMakeLists.txt +++ b/src/Game/Actor/CMakeLists.txt @@ -16,6 +16,8 @@ target_sources(uking PRIVATE aiAiFactories.h aiQueryFactories.cpp aiQueryFactories.h + actActorFactory.cpp + actActorFactory.h actDragon.cpp actDragon.h actPlayerCreateMgr.cpp diff --git a/src/KingSystem/ActorSystem/actActorFactory.cpp b/src/Game/Actor/actActorFactory.cpp similarity index 50% rename from src/KingSystem/ActorSystem/actActorFactory.cpp rename to src/Game/Actor/actActorFactory.cpp index 6a835f3f..16f2b916 100644 --- a/src/KingSystem/ActorSystem/actActorFactory.cpp +++ b/src/Game/Actor/actActorFactory.cpp @@ -1,7 +1,7 @@ -#include "KingSystem/ActorSystem/actActorFactory.h" +#include "Game/Actor/actActorFactory.h" #include "KingSystem/ActorSystem/actActorCreator.h" -namespace ksys::act { +namespace uking::act { SEAD_SINGLETON_DISPOSER_IMPL(ActorFactoryHolder) @@ -10,12 +10,12 @@ void ActorFactory::dummy() {} void ActorFactory::dummy2() {} ActorFactoryHolder::~ActorFactoryHolder() { - ActorCreator::deleteInstance(); + ksys::act::ActorCreator::deleteInstance(); } void ActorFactoryHolder::init(sead::Heap* heap) { - ActorCreator::createInstance(heap); - ActorCreator::instance()->setActorFactory(&mFactory); + ksys::act::ActorCreator::createInstance(heap); + ksys::act::ActorCreator::instance()->setActorFactory(&mFactory); } -} // namespace ksys::act +} // namespace uking::act diff --git a/src/Game/Actor/actActorFactory.h b/src/Game/Actor/actActorFactory.h new file mode 100644 index 00000000..3514f114 --- /dev/null +++ b/src/Game/Actor/actActorFactory.h @@ -0,0 +1,27 @@ +#pragma once + +#include +#include "KingSystem/ActorSystem/actActorCreator.h" + +namespace uking::act { + +class ActorFactory : public ksys::act::IActorFactory { +public: + void dummy() override; + ksys::act::BaseProc* createActor(const ksys::act::ActorCreateArg& arg) override; + void dummy2() override; +}; + +class ActorFactoryHolder { + SEAD_SINGLETON_DISPOSER(ActorFactoryHolder) + ActorFactoryHolder() = default; + virtual ~ActorFactoryHolder(); + +public: + void init(sead::Heap* heap); + +private: + ActorFactory mFactory; +}; + +} // namespace uking::act diff --git a/src/KingSystem/ActorSystem/CMakeLists.txt b/src/KingSystem/ActorSystem/CMakeLists.txt index 258cde69..1a549493 100644 --- a/src/KingSystem/ActorSystem/CMakeLists.txt +++ b/src/KingSystem/ActorSystem/CMakeLists.txt @@ -31,8 +31,6 @@ target_sources(uking PRIVATE actActorCreator.h actActorEditorNode.cpp actActorEditorNode.h - actActorFactory.cpp - actActorFactory.h actActorHeapUtil.cpp actActorHeapUtil.h actActorLimiter.cpp diff --git a/src/KingSystem/ActorSystem/actActorCreator.h b/src/KingSystem/ActorSystem/actActorCreator.h index 7560230d..cc1d1657 100644 --- a/src/KingSystem/ActorSystem/actActorCreator.h +++ b/src/KingSystem/ActorSystem/actActorCreator.h @@ -17,11 +17,18 @@ class Object; namespace ksys::act { class Actor; -class ActorFactory; +struct ActorCreateArg; class BaseProc; struct BaseProcCreateArg; class BaseProcHandle; +class IActorFactory { +public: + virtual void dummy() = 0; + virtual BaseProc* createActor(const ActorCreateArg& arg) = 0; + virtual void dummy2() = 0; +}; + class ActorCreator { SEAD_SINGLETON_DISPOSER(ActorCreator) ActorCreator(); @@ -39,7 +46,7 @@ public: void enableDistanceUnloadChecks(); void eraseActor(Actor* actor); - void setActorFactory(ActorFactory* factory) { mActorFactory = factory; } + void setActorFactory(IActorFactory* factory) { mActorFactory = factory; } bool get5a() const { return _5a; } sead::OffsetList& getActorList() { return mActorList; } @@ -81,7 +88,7 @@ private: this, &ActorCreator::doCreateProc}; TaskRemoveCallbackT mTaskRemovedDelegate{this, &ActorCreator::onTaskRemoved}; sead::CriticalSection mActorListCS; - ActorFactory* mActorFactory; + IActorFactory* mActorFactory; }; KSYS_CHECK_SIZE_NX150(ActorCreator, 0xf0); diff --git a/src/KingSystem/ActorSystem/actActorFactory.h b/src/KingSystem/ActorSystem/actActorFactory.h deleted file mode 100644 index 6fed82f4..00000000 --- a/src/KingSystem/ActorSystem/actActorFactory.h +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once - -#include - -namespace ksys::act { - -struct ActorCreateArg; -class BaseProc; - -class ActorFactory { -public: - virtual void dummy(); - virtual BaseProc* createActor(const ActorCreateArg& arg); - virtual void dummy2(); -}; - -class ActorFactoryHolder { - SEAD_SINGLETON_DISPOSER(ActorFactoryHolder) - ActorFactoryHolder() = default; - virtual ~ActorFactoryHolder(); - -public: - void init(sead::Heap* heap); - -private: - ActorFactory mFactory; -}; - -} // namespace ksys::act diff --git a/src/KingSystem/Resource/Actor/resResourceAIProgram.cpp b/src/KingSystem/Resource/Actor/resResourceAIProgram.cpp index bbe70ba1..1e0454d0 100644 --- a/src/KingSystem/Resource/Actor/resResourceAIProgram.cpp +++ b/src/KingSystem/Resource/Actor/resResourceAIProgram.cpp @@ -3,7 +3,7 @@ #include #include "KingSystem/ActorSystem/actAiActionBase.h" #include "KingSystem/ActorSystem/actAiClassDef.h" -#include "KingSystem/Resource/resCurrentResNameMgr.h" +#include "KingSystem/System/CurrentResNameMgr.h" #include "KingSystem/Utils/HeapUtil.h" namespace ksys::res { diff --git a/src/KingSystem/Resource/CMakeLists.txt b/src/KingSystem/Resource/CMakeLists.txt index 67177e15..1a9e5b28 100644 --- a/src/KingSystem/Resource/CMakeLists.txt +++ b/src/KingSystem/Resource/CMakeLists.txt @@ -94,8 +94,6 @@ target_sources(uking PRIVATE resControlTask.h resCounter.cpp resCounter.h - resCurrentResNameMgr.cpp - resCurrentResNameMgr.h resEntryFactory.cpp resEntryFactory.h resGameResourceSystem.cpp diff --git a/src/KingSystem/System/CMakeLists.txt b/src/KingSystem/System/CMakeLists.txt index 835eb40f..a2eb28ba 100644 --- a/src/KingSystem/System/CMakeLists.txt +++ b/src/KingSystem/System/CMakeLists.txt @@ -13,6 +13,8 @@ target_sources(uking PRIVATE CameraEditor.cpp CameraEditor.h CoreInfo.h + CurrentResNameMgr.cpp + CurrentResNameMgr.h DebugFinder.cpp DebugFinder.h DebugMessage.h diff --git a/src/KingSystem/Resource/resCurrentResNameMgr.cpp b/src/KingSystem/System/CurrentResNameMgr.cpp similarity index 66% rename from src/KingSystem/Resource/resCurrentResNameMgr.cpp rename to src/KingSystem/System/CurrentResNameMgr.cpp index f949afb7..53e7e755 100644 --- a/src/KingSystem/Resource/resCurrentResNameMgr.cpp +++ b/src/KingSystem/System/CurrentResNameMgr.cpp @@ -1,6 +1,6 @@ -#include "KingSystem/Resource/resCurrentResNameMgr.h" +#include "KingSystem/System/CurrentResNameMgr.h" -namespace ksys::res { +namespace ksys { SEAD_SINGLETON_DISPOSER_IMPL(CurrentResNameMgr) @@ -10,4 +10,4 @@ sead::SafeString CurrentResNameMgr::getCurrentResName() const { return sead::SafeString::cEmptyString; } -} // namespace ksys::res +} // namespace ksys diff --git a/src/KingSystem/Resource/resCurrentResNameMgr.h b/src/KingSystem/System/CurrentResNameMgr.h similarity index 90% rename from src/KingSystem/Resource/resCurrentResNameMgr.h rename to src/KingSystem/System/CurrentResNameMgr.h index b46487b7..dcdb261e 100644 --- a/src/KingSystem/Resource/resCurrentResNameMgr.h +++ b/src/KingSystem/System/CurrentResNameMgr.h @@ -4,7 +4,7 @@ #include #include "KingSystem/Utils/Types.h" -namespace ksys::res { +namespace ksys { /// Current Resource Name Manager? /// Stubbed in release builds. @@ -18,4 +18,4 @@ public: }; KSYS_CHECK_SIZE_NX150(CurrentResNameMgr, 0x20); -} // namespace ksys::res +} // namespace ksys