diff --git a/src/KingSystem/Resource/CMakeLists.txt b/src/KingSystem/Resource/CMakeLists.txt index 6a55b6f7..e2e23994 100644 --- a/src/KingSystem/Resource/CMakeLists.txt +++ b/src/KingSystem/Resource/CMakeLists.txt @@ -105,6 +105,8 @@ target_sources(uking PRIVATE resLoadRequest.h resMemoryTask.cpp resMemoryTask.h + resModelResourceDivide.cpp + resModelResourceDivide.h resOffsetReadFileDevice.cpp resOffsetReadFileDevice.h resResourceMgrTask.cpp diff --git a/src/KingSystem/Resource/resModelResourceDivide.cpp b/src/KingSystem/Resource/resModelResourceDivide.cpp new file mode 100644 index 00000000..772fac7f --- /dev/null +++ b/src/KingSystem/Resource/resModelResourceDivide.cpp @@ -0,0 +1,7 @@ +#include "KingSystem/Resource/resModelResourceDivide.h" + +namespace ksys::res { + +SEAD_SINGLETON_DISPOSER_IMPL(ModelResourceDivide) + +} // namespace ksys::res diff --git a/src/KingSystem/Resource/resModelResourceDivide.h b/src/KingSystem/Resource/resModelResourceDivide.h new file mode 100644 index 00000000..1e7b9576 --- /dev/null +++ b/src/KingSystem/Resource/resModelResourceDivide.h @@ -0,0 +1,30 @@ +#pragma once + +#include +#include +#include "KingSystem/Resource/resHandle.h" + +namespace al { +class ByamlIter; +} + +namespace ksys::res { + +class ModelResourceDivide { + SEAD_SINGLETON_DISPOSER(ModelResourceDivide) + ModelResourceDivide() = default; + virtual ~ModelResourceDivide(); + +public: + void init(sead::Heap* heap); + + const char* getModelResource(const sead::SafeString& model_name, + const sead::SafeString& fmdb_name) const; + +private: + al::ByamlIter* mIter{}; + Handle mHandle; +}; +KSYS_CHECK_SIZE_NX150(ModelResourceDivide, 0x80); + +} // namespace ksys::res