From ac557a1c1ca41291e61cccdaf22549ed54c898b8 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Fri, 29 Aug 2025 13:40:37 -0400 Subject: [Client] Last received item is remembered --- client/Archipelago/manager.gd | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'client') diff --git a/client/Archipelago/manager.gd b/client/Archipelago/manager.gd index d950cd6..e1c32b9 100644 --- a/client/Archipelago/manager.gd +++ b/client/Archipelago/manager.gd @@ -13,6 +13,7 @@ var connection_history = [] var client +var _localdata_file = "" var _received_indexes = [] var _last_new_item = -1 @@ -37,6 +38,22 @@ func saveSettings(): pass +func saveLocaldata(): + # Save the MW/slot specific settings to disk. + var dir = DirAccess.open("user://") + var folder = "archipelago_data" + if not dir.dir_exists(folder): + dir.make_dir(folder) + + var file = FileAccess.open(_localdata_file, FileAccess.WRITE) + + var data = [ + _last_new_item, + ] + file.store_var(data, true) + file.close() + + func connectToServer(): _received_indexes = [] _last_new_item = -1 @@ -99,7 +116,7 @@ func _process_item(item, index, from, flags): # Show a message about the item if it's new. if index != null and index > _last_new_item: _last_new_item = index - #saveLocaldata() + saveLocaldata() var player_name = "Unknown" if client._player_name_by_slot.has(from): @@ -172,6 +189,21 @@ func _client_connect_status(message): func _client_connected(): + _localdata_file = "user://archipelago_data/%s_%d" % [client._seed, client._slot] + _last_new_item = -1 + + if FileAccess.file_exists(_localdata_file): + var ap_file = FileAccess.open(_localdata_file, FileAccess.READ) + var localdata = ap_file.get_var(true) + ap_file.close() + + if typeof(localdata) != TYPE_ARRAY: + print("AP localdata file is corrupted") + localdata = [] + + if localdata.size() > 0: + _last_new_item = localdata[0] + emit_signal("ap_connected") -- cgit 1.4.1