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.h41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/game_data.h b/src/game_data.h index 09824d7..aca4c3d 100644 --- a/src/game_data.h +++ b/src/game_data.h
@@ -50,6 +50,7 @@ struct Panel {
50 bool exclude_reduce = false; 50 bool exclude_reduce = false;
51 bool achievement = false; 51 bool achievement = false;
52 std::string achievement_name; 52 std::string achievement_name;
53 std::string location_name;
53 bool non_counting = false; 54 bool non_counting = false;
54 int ap_location_id = -1; 55 int ap_location_id = -1;
55 bool hunt = false; 56 bool hunt = false;
@@ -63,6 +64,7 @@ struct ProgressiveRequirement {
63}; 64};
64 65
65struct Door { 66struct Door {
67 int id;
66 int room; 68 int room;
67 std::string name; 69 std::string name;
68 std::string location_name; 70 std::string location_name;
@@ -93,14 +95,17 @@ struct Exit {
93}; 95};
94 96
95struct PaintingExit { 97struct PaintingExit {
96 std::string id; 98 int id;
99 int room;
100 std::string internal_id;
97 std::optional<int> door; 101 std::optional<int> door;
102 bool entrance = false;
98}; 103};
99 104
100struct Room { 105struct Room {
101 std::string name; 106 std::string name;
102 std::vector<Exit> exits; 107 std::vector<Exit> exits;
103 std::vector<PaintingExit> paintings; 108 std::vector<int> paintings;
104 std::vector<int> sunwarps; 109 std::vector<int> sunwarps;
105 std::vector<int> panels; 110 std::vector<int> panels;
106}; 111};
@@ -119,12 +124,37 @@ struct MapArea {
119 int id; 124 int id;
120 std::string name; 125 std::string name;
121 std::vector<Location> locations; 126 std::vector<Location> locations;
127 std::vector<int> paintings;
122 int map_x; 128 int map_x;
123 int map_y; 129 int map_y;
124 int classification = 0; 130 int classification = 0;
125 bool hunt = false; 131 bool hunt = false;
126}; 132};
127 133
134enum class SubwaySunwarpType {
135 kEnter,
136 kExit,
137 kFinal
138};
139
140struct SubwaySunwarp {
141 int dots;
142 SubwaySunwarpType type;
143
144 bool operator<(const SubwaySunwarp& rhs) const;
145};
146
147struct SubwayItem {
148 int id;
149 int x;
150 int y;
151 std::optional<int> door;
152 std::vector<std::string> paintings;
153 std::vector<std::string> tags;
154 std::optional<SubwaySunwarp> sunwarp;
155 std::optional<std::string> special;
156};
157
128const std::vector<MapArea>& GD_GetMapAreas(); 158const std::vector<MapArea>& GD_GetMapAreas();
129const MapArea& GD_GetMapArea(int id); 159const MapArea& GD_GetMapArea(int id);
130int GD_GetRoomByName(const std::string& name); 160int GD_GetRoomByName(const std::string& name);
@@ -134,10 +164,15 @@ const Door& GD_GetDoor(int door_id);
134int GD_GetDoorByName(const std::string& name); 164int GD_GetDoorByName(const std::string& name);
135const Panel& GD_GetPanel(int panel_id); 165const Panel& GD_GetPanel(int panel_id);
136const PanelDoor& GD_GetPanelDoor(int panel_door_id); 166const PanelDoor& GD_GetPanelDoor(int panel_door_id);
137int GD_GetRoomForPainting(const std::string& painting_id); 167const PaintingExit& GD_GetPaintingExit(int painting_id);
168int GD_GetPaintingByName(const std::string& name);
138const std::vector<int>& GD_GetAchievementPanels(); 169const std::vector<int>& GD_GetAchievementPanels();
139int GD_GetItemIdForColor(LingoColor color); 170int GD_GetItemIdForColor(LingoColor color);
140const std::vector<int>& GD_GetSunwarpDoors(); 171const std::vector<int>& GD_GetSunwarpDoors();
141int GD_GetRoomForSunwarp(int index); 172int GD_GetRoomForSunwarp(int index);
173const std::vector<SubwayItem>& GD_GetSubwayItems();
174const SubwayItem& GD_GetSubwayItem(int id);
175int GD_GetSubwayItemForPainting(const std::string& painting_id);
176int GD_GetSubwayItemForSunwarp(const SubwaySunwarp& sunwarp);
142 177
143#endif /* end of include guard: GAME_DATA_H_9C42AC51 */ 178#endif /* end of include guard: GAME_DATA_H_9C42AC51 */