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.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/validator/structs.h b/tools/validator/structs.h index 958038d..d1d45f2 100644 --- a/tools/validator/structs.h +++ b/tools/validator/structs.h
@@ -39,12 +39,15 @@ struct RoomInfo {
39 39
40struct DoorInfo { 40struct DoorInfo {
41 std::vector<HumanDoor> definitions; 41 std::vector<HumanDoor> definitions;
42 bool has_id = false;
42 43
43 std::vector<HumanConnection> connections_referenced_by; 44 std::vector<HumanConnection> connections_referenced_by;
44 std::vector<DoorIdentifier> doors_referenced_by; 45 std::vector<DoorIdentifier> doors_referenced_by;
45 std::vector<PanelIdentifier> panels_referenced_by; 46 std::vector<PanelIdentifier> panels_referenced_by;
46 std::vector<PaintingIdentifier> paintings_referenced_by; 47 std::vector<PaintingIdentifier> paintings_referenced_by;
47 std::vector<PortIdentifier> ports_referenced_by; 48 std::vector<PortIdentifier> ports_referenced_by;
49 std::vector<std::string> progressives_referenced_by;
50 std::vector<std::string> door_groups_referenced_by;
48 51
49 MalformedIdentifiers malformed_identifiers; 52 MalformedIdentifiers malformed_identifiers;
50}; 53};
@@ -53,12 +56,14 @@ struct PortInfo {
53 std::vector<HumanPort> definitions; 56 std::vector<HumanPort> definitions;
54 57
55 std::vector<HumanConnection> connections_referenced_by; 58 std::vector<HumanConnection> connections_referenced_by;
59 std::vector<HumanConnection> target_connections_referenced_by;
56}; 60};
57 61
58struct PaintingInfo { 62struct PaintingInfo {
59 std::vector<HumanPainting> definitions; 63 std::vector<HumanPainting> definitions;
60 64
61 std::vector<HumanConnection> connections_referenced_by; 65 std::vector<HumanConnection> connections_referenced_by;
66 std::vector<HumanConnection> target_connections_referenced_by;
62 std::vector<DoorIdentifier> doors_referenced_by; 67 std::vector<DoorIdentifier> doors_referenced_by;
63}; 68};
64 69
@@ -71,8 +76,12 @@ struct ProxyInfo {
71 76
72struct PanelInfo { 77struct PanelInfo {
73 std::vector<HumanPanel> definitions; 78 std::vector<HumanPanel> definitions;
79 bool has_id = false;
80
81 std::string map_area_name;
74 82
75 std::vector<HumanConnection> connections_referenced_by; 83 std::vector<HumanConnection> connections_referenced_by;
84 std::vector<HumanConnection> target_connections_referenced_by;
76 std::vector<DoorIdentifier> doors_referenced_by; 85 std::vector<DoorIdentifier> doors_referenced_by;
77 86
78 std::map<std::string, ProxyInfo> proxies; 87 std::map<std::string, ProxyInfo> proxies;
@@ -80,6 +89,7 @@ struct PanelInfo {
80 89
81struct KeyholderInfo { 90struct KeyholderInfo {
82 std::vector<HumanKeyholder> definitions; 91 std::vector<HumanKeyholder> definitions;
92 bool has_id = false;
83 93
84 std::vector<DoorIdentifier> doors_referenced_by; 94 std::vector<DoorIdentifier> doors_referenced_by;
85}; 95};
@@ -88,14 +98,34 @@ using LetterIdentifier = std::tuple<char, bool>;
88 98
89struct LetterInfo { 99struct LetterInfo {
90 std::vector<RoomIdentifier> defined_in; 100 std::vector<RoomIdentifier> defined_in;
101 bool has_id = false;
91}; 102};
92 103
93struct EndingInfo { 104struct EndingInfo {
94 std::vector<RoomIdentifier> defined_in; 105 std::vector<RoomIdentifier> defined_in;
106 bool has_id = false;
95 107
96 std::vector<DoorIdentifier> doors_referenced_by; 108 std::vector<DoorIdentifier> doors_referenced_by;
97}; 109};
98 110
111struct PanelNameInfo {
112 std::vector<PanelIdentifier> panels_used_by;
113};
114
115struct ProgressiveInfo {
116 std::vector<HumanProgressive> definitions;
117 bool has_id = false;
118
119 std::vector<DoorIdentifier> malformed_doors;
120};
121
122struct DoorGroupInfo {
123 std::vector<HumanDoorGroup> definitions;
124 bool has_id = false;
125
126 std::vector<DoorIdentifier> malformed_doors;
127};
128
99struct CollectedInfo { 129struct CollectedInfo {
100 std::map<std::string, MapInfo> maps; 130 std::map<std::string, MapInfo> maps;
101 std::map<RoomIdentifier, RoomInfo, RoomIdentifierLess> rooms; 131 std::map<RoomIdentifier, RoomInfo, RoomIdentifierLess> rooms;
@@ -107,6 +137,9 @@ struct CollectedInfo {
107 keyholders; 137 keyholders;
108 std::map<LetterIdentifier, LetterInfo> letters; 138 std::map<LetterIdentifier, LetterInfo> letters;
109 std::map<std::string, EndingInfo> endings; 139 std::map<std::string, EndingInfo> endings;
140 std::map<std::string, PanelNameInfo> panel_names;
141 std::map<std::string, ProgressiveInfo> progressives;
142 std::map<std::string, DoorGroupInfo> door_groups;
110}; 143};
111 144
112} // namespace com::fourisland::lingo2_archipelago 145} // namespace com::fourisland::lingo2_archipelago