diff options
Diffstat (limited to 'src/game_data.h')
-rw-r--r-- | src/game_data.h | 22 |
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; | |||
23 | constexpr int kLOCATION_REDUCED = 2; | 23 | constexpr int kLOCATION_REDUCED = 2; |
24 | constexpr int kLOCATION_INSANITY = 4; | 24 | constexpr int kLOCATION_INSANITY = 4; |
25 | 25 | ||
26 | enum class EntranceType { | ||
27 | kNormal, | ||
28 | kPainting, | ||
29 | kSunwarp, | ||
30 | kWarp, | ||
31 | kPilgrimage, | ||
32 | kCrossroadsRoofAccess, | ||
33 | }; | ||
34 | |||
35 | enum class DoorType { | ||
36 | kNormal, | ||
37 | kSunwarp, | ||
38 | kSunPainting, | ||
39 | }; | ||
40 | |||
26 | struct Panel { | 41 | struct 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 | ||
66 | struct Exit { | 82 | struct 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 | ||
72 | struct PaintingExit { | 88 | struct 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); | |||
107 | const Room& GD_GetRoom(int room_id); | 124 | const Room& GD_GetRoom(int room_id); |
108 | const std::vector<Door>& GD_GetDoors(); | 125 | const std::vector<Door>& GD_GetDoors(); |
109 | const Door& GD_GetDoor(int door_id); | 126 | const Door& GD_GetDoor(int door_id); |
127 | int GD_GetDoorByName(const std::string& name); | ||
110 | const Panel& GD_GetPanel(int panel_id); | 128 | const Panel& GD_GetPanel(int panel_id); |
111 | int GD_GetRoomForPainting(const std::string& painting_id); | 129 | int GD_GetRoomForPainting(const std::string& painting_id); |
112 | const std::vector<int>& GD_GetAchievementPanels(); | 130 | const std::vector<int>& GD_GetAchievementPanels(); |
113 | int GD_GetItemIdForColor(LingoColor color); | 131 | int GD_GetItemIdForColor(LingoColor color); |
132 | const std::vector<int>& GD_GetSunwarpDoors(); | ||
133 | int 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 */ |