From c644495e5e26e156e74c577b8d530a6c4665ae4c Mon Sep 17 00:00:00 2001 From: Putnam Date: Tue, 29 Sep 2020 21:07:41 -0700 Subject: [PATCH] dodgin bullets --- code/modules/client/preferences.dm | 1 + code/modules/client/preferences_savefile.dm | 15 ++++++++------- code/modules/unit_tests/character_saving.dm | 4 ++++ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index a673012118..1d94c01c24 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -8,6 +8,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/client/parent //doohickeys for savefiles var/path + var/vr_path var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used var/max_save_slots = 16 diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 50a6f5e9dc..85bd7fe104 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -212,6 +212,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(!ckey) return path = "data/player_saves/[ckey[1]]/[ckey]/[filename]" + vr_path = "data/player_saves/[ckey[1]]/[ckey]/vore" /datum/preferences/proc/load_preferences() if(!path) @@ -609,9 +610,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["vore_flags"] >> vore_flags S["vore_taste"] >> vore_taste - var/vr_path = "data/player_saves/[parent.ckey[1]]/[parent.ckey]/vore/character[default_slot]_v2.json" - if(fexists(vr_path)) - var/list/json_from_file = json_decode(file2text(vr_path)) + var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json" + if(fexists(char_vr_path)) + var/list/json_from_file = json_decode(file2text(char_vr_path)) if(json_from_file) belly_prefs = json_from_file["belly_prefs"] //gear loadout @@ -880,11 +881,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["vore_flags"] , vore_flags) WRITE_FILE(S["vore_taste"] , vore_taste) - var/vr_path = "data/player_saves/[parent.ckey[1]]/[parent.ckey]/vore/character[default_slot]_v2.json" + var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json" var/belly_prefs_json = safe_json_encode(list("belly_prefs" = belly_prefs)) - if(fexists(vr_path)) - fdel(path) - text2file(belly_prefs_json,path) + if(fexists(char_vr_path)) + fdel(char_vr_path) + text2file(belly_prefs_json,char_vr_path) WRITE_FILE(S["persistent_scars"] , persistent_scars) WRITE_FILE(S["scars1"] , scars_list["1"]) diff --git a/code/modules/unit_tests/character_saving.dm b/code/modules/unit_tests/character_saving.dm index bdcb0f0276..8d978a630d 100644 --- a/code/modules/unit_tests/character_saving.dm +++ b/code/modules/unit_tests/character_saving.dm @@ -10,5 +10,9 @@ Fail("Flavor text is failing to save.") if(P.features["ooc_notes"] != "Bar") Fail("OOC text is failing to save.") + P.save_character() + P.load_character() + if(P.features["flavor_text"] != "Foo") + Fail("Repeated saving and loading possibly causing save deletion.") catch(var/exception/e) Fail("Failed to save and load character due to exception [e.file]:[e.line], [e.name]")