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.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/validator/structs.h b/tools/validator/structs.h index 0ca96fe..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,10 +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;
74 80
75 std::string map_area_name; 81 std::string map_area_name;
76 82
77 std::vector<HumanConnection> connections_referenced_by; 83 std::vector<HumanConnection> connections_referenced_by;
84 std::vector<HumanConnection> target_connections_referenced_by;
78 std::vector<DoorIdentifier> doors_referenced_by; 85 std::vector<DoorIdentifier> doors_referenced_by;
79 86
80 std::map<std::string, ProxyInfo> proxies; 87 std::map<std::string, ProxyInfo> proxies;
@@ -82,6 +89,7 @@ struct PanelInfo {
82 89
83struct KeyholderInfo { 90struct KeyholderInfo {
84 std::vector<HumanKeyholder> definitions; 91 std::vector<HumanKeyholder> definitions;
92 bool has_id = false;
85 93
86 std::vector<DoorIdentifier> doors_referenced_by; 94 std::vector<DoorIdentifier> doors_referenced_by;
87}; 95};
@@ -90,10 +98,12 @@ using LetterIdentifier = std::tuple<char, bool>;
90 98
91struct LetterInfo { 99struct LetterInfo {
92 std::vector<RoomIdentifier> defined_in; 100 std::vector<RoomIdentifier> defined_in;
101 bool has_id = false;
93}; 102};
94 103
95struct EndingInfo { 104struct EndingInfo {
96 std::vector<RoomIdentifier> defined_in; 105 std::vector<RoomIdentifier> defined_in;
106 bool has_id = false;
97 107
98 std::vector<DoorIdentifier> doors_referenced_by; 108 std::vector<DoorIdentifier> doors_referenced_by;
99}; 109};
@@ -102,6 +112,20 @@ struct PanelNameInfo {
102 std::vector<PanelIdentifier> panels_used_by; 112 std::vector<PanelIdentifier> panels_used_by;
103}; 113};
104 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
105struct CollectedInfo { 129struct CollectedInfo {
106 std::map<std::string, MapInfo> maps; 130 std::map<std::string, MapInfo> maps;
107 std::map<RoomIdentifier, RoomInfo, RoomIdentifierLess> rooms; 131 std::map<RoomIdentifier, RoomInfo, RoomIdentifierLess> rooms;
@@ -114,6 +138,8 @@ struct CollectedInfo {
114 std::map<LetterIdentifier, LetterInfo> letters; 138 std::map<LetterIdentifier, LetterInfo> letters;
115 std::map<std::string, EndingInfo> endings; 139 std::map<std::string, EndingInfo> endings;
116 std::map<std::string, PanelNameInfo> panel_names; 140 std::map<std::string, PanelNameInfo> panel_names;
141 std::map<std::string, ProgressiveInfo> progressives;
142 std::map<std::string, DoorGroupInfo> door_groups;
117}; 143};
118 144
119} // namespace com::fourisland::lingo2_archipelago 145} // namespace com::fourisland::lingo2_archipelago