summaryrefslogtreecommitdiff
path: root/src/KingSystem/ActorSystem/actActorCreator.h
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-06-05 17:09:06 +0200
committerLéo Lam <leo@leolam.fr>2020-08-18 22:50:25 +0200
commit2de366be0fa75e571c605e017b5604bccbdb75bf (patch)
treeb8044fc96bba792b1875067032da2fd4498a44a3 /src/KingSystem/ActorSystem/actActorCreator.h
Initial commit
Diffstat (limited to 'src/KingSystem/ActorSystem/actActorCreator.h')
-rw-r--r--src/KingSystem/ActorSystem/actActorCreator.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/KingSystem/ActorSystem/actActorCreator.h b/src/KingSystem/ActorSystem/actActorCreator.h
new file mode 100644
index 00000000..65a3494b
--- /dev/null
+++ b/src/KingSystem/ActorSystem/actActorCreator.h
@@ -0,0 +1,38 @@
+#pragma once
+
+#include <container/seadOffsetList.h>
+#include <heap/seadDisposer.h>
+#include <prim/seadDelegate.h>
+#include <thread/seadCriticalSection.h>
+
+namespace ksys::act {
+
+class Actor;
+struct ActorCreateArg;
+class ActorFactory;
+
+class ActorCreator {
+ SEAD_SINGLETON_DISPOSER(ActorCreator)
+ ActorCreator();
+ virtual ~ActorCreator();
+
+public:
+ void setActorFactory(ActorFactory* factory) { mActorFactory = factory; }
+
+private:
+ sead::Heap* forBaseProcDualHeap;
+ sead::Heap* placementMgrHeap;
+ sead::OffsetList<Actor> mActorList;
+ void* _50;
+ bool mEnableDistanceChecks;
+ bool _59;
+ bool _5a;
+ void* _60;
+ sead::Delegate1<ActorCreator, ActorCreateArg&> mCreateActorDelegate;
+ // FIXME: argument type
+ sead::Delegate1<ActorCreator, void*> mCleanUpDelegate;
+ sead::CriticalSection mActorListCS;
+ ActorFactory* mActorFactory;
+};
+
+} // namespace ksys::act