diff options
| author | Léo Lam <leo@leolam.fr> | 2026-09-28 03:39:31 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2026-10-06 03:19:39 +0200 |
| commit | 9d6a597e91fac5ecdca3f9903f90c7bdf5accd96 (patch) | |
| tree | 0019b105b53ec817ebf677e484e475a0bc2cedf2 /src/KingSystem | |
| parent | 98f0c80f1d0b9d3ca19f0b38efcb597ee65d9dc0 (diff) | |
Actor: ActorFactory is game, CurrentResNameMgr is ksys
ActorFactory's static initialiser fills its table with uking actor
ctors. CurrentResNameMgr (0x71010b770c) links in KingSystem/System right
before GameConfig.
(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
Diffstat (limited to 'src/KingSystem')
| -rw-r--r-- | src/KingSystem/ActorSystem/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/KingSystem/ActorSystem/actActorCreator.h | 13 | ||||
| -rw-r--r-- | src/KingSystem/ActorSystem/actActorFactory.cpp | 21 | ||||
| -rw-r--r-- | src/KingSystem/ActorSystem/actActorFactory.h | 29 | ||||
| -rw-r--r-- | src/KingSystem/Resource/Actor/resResourceAIProgram.cpp | 2 | ||||
| -rw-r--r-- | src/KingSystem/Resource/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/KingSystem/System/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/KingSystem/System/CurrentResNameMgr.cpp (renamed from src/KingSystem/Resource/resCurrentResNameMgr.cpp) | 6 | ||||
| -rw-r--r-- | src/KingSystem/System/CurrentResNameMgr.h (renamed from src/KingSystem/Resource/resCurrentResNameMgr.h) | 4 |
9 files changed, 18 insertions, 63 deletions
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<Actor>& getActorList() { return mActorList; } @@ -81,7 +88,7 @@ private: this, &ActorCreator::doCreateProc}; TaskRemoveCallbackT<ActorCreator> mTaskRemovedDelegate{this, &ActorCreator::onTaskRemoved}; sead::CriticalSection mActorListCS; - ActorFactory* mActorFactory; + IActorFactory* mActorFactory; }; KSYS_CHECK_SIZE_NX150(ActorCreator, 0xf0); diff --git a/src/KingSystem/ActorSystem/actActorFactory.cpp b/src/KingSystem/ActorSystem/actActorFactory.cpp deleted file mode 100644 index 6a835f3f..00000000 --- a/src/KingSystem/ActorSystem/actActorFactory.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "KingSystem/ActorSystem/actActorFactory.h" -#include "KingSystem/ActorSystem/actActorCreator.h" - -namespace ksys::act { - -SEAD_SINGLETON_DISPOSER_IMPL(ActorFactoryHolder) - -void ActorFactory::dummy() {} - -void ActorFactory::dummy2() {} - -ActorFactoryHolder::~ActorFactoryHolder() { - ActorCreator::deleteInstance(); -} - -void ActorFactoryHolder::init(sead::Heap* heap) { - ActorCreator::createInstance(heap); - ActorCreator::instance()->setActorFactory(&mFactory); -} - -} // namespace ksys::act 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 <heap/seadDisposer.h> - -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 <utility/aglParameter.h> #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 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 index b46487b7..dcdb261e 100644 --- a/src/KingSystem/Resource/resCurrentResNameMgr.h +++ b/src/KingSystem/System/CurrentResNameMgr.h @@ -4,7 +4,7 @@ #include <prim/seadSafeString.h> #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 |
