From c0c5431800d0306d01814e9902566c9b4fc9220b Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Thu, 7 Aug 2025 17:18:47 -0400 Subject: Assign AP IDs to doors and panels --- tools/datapacker/main.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tools/datapacker') diff --git a/tools/datapacker/main.cpp b/tools/datapacker/main.cpp index 1dcd109..4b26141 100644 --- a/tools/datapacker/main.cpp +++ b/tools/datapacker/main.cpp @@ -42,6 +42,7 @@ class DataPacker { ProcessConnectionsFile(datadir_path / "connections.txtpb", std::nullopt); ProcessMaps(datadir_path); + ProcessIdsFile(datadir_path / "ids.txtpb"); { std::ofstream outputfile(outputpath_); @@ -389,6 +390,26 @@ class DataPacker { } } + void ProcessIdsFile(std::filesystem::path path) { + auto ids = ReadMessageFromFile(path.string()); + + for (const auto& [map_name, map] : ids.maps()) { + for (const auto& [door_name, ap_id] : map.doors()) { + uint64_t door_id = + container_.FindOrAddDoor(map_name, door_name, std::nullopt); + container_.all_objects().mutable_doors(door_id)->set_ap_id(ap_id); + } + + for (const auto& [room_name, room] : map.rooms()) { + for (const auto& [panel_name, ap_id] : room.panels()) { + uint64_t panel_id = container_.FindOrAddPanel( + map_name, room_name, panel_name, std::nullopt, std::nullopt); + container_.all_objects().mutable_panels(panel_id)->set_ap_id(ap_id); + } + } + } + } + std::string mapdir_; std::string outputpath_; -- cgit 1.4.1