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