about summary refs log tree commit diff stats
path: root/src/game_data.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game_data.h')
-rw-r--r--src/game_data.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/game_data.h b/src/game_data.h index aa5ac19..09824d7 100644 --- a/src/game_data.h +++ b/src/game_data.h
@@ -23,6 +23,21 @@ constexpr int kLOCATION_NORMAL = 1;
23constexpr int kLOCATION_REDUCED = 2; 23constexpr int kLOCATION_REDUCED = 2;
24constexpr int kLOCATION_INSANITY = 4; 24constexpr int kLOCATION_INSANITY = 4;
25 25
26enum class EntranceType {
27 kNormal,
28 kPainting,
29 kSunwarp,
30 kWarp,
31 kPilgrimage,
32 kCrossroadsRoofAccess,
33};
34
35enum class DoorType {
36 kNormal,
37 kSunwarp,
38 kSunPainting,
39};
40
26struct Panel { 41struct Panel {
27 int id; 42 int id;
28 int room; 43 int room;
@@ -62,6 +77,7 @@ struct Door {
62 int ap_item_id = -1; 77 int ap_item_id = -1;
63 int group_ap_item_id = -1; 78 int group_ap_item_id = -1;
64 int ap_location_id = -1; 79 int ap_location_id = -1;
80 DoorType type = DoorType::kNormal;
65}; 81};
66 82
67struct PanelDoor { 83struct PanelDoor {
@@ -73,7 +89,7 @@ struct PanelDoor {
73struct Exit { 89struct Exit {
74 int destination_room; 90 int destination_room;
75 std::optional<int> door; 91 std::optional<int> door;
76 bool painting = false; 92 EntranceType type = EntranceType::kNormal;
77}; 93};
78 94
79struct PaintingExit { 95struct PaintingExit {
@@ -85,6 +101,7 @@ struct Room {
85 std::string name; 101 std::string name;
86 std::vector<Exit> exits; 102 std::vector<Exit> exits;
87 std::vector<PaintingExit> paintings; 103 std::vector<PaintingExit> paintings;
104 std::vector<int> sunwarps;
88 std::vector<int> panels; 105 std::vector<int> panels;
89}; 106};
90 107
@@ -114,10 +131,13 @@ int GD_GetRoomByName(const std::string& name);
114const Room& GD_GetRoom(int room_id); 131const Room& GD_GetRoom(int room_id);
115const std::vector<Door>& GD_GetDoors(); 132const std::vector<Door>& GD_GetDoors();
116const Door& GD_GetDoor(int door_id); 133const Door& GD_GetDoor(int door_id);
134int GD_GetDoorByName(const std::string& name);
117const Panel& GD_GetPanel(int panel_id); 135const Panel& GD_GetPanel(int panel_id);
118const PanelDoor& GD_GetPanelDoor(int panel_door_id); 136const PanelDoor& GD_GetPanelDoor(int panel_door_id);
119int GD_GetRoomForPainting(const std::string& painting_id); 137int GD_GetRoomForPainting(const std::string& painting_id);
120const std::vector<int>& GD_GetAchievementPanels(); 138const std::vector<int>& GD_GetAchievementPanels();
121int GD_GetItemIdForColor(LingoColor color); 139int GD_GetItemIdForColor(LingoColor color);
140const std::vector<int>& GD_GetSunwarpDoors();
141int GD_GetRoomForSunwarp(int index);
122 142
123#endif /* end of include guard: GAME_DATA_H_9C42AC51 */ 143#endif /* end of include guard: GAME_DATA_H_9C42AC51 */