1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace al {
6class StageResourceList;
7
8class StageResourceKeeper {
9public:
10 StageResourceKeeper();
11
12 void initAndLoadResource(const char* stageName, s32 scenarioNo);
13
14 enum class ResourceType : s32 { Map, Stage, Sound };
15
16 StageResourceList* getStageResourceList(s32 resourceType) const {
17 return mResourceList[resourceType];
18 }
19
20 StageResourceList* getMapStageInfo() const { return mResourceList[(s32)ResourceType::Map]; }
21
22 StageResourceList* getDesignStageInfo() const {
23 return mResourceList[(s32)ResourceType::Stage];
24 }
25
26 StageResourceList* getSoundStageInfo() const { return mResourceList[(s32)ResourceType::Sound]; }
27
28private:
29 StageResourceList** mResourceList = nullptr;
30 const char* mStageName = nullptr;
31 s32 mScenarioNo = -1;
32};
33
34} // namespace al
35