"
dat += "General Settings"
dat += "UI Style: [UI_style] "
@@ -981,7 +1000,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(jobban_isbanned(user, ROLE_SYNDICATE))
dat += "You are banned from antagonist roles."
- src.be_special = list()
+ be_special = list()
for (var/i in GLOB.hyper_special_roles)
@@ -1060,35 +1079,27 @@ GLOBAL_LIST_EMPTY(preferences_datums)
p_map += " (No longer exists)"
if(CONFIG_GET(flag/allow_map_voting))
dat += "Preferred Map: [p_map] "
-
- dat += " | "
-
- dat += "Special Role Settings"
-
- if(jobban_isbanned(user, ROLE_SYNDICATE))
- dat += "You are banned from antagonist roles."
- src.be_special = list()
-
-
- for (var/i in GLOB.special_roles)
- if(jobban_isbanned(user, i))
- dat += "Be [capitalize(i)]: BANNED "
- else
- var/days_remaining = null
- if(ispath(GLOB.special_roles[i]) && CONFIG_GET(flag/use_age_restriction_for_jobs)) //If it's a game mode antag, check if the player meets the minimum age
- var/mode_path = GLOB.special_roles[i]
- var/datum/game_mode/temp_mode = new mode_path
- days_remaining = temp_mode.get_remaining_days(user.client)
-
- if(days_remaining)
- dat += "Be [capitalize(i)]: \[IN [days_remaining] DAYS] "
- else
- dat += "Be [capitalize(i)]: [(i in be_special) ? "Enabled" : "Disabled"] "
- dat += "Midround Antagonist: [(toggles & MIDROUND_ANTAG) ? "Enabled" : "Disabled"] "
-
dat += " "
- if(3)
+ if(3) //Item Loadout
+ if(path)
+ var/savefile/S = new /savefile(path)
+ if(S)
+ dat += ""
+ var/name
+ var/unspaced_slots = 0
+ for(var/i=1, i<=max_save_slots, i++)
+ unspaced_slots++
+ if(unspaced_slots > 4)
+ dat += " "
+ unspaced_slots = 0
+ S.cd = "/character[i]"
+ S["real_name"] >> name
+ if(!name)
+ name = "+"
+ dat += "[name] "
+ dat += ""
+
if(!gear_tab)
gear_tab = GLOB.loadout_items[1]
dat += ""
@@ -1144,6 +1155,46 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "| [gear.description] | "
dat += " "
+ if(4) //Antag Preferences
+ if(path)
+ var/savefile/S = new /savefile(path)
+ if(S)
+ dat += ""
+ var/name
+ var/unspaced_slots = 0
+ for(var/i=1, i<=max_save_slots, i++)
+ unspaced_slots++
+ if(unspaced_slots > 4)
+ dat += " "
+ unspaced_slots = 0
+ S.cd = "/character[i]"
+ S["real_name"] >> name
+ if(!name)
+ name = "+"
+ dat += "[name] "
+ dat += ""
+ dat += ""
+ dat += "Special Role Settings"
+ if(jobban_isbanned(user, ROLE_SYNDICATE))
+ dat += "You are banned from antagonist roles."
+ be_special = list()
+
+ for (var/i in GLOB.special_roles)
+ if(jobban_isbanned(user, i))
+ dat += "Be [capitalize(i)]: BANNED "
+ else
+ var/days_remaining = null
+ if(ispath(GLOB.special_roles[i]) && CONFIG_GET(flag/use_age_restriction_for_jobs)) //If it's a game mode antag, check if the player meets the minimum age
+ var/mode_path = GLOB.special_roles[i]
+ var/datum/game_mode/temp_mode = new mode_path
+ days_remaining = temp_mode.get_remaining_days(user.client)
+
+ if(days_remaining)
+ dat += "Be [capitalize(i)]: \[IN [days_remaining] DAYS] "
+ else
+ dat += "Be [capitalize(i)]: [(i in be_special) ? "Enabled" : "Disabled"] "
+ dat += "Midround Antagonist: [(toggles & MIDROUND_ANTAG) ? "Enabled" : "Disabled"] "
+
dat += " "
if(!IsGuestKey(user.key))
@@ -2504,9 +2555,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("be_special")
var/be_special_type = href_list["be_special_type"]
if(be_special_type in be_special)
- be_special -= be_special_type
+ be_special -= list(be_special_type)
else
- be_special += be_special_type
+ be_special += list(be_special_type)
if("name")
be_random_name = !be_random_name
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 90b4d0d8..07847b1a 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
-#define SAVEFILE_VERSION_MAX 22
+#define SAVEFILE_VERSION_MAX 23
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -44,6 +44,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
/datum/preferences/proc/update_preferences(current_version, savefile/S)
if(current_version < 21)
clientfps = 60
+ if(current_version < 23)
+ S["be_special"] >> be_special
+ WRITE_FILE(S["be_special"], null)
+ WRITE_FILE(S["special_roles"], be_special)
return
/datum/preferences/proc/update_character(current_version, savefile/S)
@@ -91,7 +95,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["tgui_lock"] >> tgui_lock
S["buttons_locked"] >> buttons_locked
S["windowflash"] >> windowflashing
- S["be_special"] >> be_special
S["default_slot"] >> default_slot
@@ -214,7 +217,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["tgui_lock"], tgui_lock)
WRITE_FILE(S["buttons_locked"], buttons_locked)
WRITE_FILE(S["windowflash"], windowflashing)
- WRITE_FILE(S["be_special"], be_special)
WRITE_FILE(S["default_slot"], default_slot)
WRITE_FILE(S["toggles"], toggles)
WRITE_FILE(S["chat_toggles"], chat_toggles)
@@ -362,6 +364,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["job_engsec_med"] >> job_engsec_med
S["job_engsec_low"] >> job_engsec_low
+ //Antags
+ S["special_roles"] >> be_special
+
//Quirks
S["all_quirks"] >> all_quirks
@@ -585,22 +590,23 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["prefered_security_department"] , prefered_security_department)
//Jobs
- WRITE_FILE(S["joblessrole"] , joblessrole)
+ WRITE_FILE(S["joblessrole"] , joblessrole)
WRITE_FILE(S["job_civilian_high"] , job_civilian_high)
WRITE_FILE(S["job_civilian_med"] , job_civilian_med)
WRITE_FILE(S["job_civilian_low"] , job_civilian_low)
- WRITE_FILE(S["job_medsci_high"] , job_medsci_high)
+ WRITE_FILE(S["job_medsci_high"] , job_medsci_high)
WRITE_FILE(S["job_medsci_med"] , job_medsci_med)
WRITE_FILE(S["job_medsci_low"] , job_medsci_low)
- WRITE_FILE(S["job_engsec_high"] , job_engsec_high)
+ WRITE_FILE(S["job_engsec_high"] , job_engsec_high)
WRITE_FILE(S["job_engsec_med"] , job_engsec_med)
WRITE_FILE(S["job_engsec_low"] , job_engsec_low)
//Record Flavor Text
- WRITE_FILE(S["security_records"] , security_records)
- WRITE_FILE(S["medical_records"] , medical_records)
- //hide c-key
- WRITE_FILE(S["hide_ckey"] , hide_ckey)
- //Quirks
+ WRITE_FILE(S["security_records"] , security_records)
+ WRITE_FILE(S["medical_records"] , medical_records)
+
+ //Misc.
+ WRITE_FILE(S["special_roles"] , be_special) //Preferences don't load every character change
+ WRITE_FILE(S["hide_ckey"] , hide_ckey)
WRITE_FILE(S["all_quirks"] , all_quirks)
cit_character_pref_save(S)
|