diff options
Diffstat (limited to 'tools/assign_ids/main.cpp')
-rw-r--r-- | tools/assign_ids/main.cpp | 23 |
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) { |