From d77c73397b684faa55f0e95484ac89ca68bde1ad Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 20 Aug 2025 15:03:18 -0400 Subject: Added "endings" object type --- tools/validator/human_processor.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'tools/validator/human_processor.cpp') diff --git a/tools/validator/human_processor.cpp b/tools/validator/human_processor.cpp index af40980..5a7e78a 100644 --- a/tools/validator/human_processor.cpp +++ b/tools/validator/human_processor.cpp @@ -62,7 +62,7 @@ class HumanProcessor { } void ProcessMetadataFile(std::filesystem::path path, - const std::string& current_map_name) { + const std::string& current_map_name) { if (!std::filesystem::exists(path)) { return; } @@ -115,6 +115,10 @@ class HumanProcessor { for (const HumanKeyholder& h_keyholder : h_room.keyholders()) { ProcessKeyholder(h_keyholder, current_map_name, h_room.name()); } + + for (const HumanEnding& h_ending : h_room.endings()) { + ProcessEnding(h_ending, current_map_name, h_room.name()); + } } void ProcessPanel(const HumanPanel& h_panel, @@ -235,6 +239,20 @@ class HumanProcessor { map_info.game_nodes[h_keyholder.path()].uses++; } + void ProcessEnding(const HumanEnding& h_ending, + const std::string& current_map_name, + const std::string& current_room_name) { + EndingInfo& ending_info = info_.endings[h_ending.name()]; + + RoomIdentifier room_identifier; + room_identifier.set_map(current_map_name); + room_identifier.set_name(current_room_name); + ending_info.defined_in.push_back(room_identifier); + + MapInfo& map_info = info_.maps[current_map_name]; + map_info.game_nodes[h_ending.path()].uses++; + } + void ProcessDoorsFile(std::filesystem::path path, const std::string& current_map_name) { if (!std::filesystem::exists(path)) { -- cgit 1.4.1