Fix portable data folder reselection

This commit is contained in:
Alexander Sellite 2026-08-24 20:21:15 -04:00
parent ea4d38cb49
commit 45c903bd24
3 changed files with 39 additions and 2 deletions

View file

@ -134,6 +134,22 @@ func _run() -> void:
for settings_panel: SettingsPanel in settings_panels:
assert(settings_panel.get_node_or_null("%ExportProgression") == null)
assert(settings_panel.get_node_or_null("%ImportProgression") == null)
var settings_panel: SettingsPanel = settings_panels.front() as SettingsPanel
var unchanged_root: String = data_root.root_path
settings_panel.call("_choose_data_folder")
var data_folder_dialog := (
settings_panel.get("_data_folder_dialog") as FileDialog
)
assert(data_folder_dialog != null)
assert(data_folder_dialog.current_dir == unchanged_root)
data_folder_dialog.hide()
settings_panel.call("_change_data_folder", unchanged_root + "/")
await process_frame
assert(data_root.root_path == unchanged_root)
assert(
(settings_panel.get_node("%SettingsFeedback") as Label).text
== "this data folder is already active."
)
var save_slots_page := main.find_child(
"SaveSlotsPage", true, false
) as SaveSlotsPage
@ -141,6 +157,15 @@ func _run() -> void:
assert(save_slots_page.get_node("%ExportSlotButton") is Button)
assert(save_slots_page.get_node("%ImportSlotButton") is Button)
var unchanged_migration: Dictionary = (
PortableDataMigration.migrate_active_to(
data_root, unchanged_root + "/"
)
)
assert(bool(unchanged_migration.get("ok", false)))
assert(not bool(unchanged_migration.get("changed", true)))
assert(data_root.root_path == unchanged_root)
var migrated_root: String = data_root.root_path.get_base_dir().path_join(
"progression-migrated-data"
)
@ -148,6 +173,7 @@ func _run() -> void:
data_root, migrated_root
)
assert(bool(data_migration.get("ok", false)))
assert(bool(data_migration.get("changed", false)))
var migrated_save: String = migrated_root.path_join(
"player/player_save.nfsave"
)