about summary refs log tree commit diff stats
path: root/src/game_data.h
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2024-05-12 15:26:39 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2024-05-12 15:26:39 -0400
commit8edd1bfd4ed2a42c28830f6c6575684aa3461b77 (patch)
treeb2139f17a929300d2aa59da6f81abd92e22fbe0d /src/game_data.h
parent5f7069d480022b115bee585724d41ff827f80f2f (diff)
parent98487c58c31bf0ce49d89c0bb9c7c173f2ad978d (diff)
downloadlingo-ap-tracker-8edd1bfd4ed2a42c28830f6c6575684aa3461b77.tar.gz
lingo-ap-tracker-8edd1bfd4ed2a42c28830f6c6575684aa3461b77.tar.bz2
lingo-ap-tracker-8edd1bfd4ed2a42c28830f6c6575684aa3461b77.zip
Merge branch 'main' into subway
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 8a38264..cd09627 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;
@@ -61,12 +76,13 @@ struct Door {
61 int ap_item_id = -1; 76 int ap_item_id = -1;
62 int group_ap_item_id = -1; 77 int group_ap_item_id = -1;
63 int ap_location_id = -1; 78 int ap_location_id = -1;
79 DoorType type = DoorType::kNormal;
64}; 80};
65 81
66struct Exit { 82struct Exit {
67 int destination_room; 83 int destination_room;
68 std::optional<int> door; 84 std::optional<int> door;
69 bool painting = false; 85 EntranceType type = EntranceType::kNormal;
70}; 86};
71 87
72struct PaintingExit { 88struct PaintingExit {
@@ -78,6 +94,7 @@ struct Room {
78 std::string name; 94 std::string name;
79 std::vector<Exit> exits; 95 std::vector<Exit> exits;
80 std::vector<PaintingExit> paintings; 96 std::vector<PaintingExit> paintings;
97 std::vector<int> sunwarps;
81 std::vector<int> panels; 98 std::vector<int> panels;
82}; 99};
83 100
@@ -107,9 +124,12 @@ int GD_GetRoomByName(const std::string& name);
107const Room& GD_GetRoom(int room_id); 124const Room& GD_GetRoom(int room_id);
108const std::vector<Door>& GD_GetDoors(); 125const std::vector<Door>& GD_GetDoors();
109const Door& GD_GetDoor(int door_id); 126const Door& GD_GetDoor(int door_id);
127int GD_GetDoorByName(const std::string& name);
110const Panel& GD_GetPanel(int panel_id); 128const Panel& GD_GetPanel(int panel_id);
111int GD_GetRoomForPainting(const std::string& painting_id); 129int GD_GetRoomForPainting(const std::string& painting_id);
112const std::vector<int>& GD_GetAchievementPanels(); 130const std::vector<int>& GD_GetAchievementPanels();
113int GD_GetItemIdForColor(LingoColor color); 131int GD_GetItemIdForColor(LingoColor color);
132const std::vector<int>& GD_GetSunwarpDoors();
133int GD_GetRoomForSunwarp(int index);
114 134
115#endif /* end of include guard: GAME_DATA_H_9C42AC51 */ 135#endif /* end of include guard: GAME_DATA_H_9C42AC51 */