From d79984b099c3f762b95d3b4257bef113d3a8d6ee Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 7 Sep 2025 15:42:00 -0400 Subject: Added door groups --- tools/assign_ids/main.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tools/assign_ids') 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 { ProcessMaps(datadir_path); ProcessSpecialIds(); ProcessProgressivesFile(datadir_path / "progressives.txtpb"); + ProcessDoorGroupsFile(datadir_path / "door_groups.txtpb"); WriteIds(ids_path); @@ -61,6 +62,7 @@ class AssignIds { for (const auto& [_, room] : map.rooms()) { UpdateNextId(room.panels()); UpdateNextId(room.masteries()); + UpdateNextId(room.keyholders()); } } @@ -68,6 +70,7 @@ class AssignIds { UpdateNextId(id_mappings_.letters()); UpdateNextId(id_mappings_.endings()); UpdateNextId(id_mappings_.progressives()); + UpdateNextId(id_mappings_.door_groups()); next_id_++; } @@ -267,6 +270,23 @@ class AssignIds { } } + void ProcessDoorGroupsFile(std::filesystem::path path) { + if (!std::filesystem::exists(path)) { + return; + } + + auto h_groups = ReadMessageFromFile(path.string()); + auto& groups = *output_.mutable_door_groups(); + + for (const HumanDoorGroup& h_group : h_groups.door_groups()) { + if (!id_mappings_.door_groups().contains(h_group.name())) { + groups[h_group.name()] = next_id_++; + } else { + groups[h_group.name()] = id_mappings_.door_groups().at(h_group.name()); + } + } + } + private: void UpdateNextId(const google::protobuf::Map& ids) { for (const auto& [_, id] : ids) { -- cgit 1.4.1