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.h37
1 files changed, 36 insertions, 1 deletions
diff --git a/tools/validator/structs.h b/tools/validator/structs.h index 958038d..62974a8 100644 --- a/tools/validator/structs.h +++ b/tools/validator/structs.h
@@ -27,6 +27,8 @@ 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::optional<PortIdentifier> malformed_worldport_entrance;
30}; 32};
31 33
32struct RoomInfo { 34struct RoomInfo {
@@ -39,26 +41,33 @@ struct RoomInfo {
39 41
40struct DoorInfo { 42struct DoorInfo {
41 std::vector<HumanDoor> definitions; 43 std::vector<HumanDoor> definitions;
44 bool has_id = false;
42 45
43 std::vector<HumanConnection> connections_referenced_by; 46 std::vector<HumanConnection> connections_referenced_by;
44 std::vector<DoorIdentifier> doors_referenced_by; 47 std::vector<DoorIdentifier> doors_referenced_by;
45 std::vector<PanelIdentifier> panels_referenced_by; 48 std::vector<PanelIdentifier> panels_referenced_by;
46 std::vector<PaintingIdentifier> paintings_referenced_by; 49 std::vector<PaintingIdentifier> paintings_referenced_by;
47 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;
48 53
49 MalformedIdentifiers malformed_identifiers; 54 MalformedIdentifiers malformed_identifiers;
50}; 55};
51 56
52struct PortInfo { 57struct PortInfo {
53 std::vector<HumanPort> definitions; 58 std::vector<HumanPort> definitions;
59 bool has_id = false;
54 60
55 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;
56}; 64};
57 65
58struct PaintingInfo { 66struct PaintingInfo {
59 std::vector<HumanPainting> definitions; 67 std::vector<HumanPainting> definitions;
60 68
61 std::vector<HumanConnection> connections_referenced_by; 69 std::vector<HumanConnection> connections_referenced_by;
70 std::vector<HumanConnection> target_connections_referenced_by;
62 std::vector<DoorIdentifier> doors_referenced_by; 71 std::vector<DoorIdentifier> doors_referenced_by;
63}; 72};
64 73
@@ -71,8 +80,12 @@ struct ProxyInfo {
71 80
72struct PanelInfo { 81struct PanelInfo {
73 std::vector<HumanPanel> definitions; 82 std::vector<HumanPanel> definitions;
83 bool has_id = false;
84
85 std::string map_area_name;
74 86
75 std::vector<HumanConnection> connections_referenced_by; 87 std::vector<HumanConnection> connections_referenced_by;
88 std::vector<HumanConnection> target_connections_referenced_by;
76 std::vector<DoorIdentifier> doors_referenced_by; 89 std::vector<DoorIdentifier> doors_referenced_by;
77 90
78 std::map<std::string, ProxyInfo> proxies; 91 std::map<std::string, ProxyInfo> proxies;
@@ -80,6 +93,7 @@ struct PanelInfo {
80 93
81struct KeyholderInfo { 94struct KeyholderInfo {
82 std::vector<HumanKeyholder> definitions; 95 std::vector<HumanKeyholder> definitions;
96 bool has_id = false;
83 97
84 std::vector<DoorIdentifier> doors_referenced_by; 98 std::vector<DoorIdentifier> doors_referenced_by;
85}; 99};
@@ -88,12 +102,30 @@ using LetterIdentifier = std::tuple<char, bool>;
88 102
89struct LetterInfo { 103struct LetterInfo {
90 std::vector<RoomIdentifier> defined_in; 104 std::vector<RoomIdentifier> defined_in;
105 bool has_id = false;
91}; 106};
92 107
93struct EndingInfo { 108struct EndingInfo {
94 std::vector<RoomIdentifier> defined_in; 109 std::vector<RoomIdentifier> defined_in;
110 bool has_id = false;
111};
95 112
96 std::vector<DoorIdentifier> doors_referenced_by; 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;
97}; 129};
98 130
99struct CollectedInfo { 131struct CollectedInfo {
@@ -107,6 +139,9 @@ struct CollectedInfo {
107 keyholders; 139 keyholders;
108 std::map<LetterIdentifier, LetterInfo> letters; 140 std::map<LetterIdentifier, LetterInfo> letters;
109 std::map<std::string, EndingInfo> endings; 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;
110}; 145};
111 146
112} // namespace com::fourisland::lingo2_archipelago 147} // namespace com::fourisland::lingo2_archipelago