diff options
| author | Léo Lam <leo@leolam.fr> | 2020-11-12 16:03:03 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2020-11-14 21:06:08 +0100 |
| commit | ffe38d0076fd487bae46edd092171469ec08d439 (patch) | |
| tree | 16c4f06dc454e2c81d67133355184022397198d6 /src/KingSystem/ActorSystem/actActorParamMgr.h | |
| parent | d9356ffa90f2b6c819b00bfc7905763aea8c39bc (diff) | |
ksys/act: Implement more ActorParamMgr functions
Diffstat (limited to 'src/KingSystem/ActorSystem/actActorParamMgr.h')
| -rw-r--r-- | src/KingSystem/ActorSystem/actActorParamMgr.h | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/KingSystem/ActorSystem/actActorParamMgr.h b/src/KingSystem/ActorSystem/actActorParamMgr.h index accb3457..67e60427 100644 --- a/src/KingSystem/ActorSystem/actActorParamMgr.h +++ b/src/KingSystem/ActorSystem/actActorParamMgr.h @@ -6,6 +6,7 @@ #include <prim/seadSafeString.h> #include <prim/seadTypedBitFlag.h> #include <thread/seadCriticalSection.h> +#include "KingSystem/ActorSystem/actActorParam.h" #include "KingSystem/Resource/resHandle.h" #include "KingSystem/System/DebugMessage.h" #include "KingSystem/System/KingEditor.h" @@ -14,13 +15,13 @@ namespace ksys { namespace res { +class Archive; class GParamList; +class LoadRequest; } // namespace res namespace act { -class ActorParam; - // FIXME: incomplete class ActorParamMgr final : public sead::hostio::Node, public KingEditorComponent { SEAD_SINGLETON_DISPOSER(ActorParamMgr) @@ -35,10 +36,14 @@ public: sead::Heap* getDebugHeap() const { return mDebugHeap; } sead::Heap* getTmpActorParamMgrHeap() const { return mTmpActorParamMgrHeap; } + bool checkPath(const sead::SafeString& path) const; + void init(sead::Heap* heap, sead::Heap* debug_heap); + ActorParam* allocParam(const char* actor_name, bool* allocated_new); ActorParam* getParam(const char* actor_name, ActorParam** out_free_param) const; ActorParam* loadParam(const char* actor_name, res::Handle* handle, void* x, u32 load_req_c); + void unloadParam(ActorParam* param); res::GParamList* getDummyGParamList() const; @@ -50,9 +55,25 @@ private: _5 = _1 | _4, }; - void loadFiles(ActorParam* param, sead::Heap* heap, res::Handle* handle, void* x, + void loadFiles(ActorParam* param, sead::Heap* heap, res::Handle* pack_handle, void* x, u32 load_req_c); - bool loadActorPack(res::Handle* handle, const sead::SafeString& actor_name, u32 load_req_c); + bool requestLoadActorPack(res::Handle* handle, const sead::SafeString& actor_name, + u32 load_req_c); + bool prepareLoadFromActorPack(sead::BufferedSafeString* path, res::LoadRequest* req, void* x, + const sead::SafeString& dir_name, + const sead::SafeString& extension, + const sead::SafeString& file_name, res::Handle* pack_handle, + u32 load_req_c, const sead::SafeString& requester); + res::Archive* loadActorPack(res::Handle* handle, const sead::SafeString& actor_name, + u32 load_req_c); + + template <typename T> + T* loadFile(ActorParam* param, ActorParam::ResourceType type, const char* dir_name_c, + const char* extension_c, const char* name_c, res::Handle* pack_handle, void* x, + u32 load_req_c); + + void loadFilesStep2(ActorParam* param, sead::Heap* heap, res::Handle* pack_handle, void* x, + u32 load_req_c); static constexpr s32 NumParams = 0x400; |
