about summary refs log tree commit diff stats
path: root/tools/util
diff options
context:
space:
mode:
Diffstat (limited to 'tools/util')
-rw-r--r--tools/util/ids_yaml_format.cpp21
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