summary refs log tree commit diff stats
path: root/tools/validator/human_processor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/validator/human_processor.cpp')
-rw-r--r--tools/validator/human_processor.cpp20
1 files changed, 19 insertions, 1 deletions
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 {
62 } 62 }
63 63
64 void ProcessMetadataFile(std::filesystem::path path, 64 void ProcessMetadataFile(std::filesystem::path path,
65 const std::string& current_map_name) { 65 const std::string& current_map_name) {
66 if (!std::filesystem::exists(path)) { 66 if (!std::filesystem::exists(path)) {
67 return; 67 return;
68 } 68 }
@@ -115,6 +115,10 @@ class HumanProcessor {
115 for (const HumanKeyholder& h_keyholder : h_room.keyholders()) { 115 for (const HumanKeyholder& h_keyholder : h_room.keyholders()) {
116 ProcessKeyholder(h_keyholder, current_map_name, h_room.name()); 116 ProcessKeyholder(h_keyholder, current_map_name, h_room.name());
117 } 117 }
118
119 for (const HumanEnding& h_ending : h_room.endings()) {
120 ProcessEnding(h_ending, current_map_name, h_room.name());
121 }
118 } 122 }
119 123
120 void ProcessPanel(const HumanPanel& h_panel, 124 void ProcessPanel(const HumanPanel& h_panel,
@@ -235,6 +239,20 @@ class HumanProcessor {
235 map_info.game_nodes[h_keyholder.path()].uses++; 239 map_info.game_nodes[h_keyholder.path()].uses++;
236 } 240 }
237 241
242 void ProcessEnding(const HumanEnding& h_ending,
243 const std::string& current_map_name,
244 const std::string& current_room_name) {
245 EndingInfo& ending_info = info_.endings[h_ending.name()];
246
247 RoomIdentifier room_identifier;
248 room_identifier.set_map(current_map_name);
249 room_identifier.set_name(current_room_name);
250 ending_info.defined_in.push_back(room_identifier);
251
252 MapInfo& map_info = info_.maps[current_map_name];
253 map_info.game_nodes[h_ending.path()].uses++;
254 }
255
238 void ProcessDoorsFile(std::filesystem::path path, 256 void ProcessDoorsFile(std::filesystem::path path,
239 const std::string& current_map_name) { 257 const std::string& current_map_name) {
240 if (!std::filesystem::exists(path)) { 258 if (!std::filesystem::exists(path)) {