| 1 | #pragma once |
| 2 | |
| 3 | #include <container/seadPtrArray.h> |
| 4 | #include <container/seadStrTreeMap.h> |
| 5 | #include <math/seadVector.h> |
| 6 | #include <prim/seadSafeString.h> |
| 7 | |
| 8 | struct StagePosInfo {}; |
| 9 | |
| 10 | struct StageDBEntry { |
| 11 | sead::FixedSafeString<0x80> stageName; |
| 12 | sead::FixedSafeString<0x40> stageCategory; |
| 13 | s32 useScenario; |
| 14 | }; |
| 15 | |
| 16 | struct WorldListEntry { |
| 17 | const char* mainStageName; |
| 18 | const char* worldDevelopName; |
| 19 | s32 questInfoCount; |
| 20 | s32 clearMainScenario; |
| 21 | s32 endingScenario; |
| 22 | s32 moonRockScenario; |
| 23 | s32* mainQuestIndexes; |
| 24 | sead::PtrArray<StageDBEntry> stageNames; |
| 25 | }; |
| 26 | |
| 27 | class WorldList { |
| 28 | public: |
| 29 | WorldList(); |
| 30 | |
| 31 | s32 getWorldNum() const; |
| 32 | s32 getMainQuestMin(s32, s32) const; |
| 33 | const char* getMainStageName(s32) const; |
| 34 | s32 tryFindWorldIndexByMainStageName(const char*) const; |
| 35 | s32 tryFindWorldIndexByStageName(const char*) const; |
| 36 | s32 tryFindWorldIndexByDevelopName(const char*) const; |
| 37 | bool isEqualClearMainScenarioNo(s32, s32) const; |
| 38 | s32 getAfterEndingScenarioNo(s32) const; |
| 39 | bool isEqualAfterEndingScenarioNo(s32, s32) const; |
| 40 | s32 getMoonRockScenarioNo(s32) const; |
| 41 | bool isEqualMoonRockScenarioNo(s32, s32) const; |
| 42 | const char* getWorldDevelopName(s32) const; |
| 43 | s32 getWorldScenarioNum(s32) const; |
| 44 | s32 findUseScenarioNo(const char*) const; |
| 45 | bool checkNeedTreasureMessageStage(const char*) const; |
| 46 | bool checkIsMainStage(const char*) const; |
| 47 | bool tryFindTransOnMainStageByStageName(sead::Vector3f*, const char*, s32) const; |
| 48 | bool tryFindHintTransByScenarioNo(sead::Vector3f*, s32, s32) const; |
| 49 | |
| 50 | private: |
| 51 | sead::PtrArray<WorldListEntry> mWorldList; |
| 52 | sead::StrTreeMap<128, StagePosInfo*> mStagePosList; |
| 53 | sead::PtrArrayImpl field_30; |
| 54 | }; |
| 55 | |
| 56 | static_assert(sizeof(WorldList) == 0x40, "WorldList Size" ); |
| 57 | |