summaryrefslogtreecommitdiff
path: root/src/KingSystem/System/StageInfo.h
blob: cdac78c058b0f48d52cbe149c600137a43e9df5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#pragma once

#include <math/seadVector.h>
#include <prim/seadSafeString.h>
#include <thread/seadAtomic.h>

namespace ksys {

enum class StageType {
    Invalid = 0,
    OpenWorld = 1,
    Indoor = 2,
    OpenWorldTest = 3,
    MainFieldDungeon = 4,
    Viewer = 5,
};

class StageInfo {
public:
    static const sead::SafeString& getCurrentMapName();
    static const sead::SafeString& getCurrentMapType();

    static void setCurrentMap(const sead::SafeString& type, const sead::SafeString& name);
    static void setCurrentMapNameForFieldPos(const sead::Vector3f& pos);

    static void (*sChangeScene)(const sead::SafeString& map_name, const sead::SafeString& pos_name,
                                int x, bool triggered_by_stage_select);
    static bool sIsNotDebugStageAndNotDungeon;
    static bool sIsMainFieldDungeon;
    static bool sIsDungeon;
    static bool sIsCDungeon;
    static bool sIsMainFieldDungeon2;
    static bool sIsActorViewer;
    static bool sIsStageDebug;
    static bool sIsTestDungeon;
    static bool sIsDebugOrDevMap;
    static bool sIsRemainsElectric;
    static bool sIsRemainsFire;
    static bool sIsRemainsWater;
    static bool sIsRemainsWind;
    static bool sIsFinalTrial;
    static bool sIsAocField;
    static bool sIsMainField;

private:
    static sead::FixedSafeString<32> sCurrentMapType;
    static sead::FixedSafeString<32> sCurrentMapName;
};

}  // namespace ksys