diff options
Diffstat (limited to 'tools/util/ids_yaml_format.cpp')
| -rw-r--r-- | tools/util/ids_yaml_format.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
| diff --git a/tools/util/ids_yaml_format.cpp b/tools/util/ids_yaml_format.cpp index 71bfd63..c23c66b 100644 --- a/tools/util/ids_yaml_format.cpp +++ b/tools/util/ids_yaml_format.cpp | |||
| @@ -64,6 +64,13 @@ IdMappings ReadIdsFromYaml(const std::string& filename) { | |||
| 64 | keyholder_it.second.as<uint64_t>(); | 64 | keyholder_it.second.as<uint64_t>(); |
| 65 | } | 65 | } |
| 66 | } | 66 | } |
| 67 | |||
| 68 | if (room_it.second["ports"]) { | ||
| 69 | for (const auto& port_it : room_it.second["ports"]) { | ||
| 70 | (*room_ids.mutable_ports())[port_it.first.as<std::string>()] = | ||
| 71 | port_it.second.as<uint64_t>(); | ||
| 72 | } | ||
| 73 | } | ||
| 67 | } | 74 | } |
| 68 | } | 75 | } |
| 69 | 76 | ||
| @@ -73,6 +80,10 @@ IdMappings ReadIdsFromYaml(const std::string& filename) { | |||
| 73 | door_it.second.as<uint64_t>(); | 80 | door_it.second.as<uint64_t>(); |
| 74 | } | 81 | } |
| 75 | } | 82 | } |
| 83 | |||
| 84 | if (map_it.second["rte"]) { | ||
| 85 | map_ids.set_rte(map_it.second["rte"].as<uint64_t>()); | ||
| 86 | } | ||
| 76 | } | 87 | } |
| 77 | } | 88 | } |
| 78 | 89 | ||
| @@ -146,6 +157,12 @@ void WriteIdsAsYaml(const IdMappings& ids, const std::string& filename) { | |||
| 146 | keyholder_id; | 157 | keyholder_id; |
| 147 | }); | 158 | }); |
| 148 | 159 | ||
| 160 | OperateOnSortedMap( | ||
| 161 | room_ids.ports(), | ||
| 162 | [&room_node](const std::string& port_name, uint64_t port_id) { | ||
| 163 | room_node["ports"][port_name] = port_id; | ||
| 164 | }); | ||
| 165 | |||
| 149 | map_node["rooms"][room_name] = std::move(room_node); | 166 | map_node["rooms"][room_name] = std::move(room_node); |
| 150 | }); | 167 | }); |
| 151 | 168 | ||
| @@ -155,6 +172,10 @@ void WriteIdsAsYaml(const IdMappings& ids, const std::string& filename) { | |||
| 155 | map_node["doors"][door_name] = door_id; | 172 | map_node["doors"][door_name] = door_id; |
| 156 | }); | 173 | }); |
| 157 | 174 | ||
| 175 | if (map_ids.has_rte()) { | ||
| 176 | map_node["rte"] = map_ids.rte(); | ||
| 177 | } | ||
| 178 | |||
| 158 | result["maps"][map_name] = std::move(map_node); | 179 | result["maps"][map_name] = std::move(map_node); |
| 159 | }); | 180 | }); |
| 160 | 181 | ||
