summaryrefslogtreecommitdiff
path: root/src/Game/Actor
diff options
context:
space:
mode:
Diffstat (limited to 'src/Game/Actor')
-rw-r--r--src/Game/Actor/CMakeLists.txt2
-rw-r--r--src/Game/Actor/actActorFactory.cpp21
-rw-r--r--src/Game/Actor/actActorFactory.h27
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