about summary refs log tree commit diff stats
path: root/tools/validator/structs.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/validator/structs.h')
-rw-r--r--tools/validator/structs.h41
1 files changed, 40 insertions, 1 deletions
diff --git a/tools/validator/structs.h b/tools/validator/structs.h index 958038d..81a0e8f 100644 --- a/tools/validator/structs.h +++ b/tools/validator/structs.h
@@ -27,6 +27,11 @@ struct GameNodeInfo {
27 27
28struct MapInfo { 28struct MapInfo {
29 std::map<std::string, GameNodeInfo> game_nodes; 29 std::map<std::string, GameNodeInfo> game_nodes;
30
31 std::vector<HumanMap> definitions;
32 bool has_rte_id = false;
33
34 std::optional<PortIdentifier> malformed_worldport_entrance;
30}; 35};
31 36
32struct RoomInfo { 37struct RoomInfo {
@@ -35,30 +40,38 @@ struct RoomInfo {
35 std::vector<DoorIdentifier> doors_referenced_by; 40 std::vector<DoorIdentifier> doors_referenced_by;
36 std::vector<PanelIdentifier> panels_referenced_by; 41 std::vector<PanelIdentifier> panels_referenced_by;
37 std::vector<HumanConnection> connections_referenced_by; 42 std::vector<HumanConnection> connections_referenced_by;
43 std::vector<std::string> map_rtes_referenced_by;
38}; 44};
39 45
40struct DoorInfo { 46struct DoorInfo {
41 std::vector<HumanDoor> definitions; 47 std::vector<HumanDoor> definitions;
48 bool has_id = false;
42 49
43 std::vector<HumanConnection> connections_referenced_by; 50 std::vector<HumanConnection> connections_referenced_by;
44 std::vector<DoorIdentifier> doors_referenced_by; 51 std::vector<DoorIdentifier> doors_referenced_by;
45 std::vector<PanelIdentifier> panels_referenced_by; 52 std::vector<PanelIdentifier> panels_referenced_by;
46 std::vector<PaintingIdentifier> paintings_referenced_by; 53 std::vector<PaintingIdentifier> paintings_referenced_by;
47 std::vector<PortIdentifier> ports_referenced_by; 54 std::vector<PortIdentifier> ports_referenced_by;
55 std::vector<std::string> progressives_referenced_by;
56 std::vector<std::string> door_groups_referenced_by;
48 57
49 MalformedIdentifiers malformed_identifiers; 58 MalformedIdentifiers malformed_identifiers;
50}; 59};
51 60
52struct PortInfo { 61struct PortInfo {
53 std::vector<HumanPort> definitions; 62 std::vector<HumanPort> definitions;
63 bool has_id = false;
54 64
55 std::vector<HumanConnection> connections_referenced_by; 65 std::vector<HumanConnection> connections_referenced_by;
66 std::vector<HumanConnection> target_connections_referenced_by;
67 std::vector<std::string> map_worldport_entrances;
56}; 68};
57 69
58struct PaintingInfo { 70struct PaintingInfo {
59 std::vector<HumanPainting> definitions; 71 std::vector<HumanPainting> definitions;
60 72
61 std::vector<HumanConnection> connections_referenced_by; 73 std::vector<HumanConnection> connections_referenced_by;
74 std::vector<HumanConnection> target_connections_referenced_by;
62 std::vector<DoorIdentifier> doors_referenced_by; 75 std::vector<DoorIdentifier> doors_referenced_by;
63}; 76};
64 77
@@ -71,8 +84,12 @@ struct ProxyInfo {
71 84
72struct PanelInfo { 85struct PanelInfo {
73 std::vector<HumanPanel> definitions; 86 std::vector<HumanPanel> definitions;
87 bool has_id = false;
88
89 std::string map_area_name;
74 90
75 std::vector<HumanConnection> connections_referenced_by; 91 std::vector<HumanConnection> connections_referenced_by;
92 std::vector<HumanConnection> target_connections_referenced_by;
76 std::vector<DoorIdentifier> doors_referenced_by; 93 std::vector<DoorIdentifier> doors_referenced_by;
77 94
78 std::map<std::string, ProxyInfo> proxies; 95 std::map<std::string, ProxyInfo> proxies;
@@ -80,6 +97,7 @@ struct PanelInfo {
80 97
81struct KeyholderInfo { 98struct KeyholderInfo {
82 std::vector<HumanKeyholder> definitions; 99 std::vector<HumanKeyholder> definitions;
100 bool has_id = false;
83 101
84 std::vector<DoorIdentifier> doors_referenced_by; 102 std::vector<DoorIdentifier> doors_referenced_by;
85}; 103};
@@ -88,12 +106,30 @@ using LetterIdentifier = std::tuple<char, bool>;
88 106
89struct LetterInfo { 107struct LetterInfo {
90 std::vector<RoomIdentifier> defined_in; 108 std::vector<RoomIdentifier> defined_in;
109 bool has_id = false;
91}; 110};
92 111
93struct EndingInfo { 112struct EndingInfo {
94 std::vector<RoomIdentifier> defined_in; 113 std::vector<RoomIdentifier> defined_in;
114 bool has_id = false;
115};
95 116
96 std::vector<DoorIdentifier> doors_referenced_by; 117struct PanelNameInfo {
118 std::vector<PanelIdentifier> panels_used_by;
119};
120
121struct ProgressiveInfo {
122 std::vector<HumanProgressive> definitions;
123 bool has_id = false;
124
125 std::vector<DoorIdentifier> malformed_doors;
126};
127
128struct DoorGroupInfo {
129 std::vector<HumanDoorGroup> definitions;
130 bool has_id = false;
131
132 std::vector<DoorIdentifier> malformed_doors;
97}; 133};
98 134
99struct CollectedInfo { 135struct CollectedInfo {
@@ -107,6 +143,9 @@ struct CollectedInfo {
107 keyholders; 143 keyholders;
108 std::map<LetterIdentifier, LetterInfo> letters; 144 std::map<LetterIdentifier, LetterInfo> letters;
109 std::map<std::string, EndingInfo> endings; 145 std::map<std::string, EndingInfo> endings;
146 std::map<std::string, PanelNameInfo> panel_names;
147 std::map<std::string, ProgressiveInfo> progressives;
148 std::map<std::string, DoorGroupInfo> door_groups;
110}; 149};
111 150
112} // namespace com::fourisland::lingo2_archipelago 151} // namespace com::fourisland::lingo2_archipelago