summary refs log tree commit diff stats
path: root/tools/assign_ids/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/assign_ids/main.cpp')
-rw-r--r--tools/assign_ids/main.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/assign_ids/main.cpp b/tools/assign_ids/main.cpp index 3a2f347..6eb41e3 100644 --- a/tools/assign_ids/main.cpp +++ b/tools/assign_ids/main.cpp
@@ -183,6 +183,29 @@ class AssignIds {
183 endings[h_ending.name()] = next_id_++; 183 endings[h_ending.name()] = next_id_++;
184 } 184 }
185 } 185 }
186
187 for (const HumanKeyholder& h_keyholder : h_room.keyholders()) {
188 if (!h_keyholder.has_key()) {
189 continue;
190 }
191
192 if (!id_mappings_.maps().contains(current_map_name) ||
193 !id_mappings_.maps()
194 .at(current_map_name)
195 .rooms()
196 .contains(h_room.name()) ||
197 !id_mappings_.maps()
198 .at(current_map_name)
199 .rooms()
200 .at(h_room.name())
201 .keyholders()
202 .contains(h_keyholder.name())) {
203 auto& maps = *id_mappings_.mutable_maps();
204 auto& rooms = *maps[current_map_name].mutable_rooms();
205 auto& keyholders = *rooms[h_room.name()].mutable_keyholders();
206 keyholders[h_keyholder.name()] = next_id_++;
207 }
208 }
186 } 209 }
187 210
188 void ProcessProgressivesFile(std::filesystem::path path) { 211 void ProcessProgressivesFile(std::filesystem::path path) {