From cf638697c17ec186b5da88ea92fc005371c9eab7 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Mon, 27 Oct 2025 10:12:58 -0400 Subject: Assign stable IDs for shuffleable worldports --- tools/validator/human_processor.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'tools/validator/human_processor.cpp') diff --git a/tools/validator/human_processor.cpp b/tools/validator/human_processor.cpp index 407d951..ffa9765 100644 --- a/tools/validator/human_processor.cpp +++ b/tools/validator/human_processor.cpp @@ -570,12 +570,14 @@ class HumanProcessor { auto ids = ReadIdsFromYaml(path.string()); DoorIdentifier di; - PanelIdentifier pi; + PanelIdentifier pai; + PortIdentifier poi; KeyholderIdentifier ki; for (const auto& [map_name, map] : ids.maps()) { di.set_map(map_name); - pi.set_map(map_name); + pai.set_map(map_name); + poi.set_map(map_name); ki.set_map(map_name); for (const auto& [door_name, ap_id] : map.doors()) { @@ -586,13 +588,14 @@ class HumanProcessor { } for (const auto& [room_name, room] : map.rooms()) { - pi.set_room(room_name); + pai.set_room(room_name); + poi.set_room(room_name); ki.set_room(room_name); for (const auto& [panel_name, ap_id] : room.panels()) { - pi.set_name(panel_name); + pai.set_name(panel_name); - PanelInfo& panel_info = info_.panels[pi]; + PanelInfo& panel_info = info_.panels[pai]; panel_info.has_id = true; } @@ -606,6 +609,13 @@ class HumanProcessor { KeyholderInfo& keyholder_info = info_.keyholders[ki]; keyholder_info.has_id = true; } + + for (const auto& [port_name, ap_id] : room.ports()) { + poi.set_name(port_name); + + PortInfo& port_info = info_.ports[poi]; + port_info.has_id = true; + } } } -- cgit 1.4.1