diff options
Diffstat (limited to 'tools/util/ids_yaml_format.cpp')
| -rw-r--r-- | tools/util/ids_yaml_format.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
| diff --git a/tools/util/ids_yaml_format.cpp b/tools/util/ids_yaml_format.cpp index f72f60e..71bfd63 100644 --- a/tools/util/ids_yaml_format.cpp +++ b/tools/util/ids_yaml_format.cpp | |||
| @@ -56,6 +56,14 @@ 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 | } | ||
| 59 | } | 67 | } |
| 60 | } | 68 | } |
| 61 | 69 | ||
| @@ -89,6 +97,20 @@ IdMappings ReadIdsFromYaml(const std::string& filename) { | |||
| 89 | } | 97 | } |
| 90 | } | 98 | } |
| 91 | 99 | ||
| 100 | if (document["progressives"]) { | ||
| 101 | for (const auto& prog_it : document["progressives"]) { | ||
| 102 | (*result.mutable_progressives())[prog_it.first.as<std::string>()] = | ||
| 103 | prog_it.second.as<uint64_t>(); | ||
| 104 | } | ||
| 105 | } | ||
| 106 | |||
| 107 | if (document["door_groups"]) { | ||
| 108 | for (const auto& group_it : document["door_groups"]) { | ||
| 109 | (*result.mutable_door_groups())[group_it.first.as<std::string>()] = | ||
| 110 | group_it.second.as<uint64_t>(); | ||
| 111 | } | ||
| 112 | } | ||
| 113 | |||
| 92 | return result; | 114 | return result; |
| 93 | } | 115 | } |
| 94 | 116 | ||
| @@ -117,6 +139,13 @@ void WriteIdsAsYaml(const IdMappings& ids, const std::string& filename) { | |||
| 117 | mastery_id; | 139 | mastery_id; |
| 118 | }); | 140 | }); |
| 119 | 141 | ||
| 142 | OperateOnSortedMap(room_ids.keyholders(), | ||
| 143 | [&room_node](const std::string& keyholder_name, | ||
| 144 | uint64_t keyholder_id) { | ||
| 145 | room_node["keyholders"][keyholder_name] = | ||
| 146 | keyholder_id; | ||
| 147 | }); | ||
| 148 | |||
| 120 | map_node["rooms"][room_name] = std::move(room_node); | 149 | map_node["rooms"][room_name] = std::move(room_node); |
| 121 | }); | 150 | }); |
| 122 | 151 | ||
| @@ -144,6 +173,16 @@ void WriteIdsAsYaml(const IdMappings& ids, const std::string& filename) { | |||
| 144 | result["special"][special_name] = special_id; | 173 | result["special"][special_name] = special_id; |
| 145 | }); | 174 | }); |
| 146 | 175 | ||
| 176 | OperateOnSortedMap(ids.progressives(), | ||
| 177 | [&result](const std::string& prog_name, uint64_t prog_id) { | ||
| 178 | result["progressives"][prog_name] = prog_id; | ||
| 179 | }); | ||
| 180 | |||
| 181 | OperateOnSortedMap(ids.door_groups(), [&result](const std::string& group_name, | ||
| 182 | uint64_t group_id) { | ||
| 183 | result["door_groups"][group_name] = group_id; | ||
| 184 | }); | ||
| 185 | |||
| 147 | std::ofstream output_stream(filename); | 186 | std::ofstream output_stream(filename); |
| 148 | output_stream << result << std::endl; | 187 | output_stream << result << std::endl; |
| 149 | } | 188 | } |
