From f3b490b10aeac32ba859b929ff13ff882d818a17 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 1 Nov 2025 14:32:04 -0400 Subject: Store stable IDs in multiworld state --- apworld/client/gamedata.gd | 4 ++++ apworld/client/manager.gd | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'apworld/client') diff --git a/apworld/client/gamedata.gd b/apworld/client/gamedata.gd index 3a35125..d7e3136 100644 --- a/apworld/client/gamedata.gd +++ b/apworld/client/gamedata.gd @@ -15,6 +15,7 @@ var symbol_item_ids = [] var anti_trap_ids = {} var location_name_by_id = {} var ending_display_name_by_name = {} +var port_id_by_ap_id = {} var kSYMBOL_ITEMS @@ -99,6 +100,9 @@ func load(data_bytes): var map_data = port_id_by_map_node_path[map.get_name()] map_data[port.get_path()] = port.get_id() + if port.has_ap_id(): + port_id_by_ap_id[port.get_ap_id()] = port.get_id() + for progressive in objects.get_progressives(): progressive_id_by_ap_id[progressive.get_ap_id()] = progressive.get_id() diff --git a/apworld/client/manager.gd b/apworld/client/manager.gd index aa07559..727d17a 100644 --- a/apworld/client/manager.gd +++ b/apworld/client/manager.gd @@ -472,7 +472,9 @@ func _client_connected(slot_data): var raw_pp = slot_data.get("port_pairings") for p1 in raw_pp.keys(): - port_pairings[int(p1)] = int(raw_pp[p1]) + port_pairings[gamedata.port_id_by_ap_id[int(p1)]] = gamedata.port_id_by_ap_id[int( + raw_pp[p1] + )] # Set up item locks. _item_locks = {} -- cgit 1.4.1