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/Game | |
| 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/Game')
| -rw-r--r-- | src/Game/Actor/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/Game/Actor/actActorFactory.cpp | 21 | ||||
| -rw-r--r-- | src/Game/Actor/actActorFactory.h | 27 |
3 files changed, 50 insertions, 0 deletions
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/Game/Actor/actActorFactory.cpp b/src/Game/Actor/actActorFactory.cpp new file mode 100644 index 00000000..16f2b916 --- /dev/null +++ b/src/Game/Actor/actActorFactory.cpp @@ -0,0 +1,21 @@ +#include "Game/Actor/actActorFactory.h" +#include "KingSystem/ActorSystem/actActorCreator.h" + +namespace uking::act { + +SEAD_SINGLETON_DISPOSER_IMPL(ActorFactoryHolder) + +void ActorFactory::dummy() {} + +void ActorFactory::dummy2() {} + +ActorFactoryHolder::~ActorFactoryHolder() { + ksys::act::ActorCreator::deleteInstance(); +} + +void ActorFactoryHolder::init(sead::Heap* heap) { + ksys::act::ActorCreator::createInstance(heap); + ksys::act::ActorCreator::instance()->setActorFactory(&mFactory); +} + +} // 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 <heap/seadDisposer.h> +#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 |
