about summary refs log tree commit diff stats
path: root/data
Commit message (Collapse)AuthorAgeFilesLines
* Added the_fuzzyStar Rauchenberger2025-10-2510-0/+226
|
* Changed the_relentless's locationsStar Rauchenberger2025-10-252-6/+31
|
* Add white_ending flag to doorStar Rauchenberger2025-10-241-15/+1
|
* Removed 3 the_advanced checks + added 1 the_stellar checkStar Rauchenberger2025-10-243-41/+10
|
* Add logic for the other rainbow in the_sturdyStar Rauchenberger2025-10-246-7/+38
|
* Added the_stellarStar Rauchenberger2025-10-2419-0/+438
|
* Add a mastery to IcarusStar Rauchenberger2025-10-235-0/+75
|
* Fixed Trans Rights area not being accessible in unshuffled doorsStar Rauchenberger2025-10-235-26/+39
|
* the_crystalline -> icarus is possibleStar Rauchenberger2025-10-231-0/+16
|
* Added the_crystallineStar Rauchenberger2025-10-2311-0/+135
|
* Added the_charismaticStar Rauchenberger2025-10-2315-0/+296
|
* Allow validator to ignore custom nodesStar Rauchenberger2025-10-233-0/+8
|
* Annotated gift maps entrance as requiring cyan doorsStar Rauchenberger2025-10-234-1/+28
|
* Fixed typos in the_advanced locationsStar Rauchenberger2025-10-231-3/+3
|
* Mark the_advanced as a gift mapStar Rauchenberger2025-10-231-0/+1
|
* Added the_advancedStar Rauchenberger2025-10-239-0/+401
|
* Latch the control center color doorsStar Rauchenberger2025-10-239-0/+13
|
* Fix repetitive -> entry worldport rotationStar Rauchenberger2025-10-221-1/+1
|
* Latch the N door in the_shopStar Rauchenberger2025-10-221-0/+3
|
* Added icarusStar Rauchenberger2025-10-2236-2/+1816
|
* Mark some doors as "latched"Star Rauchenberger2025-10-2017-33/+23
|
* Annotate "worldport entrances"Star Rauchenberger2025-10-1918-0/+72
|
* Bump version v7.1.0Star Rauchenberger2025-10-071-2/+2
|
* Shortened some location names in the_greatStar Rauchenberger2025-10-066-116/+130
|
* Liberated/Literate entrance panels in logic looking upStar Rauchenberger2025-10-056-20/+50
|
* Make Sun Temple -> Graveyard be in logicStar Rauchenberger2025-10-051-0/+15
|
* Bump version v7.0.2Star Rauchenberger2025-10-031-1/+1
|
* Renamed Welcome Back Door locationStar Rauchenberger2025-10-021-0/+1
|
* Bump versionStar Rauchenberger2025-10-011-1/+1
|
* Fix vanilla-only oneway door in The RepetitiveStar Rauchenberger2025-09-302-2/+2
|
* Removed free connection out of Digital Gallery Maze v7.0.0Star Rauchenberger2025-09-291-5/+0
|
* Change version schemeStar Rauchenberger2025-09-291-1/+5
|
* Rename seasonings doors locationStar Rauchenberger2025-09-291-0/+1
|
* Fixed CC gray door receiver (again)Star Rauchenberger2025-09-281-1/+1
|
* Fixed misnamed ports in the_parthenonStar Rauchenberger2025-09-281-2/+2
|
* Separate The Orb's middle port into own regionStar Rauchenberger2025-09-284-15/+24
|
* Added display names to portsStar Rauchenberger2025-09-28141-0/+178
|
* [Data] Fix The Colorful entrance portStar Rauchenberger2025-09-221-1/+1
|
* [Data] Fixed some stuff for worldport shuffleStar Rauchenberger2025-09-228-10/+13
|
* [Data] Annotate shuffleable portsStar Rauchenberger2025-09-21145-142/+421
|
* Bump versions data-v6 client-v6.7 apworld-v6.6Star Rauchenberger2025-09-191-1/+1
|
* [Data] Logic error with Wrath RoomStar Rauchenberger2025-09-191-0/+6
|
* [Data] Rename SMILE locationsStar Rauchenberger2025-09-191-0/+5
|
* [Data] Eye Room -> Gallery connectionStar Rauchenberger2025-09-191-0/+16
|
* [Data] Renamed some doors with compass directionsStar Rauchenberger2025-09-199-72/+72
|
* [Data] Roof -> Orchestra RoomStar Rauchenberger2025-09-191-0/+6
|
* Added strict purple/cyan ending optionsStar Rauchenberger2025-09-192-0/+2
|
* Bump versions data-v5 client-v5.5 apworld-v5.5Star Rauchenberger2025-09-161-1/+1
|
* [Data] Rename TURN check near Shop EntranceStar Rauchenberger2025-09-161-1/+1
|
* [Data] Daedalus - C Keyholder should be in East AreaStar Rauchenberger2025-09-161-1/+1
|
2c2d9e9 ^
e07e031 ^
704c08b ^

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135



                            
                   















                       



                                     





                         






                        

  
              
         




                                  
                                   

                              
                           
                               
                            
                          
                    

  

                               
                      


                   






                             
                         
                        

                             
                                                   


                            
                                    




                          
                                            




                          




                          
                                      
                            
                          



                   
                               
                          

                          
                         
                    


                
         



                                  
                         
                    

  





                                              
                                              


                                                          
                                           
                                             
                                    

                                                       
#ifndef GAME_DATA_H_9C42AC51
#define GAME_DATA_H_9C42AC51

