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