diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 149f66a5..36b6058b 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
" @@ -301,26 +302,26 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
" - switch(current_tab) - if (0) // Character Settings# - 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(path) //Show list of characters + 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 += "
" + switch(current_tab) + if (0) // Character Settings dat += "

Occupation Choices

" dat += "Set Occupation Preferences
" if(CONFIG_GET(flag/roundstart_traits)) @@ -379,24 +380,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) //Character Appearance if(2) - 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 += "
" - update_preview_icon() dat += "
" dat += "

Flavor Text

" @@ -981,7 +964,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 +1043,9 @@ 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(!gear_tab) gear_tab = GLOB.loadout_items[1] dat += "" @@ -1144,6 +1101,28 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" dat += "
[gear.description]
" + if(4) //Antag Preferences + 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 +2483,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..53cc37dc 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,8 @@ 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 return /datum/preferences/proc/update_character(current_version, savefile/S) @@ -56,6 +58,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["balls_fluid"] = /datum/reagent/consumable/semen if(features["breasts_fluid"]) features["breasts_fluid"] = /datum/reagent/consumable/milk + if(current_version < 23) + if(be_special) + WRITE_FILE(S["special_roles"], be_special) /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) @@ -91,7 +96,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 +218,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 +365,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 +591,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)