| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include <heap/seadFrameHeap.h> |
| 4 | |
| 5 | #include "Library/Resource/Resource.h" |
| 6 | #include "Library/Thread/AsyncFunctorThread.h" |
| 7 | |
| 8 | #include "System/GameDataHolder.h" |
| 9 | |
| 10 | class WorldResourceLoader : public al::HioNode { |
| 11 | public: |
| 12 | WorldResourceLoader(GameDataHolder*); |
| 13 | virtual ~WorldResourceLoader(); |
| 14 | void loadResource(); |
| 15 | void cancelLoadWorldResource(); |
| 16 | void tryDestroyWorldResource(); |
| 17 | bool requestLoadWorldHomeStageResource(s32 worldIndex, s32 scenario); |
| 18 | bool isEndLoadWorldResource() const; |
| 19 | void requestLoadWorldResourceCommon(s32); |
| 20 | bool requestLoadWorldResource(s32); |
| 21 | void createResourcePlayer(); |
| 22 | void tryDestroyWorldResourceOnlyCap(); |
| 23 | f32 calcLoadPercent() const; |
| 24 | s32 getLoadWorldId() const; |
| 25 | al::Resource* tryLoadResource(const char*, const char*, const char*); |
| 26 | void loadWorldResource(s32, s32, bool, const char*); |
| 27 | f32 calcWorldResourceHeapSize() const; |
| 28 | |
| 29 | private: |
| 30 | al::AsyncFunctorThread* mWorldResourceLoader = nullptr; // WorldResourceLoader::loadResource |
| 31 | sead::Heap* mWorldResourceHeap = nullptr; |
| 32 | sead::FrameHeap* mCapWorldHeap = nullptr; |
| 33 | sead::FrameHeap* mWaterfallWorldHeap = nullptr; |
| 34 | s32 mLoadWorldId = -1; |
| 35 | s32 mScenarioNo = -1; |
| 36 | bool mIsScenarioRes = true; |
| 37 | bool mIsCancelled = false; |
| 38 | void* unkPtr4 = nullptr; |
| 39 | void* unkPtr5 = nullptr; |
| 40 | s32 unkInt3 = 0; |
| 41 | bool mIsLoadResTable = true; |
| 42 | s32 mCurLoadCount = 0; |
| 43 | s32 mMaxLoadCount = 1; |
| 44 | GameDataHolder* mDataHolder = nullptr; |
| 45 | bool mIsLoadedPlayerModel = false; |
| 46 | s32 unkInt6 = 0; |
| 47 | }; |
| 48 |