summary refs log tree commit diff stats
path: root/tools/validator
diff options
context:
space:
mode:
authorStar Rauchenberger <fefferburbia@gmail.com>2025-08-27 16:29:50 -0400
committerStar Rauchenberger <fefferburbia@gmail.com>2025-08-27 16:29:50 -0400
commit804ad0c230672813efdca5b6816a5de49354f375 (patch)
tree40e65adad6a28a9d2899e3dbbad697ff42c8851b /tools/validator
parent5333430a092d4d8c42561f82c7ff6e57f8700455 (diff)
downloadlingo2-archipelago-804ad0c230672813efdca5b6816a5de49354f375.tar.gz
lingo2-archipelago-804ad0c230672813efdca5b6816a5de49354f375.tar.bz2
lingo2-archipelago-804ad0c230672813efdca5b6816a5de49354f375.zip
Added control_center
Diffstat (limited to 'tools/validator')
-rw-r--r--tools/validator/human_processor.cpp5
-rw-r--r--tools/validator/structs.h2
-rw-r--r--tools/validator/validator.cpp11
3 files changed, 17 insertions, 1 deletions
diff --git a/tools/validator/human_processor.cpp b/tools/validator/human_processor.cpp index 5a7e78a..f53dc79 100644 --- a/tools/validator/human_processor.cpp +++ b/tools/validator/human_processor.cpp
@@ -337,6 +337,11 @@ class HumanProcessor {
337 DoorInfo& other_door_info = info_.doors[complete_door_identifier]; 337 DoorInfo& other_door_info = info_.doors[complete_door_identifier];
338 other_door_info.doors_referenced_by.push_back(door_identifier); 338 other_door_info.doors_referenced_by.push_back(door_identifier);
339 } 339 }
340
341 for (const std::string& ei : h_door.endings()) {
342 EndingInfo& ending_info = info_.endings[ei];
343 ending_info.doors_referenced_by.push_back(door_identifier);
344 }
340 } 345 }
341 346
342 void ProcessConnectionsFile(std::filesystem::path path, 347 void ProcessConnectionsFile(std::filesystem::path path,
diff --git a/tools/validator/structs.h b/tools/validator/structs.h index f7d9dc1..958038d 100644 --- a/tools/validator/structs.h +++ b/tools/validator/structs.h
@@ -92,6 +92,8 @@ struct LetterInfo {
92 92
93struct EndingInfo { 93struct EndingInfo {
94 std::vector<RoomIdentifier> defined_in; 94 std::vector<RoomIdentifier> defined_in;
95
96 std::vector<DoorIdentifier> doors_referenced_by;
95}; 97};
96 98
97struct CollectedInfo { 99struct CollectedInfo {
diff --git a/tools/validator/validator.cpp b/tools/validator/validator.cpp index b33f602..f802460 100644 --- a/tools/validator/validator.cpp +++ b/tools/validator/validator.cpp
@@ -245,7 +245,16 @@ void ValidateLetter(const LetterIdentifier& letter_identifier,
245 245
246void ValidateEnding(const std::string& ending_name, 246void ValidateEnding(const std::string& ending_name,
247 const EndingInfo& ending_info) { 247 const EndingInfo& ending_info) {
248 if (ending_info.defined_in.size() > 1) { 248 if (ending_info.defined_in.empty()) {
249 std::cout << "Ending " << ending_name
250 << " has no definition, but was referenced:" << std::endl;
251
252 for (const DoorIdentifier& door_identifier :
253 ending_info.doors_referenced_by) {
254 std::cout << " DOOR " << door_identifier.ShortDebugString()
255 << std::endl;
256 }
257 } else if (ending_info.defined_in.size() > 1) {
249 std::cout << "Ending " << ending_name 258 std::cout << "Ending " << ending_name
250 << " was defined in multiple places:" << std::endl; 259 << " was defined in multiple places:" << std::endl;
251 260