diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2025-08-29 13:40:37 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2025-08-29 13:40:37 -0400 |
commit | ac557a1c1ca41291e61cccdaf22549ed54c898b8 (patch) | |
tree | a7fb6c17cf4c3b1eae230af4431d448b73d07156 /client/Archipelago/manager.gd | |
parent | 8566f6e7fb54f5f52241ac86ebd1a6636ceb4a08 (diff) | |
download | lingo2-archipelago-ac557a1c1ca41291e61cccdaf22549ed54c898b8.tar.gz lingo2-archipelago-ac557a1c1ca41291e61cccdaf22549ed54c898b8.tar.bz2 lingo2-archipelago-ac557a1c1ca41291e61cccdaf22549ed54c898b8.zip |
[Client] Last received item is remembered
Diffstat (limited to 'client/Archipelago/manager.gd')
-rw-r--r-- | client/Archipelago/manager.gd | 34 |
1 files changed, 33 insertions, 1 deletions
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 = [] | |||
13 | 13 | ||
14 | var client | 14 | var client |
15 | 15 | ||
16 | var _localdata_file = "" | ||
16 | var _received_indexes = [] | 17 | var _received_indexes = [] |
17 | var _last_new_item = -1 | 18 | var _last_new_item = -1 |
18 | 19 | ||
@@ -37,6 +38,22 @@ func saveSettings(): | |||
37 | pass | 38 | pass |
38 | 39 | ||
39 | 40 | ||
41 | func saveLocaldata(): | ||
42 | # Save the MW/slot specific settings to disk. | ||
43 | var dir = DirAccess.open("user://") | ||
44 | var folder = "archipelago_data" | ||
45 | if not dir.dir_exists(folder): | ||
46 | dir.make_dir(folder) | ||
47 | |||
48 | var file = FileAccess.open(_localdata_file, FileAccess.WRITE) | ||
49 | |||
50 | var data = [ | ||
51 | _last_new_item, | ||
52 | ] | ||
53 | file.store_var(data, true) | ||
54 | file.close() | ||
55 | |||
56 | |||
40 | func connectToServer(): | 57 | func connectToServer(): |
41 | _received_indexes = [] | 58 | _received_indexes = [] |
42 | _last_new_item = -1 | 59 | _last_new_item = -1 |
@@ -99,7 +116,7 @@ func _process_item(item, index, from, flags): | |||
99 | # Show a message about the item if it's new. | 116 | # Show a message about the item if it's new. |
100 | if index != null and index > _last_new_item: | 117 | if index != null and index > _last_new_item: |
101 | _last_new_item = index | 118 | _last_new_item = index |
102 | #saveLocaldata() | 119 | saveLocaldata() |
103 | 120 | ||
104 | var player_name = "Unknown" | 121 | var player_name = "Unknown" |
105 | if client._player_name_by_slot.has(from): | 122 | if client._player_name_by_slot.has(from): |
@@ -172,6 +189,21 @@ func _client_connect_status(message): | |||
172 | 189 | ||
173 | 190 | ||
174 | func _client_connected(): | 191 | func _client_connected(): |
192 | _localdata_file = "user://archipelago_data/%s_%d" % [client._seed, client._slot] | ||
193 | _last_new_item = -1 | ||
194 | |||
195 | if FileAccess.file_exists(_localdata_file): | ||
196 | var ap_file = FileAccess.open(_localdata_file, FileAccess.READ) | ||
197 | var localdata = ap_file.get_var(true) | ||
198 | ap_file.close() | ||
199 | |||
200 | if typeof(localdata) != TYPE_ARRAY: | ||
201 | print("AP localdata file is corrupted") | ||
202 | localdata = [] | ||
203 | |||
204 | if localdata.size() > 0: | ||
205 | _last_new_item = localdata[0] | ||
206 | |||
175 | emit_signal("ap_connected") | 207 | emit_signal("ap_connected") |
176 | 208 | ||
177 | 209 | ||