#include <map>
#include <optional>
#include <string>
#include <vector>

enum class LingoColor {
  kNone,
  kBlack,
  kRed,
  kBlue,
  kYellow,
  kGreen,
  kOrange,
  kPurple,
  kBrown,
  kGray
};

constexpr int kLOCATION_NORMAL = 1;
constexpr int kLOCATION_REDUCED = 2;
constexpr int kLOCATION_INSANITY = 4;

enum class EntranceType {
  kNormal,
  kPainting,
  kSunwarp,
  kWarp,
  kPilgrimage,
  kCrossroadsRoofAccess,
};

enum class DoorType {
  kNormal,
  kSunwarp,
  kSunPainting,
};

struct Panel {
  int id;
  int room;
  std::string name;
  std::vector<LingoColor> colors;
  std::vector<int> required_rooms;
  std::vector<int> required_doors;
  std::vector<int> required_panels;
  bool check = false;
  bool exclude_reduce = false;
  bool achievement = false;
  std::string achievement_name;
  bool non_counting = false;
  int ap_location_id = -1;
  bool hunt = false;
};

struct ProgressiveRequirement {
  std::string item_name;
  int ap_item_id = -1;
  int quantity = 0;
};

struct Door {
  int room;
  std::string name;
  std::string location_name;
  std::string item_name;
  std::string group_name;
  bool skip_location = false;
  bool skip_item = false;
  bool is_event = false;
  std::vector<int> panels;
  bool exclude_reduce = true;
  std::vector<ProgressiveRequirement> progressives;
  int ap_item_id = -1;
  int group_ap_item_id = -1;
  int ap_location_id = -1;
  DoorType type = DoorType::kNormal;
};

struct Exit {
  int destination_room;
  std::optional<int> door;
  EntranceType type = EntranceType::kNormal;
};

struct PaintingExit {
  std::string id;
  std::optional<int> door;
};

struct Room {
  std::string name;
  std::vector<Exit> exits;
  std::vector<PaintingExit> paintings;
  std::vector<int> sunwarps;
  std::vector<int> panels;
};

struct Location {
  std::string name;
  std::string ap_location_name;
  int ap_location_id = -1;
  int room;
  std::vector<int> panels;
  int classification = 0;
  bool hunt = false;
};

struct MapArea {
  int id;
  std::string name;
  std::vector<Location> locations;
  int map_x;
  int map_y;
  int classification = 0;
  bool hunt = false;
};

const std::vector<MapArea>& GD_GetMapAreas();
const MapArea& GD_GetMapArea(int id);
int GD_GetRoomByName(const std::string& name);
const Room& GD_GetRoom(int room_id);
const std::vector<Door>& GD_GetDoors();
const Door& GD_GetDoor(int door_id);
int GD_GetDoorByName(const std::string& name);
const Panel& GD_GetPanel(int panel_id);
int GD_GetRoomForPainting(const std::string& painting_id);
const std::vector<int>& GD_GetAchievementPanels();
int GD_GetItemIdForColor(LingoColor color);
const std::vector<int>& GD_GetSunwarpDoors();
int GD_GetRoomForSunwarp(int index);

#endif /* end of include guard: GAME_DATA_H_9C42AC51 */