From cf82cb90d8e9db1c652edd1aee3d965f475e4018 Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Sun, 29 Sep 2024 19:26:34 -0700 Subject: [PATCH] Add a savefile migration to remove the device from nif paths --- .../client/preferences/migrations/15_nif_path.dm | 12 ++++++++++++ code/modules/client/preferences_savefile.dm | 12 +++++++++++- vorestation.dme | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 code/modules/client/preferences/migrations/15_nif_path.dm diff --git a/code/modules/client/preferences/migrations/15_nif_path.dm b/code/modules/client/preferences/migrations/15_nif_path.dm new file mode 100644 index 00000000000..1d23407220b --- /dev/null +++ b/code/modules/client/preferences/migrations/15_nif_path.dm @@ -0,0 +1,12 @@ +/// Moves nif stuff to it's own file +/datum/preferences/proc/migration_15_nif_path(datum/json_savefile/S) + var/datum/json_savefile/new_savefile = new /datum/json_savefile(nif_savefile_path(client_ckey)) + + for(var/slot in 1 to config.character_slots) + var/list/prefs = new_savefile.get_entry("character[slot]", null) + if(!islist(prefs)) + continue + prefs["nif_path"] = replacetext(prefs["nif_path"], "/device", "") + new_savefile.set_entry("character[slot]", prefs) + + new_savefile.save() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 9bdba72a23b..4111db2500e 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,5 +1,5 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 14 +#define SAVEFILE_VERSION_MAX 15 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -59,6 +59,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car log_debug("[client_ckey] preferences successfully migrated from [current_version] to v14.") to_chat(client, span_danger("v14 savefile migration complete.")) + // Migration for nifs, again, to get rid of the /device path + if(current_version < 15) + log_debug("[client_ckey] preferences migrating from [current_version] to v15....") + to_chat(client, span_danger("Migrating savefile from version [current_version] to v15...")) + + migration_15_nif_path(S) + + log_debug("[client_ckey] preferences successfully migrated from [current_version] to v15.") + to_chat(client, span_danger("v15 savefile migration complete.")) + /datum/preferences/proc/update_character(current_version, list/save_data) // Migration from BYOND savefiles to JSON: Important milemark. diff --git a/vorestation.dme b/vorestation.dme index 4028eed4376..6c1e1f9af8e 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2029,6 +2029,7 @@ #include "code\modules\client\preferences\middleware\_middleware.dm" #include "code\modules\client\preferences\migrations\13_preferences.dm" #include "code\modules\client\preferences\migrations\14_nifs.dm" +#include "code\modules\client\preferences\migrations\15_nif_path.dm" #include "code\modules\client\preferences\types\admin.dm" #include "code\modules\client\preferences\types\auto_fit_viewport.dm" #include "code\modules\client\preferences\types\chat.dm"