diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 149f66a5..60b5c8b3 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -289,6 +289,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Character Appearance" dat += "Loadout" dat += "Game Preferences" + dat += "Antagonist Preferences" if(!path) dat += "
Please create an account to save your preferences
" @@ -913,6 +914,24 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" if (1) // Game 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 += "

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 += "" dat += "
[gear.description]
" + 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)