about 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.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/tools/assign_ids/main.cpp b/tools/assign_ids/main.cpp index 357566a..8010a9a 100644 --- a/tools/assign_ids/main.cpp +++ b/tools/assign_ids/main.cpp
@@ -65,6 +65,7 @@ class AssignIds {
65 UpdateNextId(room.panels()); 65 UpdateNextId(room.panels());
66 UpdateNextId(room.masteries()); 66 UpdateNextId(room.masteries());
67 UpdateNextId(room.keyholders()); 67 UpdateNextId(room.keyholders());
68 UpdateNextId(room.ports());
68 } 69 }
69 } 70 }
70 71
@@ -245,6 +246,37 @@ class AssignIds {
245 .at(h_keyholder.name()); 246 .at(h_keyholder.name());
246 } 247 }
247 } 248 }
249
250 for (const HumanPort& h_port : h_room.ports()) {
251 if (h_port.no_shuffle()) {
252 continue;
253 }
254
255 auto& maps = *output_.mutable_maps();
256 auto& rooms = *maps[current_map_name].mutable_rooms();
257 auto& ports = *rooms[h_room.name()].mutable_ports();
258
259 if (!id_mappings_.maps().contains(current_map_name) ||
260 !id_mappings_.maps()
261 .at(current_map_name)
262 .rooms()
263 .contains(h_room.name()) ||
264 !id_mappings_.maps()
265 .at(current_map_name)
266 .rooms()
267 .at(h_room.name())
268 .ports()
269 .contains(h_port.name())) {
270 ports[h_port.name()] = next_id_++;
271 } else {
272 ports[h_port.name()] = id_mappings_.maps()
273 .at(current_map_name)
274 .rooms()
275 .at(h_room.name())
276 .ports()
277 .at(h_port.name());
278 }
279 }
248 } 280 }
249 281
250 void ProcessSpecialIds() { 282 void ProcessSpecialIds() {