diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-07 15:42:00 -0400 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-09-07 15:42:00 -0400 |
| commit | d79984b099c3f762b95d3b4257bef113d3a8d6ee (patch) | |
| tree | bcb647c4734b9ddecb465f818e06efc899482f4e /tools/assign_ids | |
| parent | 8ab6132f99e9a033c170310b2d88a7312e46a153 (diff) | |
| download | lingo2-archipelago-d79984b099c3f762b95d3b4257bef113d3a8d6ee.tar.gz lingo2-archipelago-d79984b099c3f762b95d3b4257bef113d3a8d6ee.tar.bz2 lingo2-archipelago-d79984b099c3f762b95d3b4257bef113d3a8d6ee.zip | |
Added door groups
Diffstat (limited to 'tools/assign_ids')
| -rw-r--r-- | tools/assign_ids/main.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
| diff --git a/tools/assign_ids/main.cpp b/tools/assign_ids/main.cpp index e3add66..d212767 100644 --- a/tools/assign_ids/main.cpp +++ b/tools/assign_ids/main.cpp | |||
| @@ -42,6 +42,7 @@ class AssignIds { | |||
| 42 | ProcessMaps(datadir_path); | 42 | ProcessMaps(datadir_path); |
| 43 | ProcessSpecialIds(); | 43 | ProcessSpecialIds(); |
| 44 | ProcessProgressivesFile(datadir_path / "progressives.txtpb"); | 44 | ProcessProgressivesFile(datadir_path / "progressives.txtpb"); |
| 45 | ProcessDoorGroupsFile(datadir_path / "door_groups.txtpb"); | ||
| 45 | 46 | ||
| 46 | WriteIds(ids_path); | 47 | WriteIds(ids_path); |
| 47 | 48 | ||
| @@ -61,6 +62,7 @@ class AssignIds { | |||
| 61 | for (const auto& [_, room] : map.rooms()) { | 62 | for (const auto& [_, room] : map.rooms()) { |
| 62 | UpdateNextId(room.panels()); | 63 | UpdateNextId(room.panels()); |
| 63 | UpdateNextId(room.masteries()); | 64 | UpdateNextId(room.masteries()); |
| 65 | UpdateNextId(room.keyholders()); | ||
| 64 | } | 66 | } |
| 65 | } | 67 | } |
| 66 | 68 | ||
| @@ -68,6 +70,7 @@ class AssignIds { | |||
| 68 | UpdateNextId(id_mappings_.letters()); | 70 | UpdateNextId(id_mappings_.letters()); |
| 69 | UpdateNextId(id_mappings_.endings()); | 71 | UpdateNextId(id_mappings_.endings()); |
| 70 | UpdateNextId(id_mappings_.progressives()); | 72 | UpdateNextId(id_mappings_.progressives()); |
| 73 | UpdateNextId(id_mappings_.door_groups()); | ||
| 71 | 74 | ||
| 72 | next_id_++; | 75 | next_id_++; |
| 73 | } | 76 | } |
| @@ -267,6 +270,23 @@ class AssignIds { | |||
| 267 | } | 270 | } |
| 268 | } | 271 | } |
| 269 | 272 | ||
| 273 | void ProcessDoorGroupsFile(std::filesystem::path path) { | ||
| 274 | if (!std::filesystem::exists(path)) { | ||
| 275 | return; | ||
| 276 | } | ||
| 277 | |||
| 278 | auto h_groups = ReadMessageFromFile<HumanDoorGroups>(path.string()); | ||
| 279 | auto& groups = *output_.mutable_door_groups(); | ||
| 280 | |||
| 281 | for (const HumanDoorGroup& h_group : h_groups.door_groups()) { | ||
| 282 | if (!id_mappings_.door_groups().contains(h_group.name())) { | ||
| 283 | groups[h_group.name()] = next_id_++; | ||
| 284 | } else { | ||
| 285 | groups[h_group.name()] = id_mappings_.door_groups().at(h_group.name()); | ||
| 286 | } | ||
| 287 | } | ||
| 288 | } | ||
| 289 | |||
| 270 | private: | 290 | private: |
| 271 | void UpdateNextId(const google::protobuf::Map<std::string, uint64_t>& ids) { | 291 | void UpdateNextId(const google::protobuf::Map<std::string, uint64_t>& ids) { |
| 272 | for (const auto& [_, id] : ids) { | 292 | for (const auto& [_, id] : ids) { |
