From 21fc6d1d2bd09c07d6684cebd89499b22b8633af Mon Sep 17 00:00:00 2001 From: Putnam Date: Wed, 1 Jan 2020 19:24:13 -0800 Subject: [PATCH] saving is back --- code/controllers/subsystem/persistence.dm | 20 +++++++++------- code/controllers/subsystem/vote.dm | 29 ++++++++++++----------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 2fe741d39a..e43c8f21a2 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -34,7 +34,8 @@ SUBSYSTEM_DEF(persistence) LoadRecentRulesets() LoadRecentMaps() LoadPhotoPersistence() - LoadSavedVotes() + for(var/client/C in GLOB.clients) + LoadSavedVote(C.ckey) if(CONFIG_GET(flag/use_antag_rep)) LoadAntagReputation() LoadRandomizedRecipes() @@ -209,14 +210,14 @@ SUBSYSTEM_DEF(persistence) return antag_rep = json_decode(json) -/datum/controller/subsystem/persistence/proc/LoadSavedVotes() - var/json_file = file("data/SavedVotes.json") +/datum/controller/subsystem/persistence/proc/LoadSavedVote(var/ckey) + var/json_file = file("data/player_saves/[copytext(ckey,1,2)]/[ckey]/SavedVotes.json") if(!fexists(json_file)) return var/list/json = json_decode(file2text(json_file)) if(!json) return - saved_votes = json["data"] + saved_votes[ckey] = json["data"] /datum/controller/subsystem/persistence/proc/SetUpTrophies(list/trophy_items) for(var/A in GLOB.trophy_cases) @@ -500,8 +501,9 @@ SUBSYSTEM_DEF(persistence) WRITE_FILE(json_file, json_encode(file_data)) /datum/controller/subsystem/persistence/proc/SaveSavedVotes() - var/json_file = file("data/SavedVotes.json") - var/list/file_data = list() - file_data["data"] = saved_votes - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) + for(var/ckey in saved_votes) + var/json_file = file("data/player_saves/[copytext(ckey,1,2)]/[ckey]/SavedVotes.json") + var/list/file_data = list() + file_data["data"] = saved_votes[ckey] + fdel(json_file) + WRITE_FILE(json_file, json_encode(file_data)) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index ddba7aafd0..85ecfb955f 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -485,14 +485,11 @@ SUBSYSTEM_DEF(vote) if(choice_descs.len >= i) . += "
  • [choice_descs[i]]
  • " . += "
    " - /* if(!(C.ckey in saved)) . += "(Save vote)" else . += "(Saved!)" - if((mode in SSpersistence.saved_votes) && (C.ckey in SSpersistence.saved_votes[mode])) - . += "(Load vote from save)" - */ + . += "(Load vote from save)" . += "(Reset votes)" if(SCORE_VOTING) var/list/myvote = voted[C.ckey] @@ -509,14 +506,11 @@ SUBSYSTEM_DEF(vote) if(choice_descs.len >= i) . += "
  • [choice_descs[i]]
  • " . += "
    " - /* if(!(C.ckey in saved)) . += "(Save vote)" else . += "(Saved!)" - if((mode in SSpersistence.saved_votes) && (C.ckey in SSpersistence.saved_votes[mode])) - . += "(Load vote from save)" - */ + . += "(Load vote from save)" . += "(Reset votes)" if(admin) . += "(Cancel Vote) " @@ -580,14 +574,21 @@ SUBSYSTEM_DEF(vote) voted -= usr.ckey if("save") if(usr.ckey in voted) - if(!(mode in SSpersistence.saved_votes)) - SSpersistence.saved_votes[mode] = list() - SSpersistence.saved_votes[mode][usr.ckey] = voted[usr.ckey] + if(!(usr.ckey in SSpersistence.saved_votes)) + SSpersistence.saved_votes[usr.ckey] = list() + SSpersistence.saved_votes[usr.ckey][mode] = voted[usr.ckey] saved += usr.ckey if("load") - if((mode in SSpersistence.saved_votes) && (usr.ckey in SSpersistence.saved_votes[mode])) - voted[usr.ckey] = SSpersistence.saved_votes[mode][usr.ckey] - saved += usr.ckey + if(!(usr.ckey in SSpersistence.saved_votes)) + SSpersistence.LoadSavedVote(usr.ckey) + if(!(usr.ckey in SSpersistence.saved_votes)) + SSpersistence.saved_votes[usr.ckey] = list() + if(usr.ckey in voted) + SSpersistence.saved_votes[usr.ckey][mode] = voted[usr.ckey] + else + SSpersistence.saved_votes[usr.ckey][mode] = list() + voted[usr.ckey] = SSpersistence.saved_votes[usr.ckey][mode] + saved += usr.ckey else if(vote_system == SCORE_VOTING) submit_vote(round(text2num(href_list["vote"])),round(text2num(href_list["score"])))