diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 7e77606b..9f745287 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -96967,7 +96967,7 @@ 0x0000007101305638,sub_7101305638,52,_ZN4sead10Delegate1RIN4ksys3act18BaseProcCreateTaskEPvbE6invokeES4_ 0x000000710130566c,sub_710130566C,92,_ZNK4sead10Delegate1RIN4ksys3act18BaseProcCreateTaskEPvbE5cloneEPNS_4HeapE 0x00000071013056c8,sub_71013056C8,64, -0x0000007101305708,BaseProcInitializer::ctor,40, +0x0000007101305708,BaseProcInitializer::ctor,40,_ZN4ksys3act19BaseProcInitializerC1Ev 0x0000007101305730,BaseProcInitializer::dtor,260, 0x0000007101305834,BaseProcInitializer::dtorDelete,36, 0x0000007101305858,BaseProcInitializer::init,960, diff --git a/src/KingSystem/ActorSystem/CMakeLists.txt b/src/KingSystem/ActorSystem/CMakeLists.txt index 3d9ec011..b75e8817 100644 --- a/src/KingSystem/ActorSystem/CMakeLists.txt +++ b/src/KingSystem/ActorSystem/CMakeLists.txt @@ -62,6 +62,8 @@ target_sources(uking PRIVATE actBaseProcHandle.h actBaseProcHeapMgr.cpp actBaseProcHeapMgr.h + actBaseProcInitializer.cpp + actBaseProcInitializer.h actBaseProcJob.cpp actBaseProcJob.h actBaseProcJobHandler.cpp diff --git a/src/KingSystem/ActorSystem/actBaseProcInitializer.cpp b/src/KingSystem/ActorSystem/actBaseProcInitializer.cpp new file mode 100644 index 00000000..ab6e2b6c --- /dev/null +++ b/src/KingSystem/ActorSystem/actBaseProcInitializer.cpp @@ -0,0 +1,7 @@ +#include "KingSystem/ActorSystem/actBaseProcInitializer.h" + +namespace ksys::act { + +BaseProcInitializer::BaseProcInitializer() = default; + +} // namespace ksys::act diff --git a/src/KingSystem/ActorSystem/actBaseProcInitializer.h b/src/KingSystem/ActorSystem/actBaseProcInitializer.h new file mode 100644 index 00000000..3510d513 --- /dev/null +++ b/src/KingSystem/ActorSystem/actBaseProcInitializer.h @@ -0,0 +1,39 @@ +#pragma once + +#include + +namespace sead { +class Heap; +} + +namespace ksys::util { +class TaskMgr; +class TaskQueue; +} // namespace ksys::util + +namespace ksys::act { + +class BaseProcInitializer { +public: + BaseProcInitializer(); + virtual ~BaseProcInitializer(); + + BaseProcInitializer(const BaseProcInitializer&) = delete; + auto operator=(const BaseProcInitializer&) = delete; + + u32 get8() const { return _8; } + void set8(u32 value) { _8 = value; } + + bool isActorGenerationEnabled() const { return mActorGenerationEnabled; } + void setActorGenerationEnabled(bool enabled) { mActorGenerationEnabled = enabled; } + +private: + u32 _8 = 0; + void* _10 = nullptr; + util::TaskMgr* mTaskMgr = nullptr; + util::TaskQueue* mTaskQueue = nullptr; + sead::Heap* mHeap = nullptr; + bool mActorGenerationEnabled = true; +}; + +} // namespace ksys::act