summary refs log tree commit diff stats
path: root/tools/validator/structs.h
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-08-30 12:00:03 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-08-30 12:00:03 -0400
commitd2bc5b2811171685e8bdc895122987b53defcf0a (patch)
treedabf111e8d4ba8caceee46189075968e223e3ee8 /tools/validator/structs.h
parent3b77044a6a53d38a6960eb2a5855283a00b24d75 (diff)
downloadlingo2-archipelago-d2bc5b2811171685e8bdc895122987b53defcf0a.tar.gz
lingo2-archipelago-d2bc5b2811171685e8bdc895122987b53defcf0a.tar.bz2
lingo2-archipelago-d2bc5b2811171685e8bdc895122987b53defcf0a.zip
Changed how door location names are formatted
STANDARD type doors with at most four panels in the same map area and no
other trigger objects will have their location names generated from the
names of the panels used to open the door, similar to Lingo 1. Other
door types will use the door's name. In either case, the name can be
overridden using the new location_name field.

Rooms can also set a panel_display_name field, which will be used in
location names for doors, and is used to group panels into areas.

Panels themselves can set display names, which differentiates their
locations from other panels in the same area.

Many maps were updated for this, but note that the_symbolic and
the_unyielding have validator failures because of duplicate panel names.
This won't matter until panelsanity is implemented.
Diffstat (limited to 'tools/validator/structs.h')
-rw-r--r--tools/validator/structs.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/validator/structs.h b/tools/validator/structs.h index 958038d..0ca96fe 100644 --- a/tools/validator/structs.h +++ b/tools/validator/structs.h
@@ -72,6 +72,8 @@ struct ProxyInfo {
72struct PanelInfo { 72struct PanelInfo {
73 std::vector<HumanPanel> definitions; 73 std::vector<HumanPanel> definitions;
74 74
75 std::string map_area_name;
76
75 std::vector<HumanConnection> connections_referenced_by; 77 std::vector<HumanConnection> connections_referenced_by;
76 std::vector<DoorIdentifier> doors_referenced_by; 78 std::vector<DoorIdentifier> doors_referenced_by;
77 79
@@ -96,6 +98,10 @@ struct EndingInfo {
96 std::vector<DoorIdentifier> doors_referenced_by; 98 std::vector<DoorIdentifier> doors_referenced_by;
97}; 99};
98 100
101struct PanelNameInfo {
102 std::vector<PanelIdentifier> panels_used_by;
103};
104
99struct CollectedInfo { 105struct CollectedInfo {
100 std::map<std::string, MapInfo> maps; 106 std::map<std::string, MapInfo> maps;
101 std::map<RoomIdentifier, RoomInfo, RoomIdentifierLess> rooms; 107 std::map<RoomIdentifier, RoomInfo, RoomIdentifierLess> rooms;
@@ -107,6 +113,7 @@ struct CollectedInfo {
107 keyholders; 113 keyholders;
108 std::map<LetterIdentifier, LetterInfo> letters; 114 std::map<LetterIdentifier, LetterInfo> letters;
109 std::map<std::string, EndingInfo> endings; 115 std::map<std::string, EndingInfo> endings;
116 std::map<std::string, PanelNameInfo> panel_names;
110}; 117};
111 118
112} // namespace com::fourisland::lingo2_archipelago 119} // namespace com::fourisland::lingo2_archipelago