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-06-06 15:54:41 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2024-06-06 15:54:41 -0400
commit8ddab49cc13d809ca75dcd7f645661a3d3cb05c4 (patch)
treeba1e5f3237dbb7cdc939c35e193f5e6e46845a77 /src/game_data.h
parentac38dd0a5c394eefc39b7a8cf7b96762f18c8b31 (diff)
parent6f5287b3921c843a6b322ccbdfcbef00a8f16980 (diff)
downloadlingo-ap-tracker-8ddab49cc13d809ca75dcd7f645661a3d3cb05c4.tar.gz
lingo-ap-tracker-8ddab49cc13d809ca75dcd7f645661a3d3cb05c4.tar.bz2
lingo-ap-tracker-8ddab49cc13d809ca75dcd7f645661a3d3cb05c4.zip
Merge branch 'subway'
Diffstat (limited to 'src/game_data.h')
-rw-r--r--src/game_data.h39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/game_data.h b/src/game_data.h index f3edaa2..a5d5699 100644 --- a/src/game_data.h +++ b/src/game_data.h
@@ -63,6 +63,7 @@ struct ProgressiveRequirement {
63}; 63};
64 64
65struct Door { 65struct Door {
66 int id;
66 int room; 67 int room;
67 std::string name; 68 std::string name;
68 std::string location_name; 69 std::string location_name;
@@ -87,14 +88,16 @@ struct Exit {
87}; 88};
88 89
89struct PaintingExit { 90struct PaintingExit {
90 std::string id; 91 int id;
92 int room;
93 std::string internal_id;
91 std::optional<int> door; 94 std::optional<int> door;
92}; 95};
93 96
94struct Room { 97struct Room {
95 std::string name; 98 std::string name;
96 std::vector<Exit> exits; 99 std::vector<Exit> exits;
97 std::vector<PaintingExit> paintings; 100 std::vector<int> paintings;
98 std::vector<int> sunwarps; 101 std::vector<int> sunwarps;
99 std::vector<int> panels; 102 std::vector<int> panels;
100}; 103};
@@ -113,12 +116,37 @@ struct MapArea {
113 int id; 116 int id;
114 std::string name; 117 std::string name;
115 std::vector<Location> locations; 118 std::vector<Location> locations;
119 std::vector<int> paintings;
116 int map_x; 120 int map_x;
117 int map_y; 121 int map_y;
118 int classification = 0; 122 int classification = 0;
119 bool hunt = false; 123 bool hunt = false;
120}; 124};
121 125
126enum class SubwaySunwarpType {
127 kEnter,
128 kExit,
129 kFinal
130};
131
132struct SubwaySunwarp {
133 int dots;
134 SubwaySunwarpType type;
135
136 bool operator<(const SubwaySunwarp& rhs) const;
137};
138
139struct SubwayItem {
140 int id;
141 int x;
142 int y;
143 std::optional<int> door;
144 std::vector<std::string> paintings;
145 std::vector<std::string> tags;
146 std::optional<SubwaySunwarp> sunwarp;
147 std::optional<std::string> special;
148};
149
122const std::vector<MapArea>& GD_GetMapAreas(); 150const std::vector<MapArea>& GD_GetMapAreas();
123const MapArea& GD_GetMapArea(int id); 151const MapArea& GD_GetMapArea(int id);
124int GD_GetRoomByName(const std::string& name); 152int GD_GetRoomByName(const std::string& name);
@@ -127,10 +155,15 @@ const std::vector<Door>& GD_GetDoors();
127const Door& GD_GetDoor(int door_id); 155const Door& GD_GetDoor(int door_id);
128int GD_GetDoorByName(const std::string& name); 156int GD_GetDoorByName(const std::string& name);
129const Panel& GD_GetPanel(int panel_id); 157const Panel& GD_GetPanel(int panel_id);
130int GD_GetRoomForPainting(const std::string& painting_id); 158const PaintingExit& GD_GetPaintingExit(int painting_id);
159int GD_GetPaintingByName(const std::string& name);
131const std::vector<int>& GD_GetAchievementPanels(); 160const std::vector<int>& GD_GetAchievementPanels();
132int GD_GetItemIdForColor(LingoColor color); 161int GD_GetItemIdForColor(LingoColor color);
133const std::vector<int>& GD_GetSunwarpDoors(); 162const std::vector<int>& GD_GetSunwarpDoors();
134int GD_GetRoomForSunwarp(int index); 163int GD_GetRoomForSunwarp(int index);
164const std::vector<SubwayItem>& GD_GetSubwayItems();
165const SubwayItem& GD_GetSubwayItem(int id);
166int GD_GetSubwayItemForPainting(const std::string& painting_id);
167int GD_GetSubwayItemForSunwarp(const SubwaySunwarp& sunwarp);
135 168
136#endif /* end of include guard: GAME_DATA_H_9C42AC51 */ 169#endif /* end of include guard: GAME_DATA_H_9C42AC51 */