diff options
Diffstat (limited to 'src/Game/Actor')
| -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 |
