diff options
Diffstat (limited to 'tools/util/ids_yaml_format.cpp')
| -rw-r--r-- | tools/util/ids_yaml_format.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
| diff --git a/tools/util/ids_yaml_format.cpp b/tools/util/ids_yaml_format.cpp index f72f60e..5b9113b 100644 --- a/tools/util/ids_yaml_format.cpp +++ b/tools/util/ids_yaml_format.cpp | |||
| @@ -56,6 +56,21 @@ IdMappings ReadIdsFromYaml(const std::string& filename) { | |||
| 56 | mastery_it.second.as<uint64_t>(); | 56 | mastery_it.second.as<uint64_t>(); |
| 57 | } | 57 | } |
| 58 | } | 58 | } |
| 59 | |||
| 60 | if (room_it.second["keyholders"]) { | ||
| 61 | for (const auto& keyholder_it : room_it.second["keyholders"]) { | ||
| 62 | (*room_ids.mutable_keyholders())[keyholder_it.first | ||
| 63 | .as<std::string>()] = | ||
| 64 | keyholder_it.second.as<uint64_t>(); | ||
| 65 | } | ||
| 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 | } | ||
| 59 | } | 74 | } |
| 60 | } | 75 | } |
| 61 | 76 | ||
| @@ -89,6 +104,20 @@ IdMappings ReadIdsFromYaml(const std::string& filename) { | |||
| 89 | } | 104 | } |
| 90 | } | 105 | } |
| 91 | 106 | ||
| 107 | if (document["progressives"]) { | ||
| 108 | for (const auto& prog_it : document["progressives"]) { | ||
| 109 | (*result.mutable_progressives())[prog_it.first.as<std::string>()] = | ||
| 110 | prog_it.second.as<uint64_t>(); | ||
| 111 | } | ||
| 112 | } | ||
| 113 | |||
| 114 | if (document["door_groups"]) { | ||
| 115 | for (const auto& group_it : document["door_groups"]) { | ||
| 116 | (*result.mutable_door_groups())[group_it.first.as<std::string>()] = | ||
| 117 | group_it.second.as<uint64_t>(); | ||
| 118 | } | ||
| 119 | } | ||
| 120 | |||
| 92 | return result; | 121 | return result; |
| 93 | } | 122 | } |
| 94 | 123 | ||
| @@ -117,6 +146,19 @@ void WriteIdsAsYaml(const IdMappings& ids, const std::string& filename) { | |||
| 117 | mastery_id; | 146 | mastery_id; |
| 118 | }); | 147 | }); |
| 119 | 148 | ||
| 149 | OperateOnSortedMap(room_ids.keyholders(), | ||
| 150 | [&room_node](const std::string& keyholder_name, | ||
| 151 | uint64_t keyholder_id) { | ||
| 152 | room_node["keyholders"][keyholder_name] = | ||
| 153 | keyholder_id; | ||
| 154 | }); | ||
| 155 | |||
| 156 | OperateOnSortedMap( | ||
| 157 | room_ids.ports(), | ||
| 158 | [&room_node](const std::string& port_name, uint64_t port_id) { | ||
| 159 | room_node["ports"][port_name] = port_id; | ||
| 160 | }); | ||
| 161 | |||
| 120 | map_node["rooms"][room_name] = std::move(room_node); | 162 | map_node["rooms"][room_name] = std::move(room_node); |
| 121 | }); | 163 | }); |
| 122 | 164 | ||
| @@ -144,6 +186,16 @@ void WriteIdsAsYaml(const IdMappings& ids, const std::string& filename) { | |||
| 144 | result["special"][special_name] = special_id; | 186 | result["special"][special_name] = special_id; |
| 145 | }); | 187 | }); |
| 146 | 188 | ||
| 189 | OperateOnSortedMap(ids.progressives(), | ||
| 190 | [&result](const std::string& prog_name, uint64_t prog_id) { | ||
| 191 | result["progressives"][prog_name] = prog_id; | ||
| 192 | }); | ||
| 193 | |||
| 194 | OperateOnSortedMap(ids.door_groups(), [&result](const std::string& group_name, | ||
| 195 | uint64_t group_id) { | ||
| 196 | result["door_groups"][group_name] = group_id; | ||
| 197 | }); | ||
| 198 | |||
| 147 | std::ofstream output_stream(filename); | 199 | std::ofstream output_stream(filename); |
| 148 | output_stream << result << std::endl; | 200 | output_stream << result << std::endl; |
| 149 | } | 201 | } |
