diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index 43fe69f0f2..efeec7d02e 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -127,7 +127,8 @@ var/list/outfits_decls_by_type_ if(uniform) H.equip_to_slot_or_del(new uniform(H),slot_w_uniform) if(suit) - H.equip_to_slot_or_del(new suit(H),slot_wear_suit) + if(!(H.client?.prefs?.no_jacket)) + H.equip_to_slot_or_del(new suit(H),slot_wear_suit) if(back) H.equip_to_slot_or_del(new back(H),slot_back) if(belt) diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index acb568c6d8..4d05ff2a8d 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -426,6 +426,8 @@ var/global/datum/controller/occupations/job_master //if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head) // custom_equip_leftovers += thing //else + if(G.slot == slot_wear_suit && H.client?.prefs?.no_jacket) //RS ADD + continue if(G.slot == slot_shoes && H.client?.prefs?.shoe_hater) //RS ADD continue if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot)) @@ -453,6 +455,8 @@ var/global/datum/controller/occupations/job_master // If some custom items could not be equipped before, try again now. for(var/thing in custom_equip_leftovers) var/datum/gear/G = gear_datums[thing] + if(G.slot == slot_wear_suit && H.client?.prefs?.no_jacket) //RS ADD + continue if(G.slot == slot_shoes && H.client?.prefs?.shoe_hater) //RS ADD continue if(G.slot in custom_equip_slots) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 27dc98a4dc..2744698467 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -17,6 +17,7 @@ pref.communicator_visibility = save_data["communicator_visibility"] pref.ringtone = save_data["ringtone"] pref.shoe_hater = save_data["shoe_hater"] + pref.no_jacket = save_data["no_jacket"] /datum/category_item/player_setup_item/general/equipment/save_character(list/save_data) save_data["all_underwear"] = pref.all_underwear @@ -30,6 +31,7 @@ save_data["communicator_visibility"] = pref.communicator_visibility save_data["ringtone"] = pref.ringtone save_data["shoe_hater"] = pref.shoe_hater + save_data["no_jacket"] = pref.no_jacket var/global/list/valid_ringtones = list( "beep", @@ -136,6 +138,7 @@ var/global/list/valid_ringtones = list( . += "Communicator Visibility: [(pref.communicator_visibility) ? "Yes" : "No"]
" . += "Ringtone (leave blank for job default): [pref.ringtone]
" . += "Spawn With Shoes:[(pref.shoe_hater) ? "No" : "Yes"]
" //RS Addition + . += "Spawn With Jacket:[(pref.no_jacket) ? "No" : "Yes"]
" return jointext(.,null) @@ -215,5 +218,10 @@ var/global/list/valid_ringtones = list( pref.shoe_hater = !pref.shoe_hater return TOPIC_REFRESH //RS ADD END + else if(href_list["toggle_jacket"]) //RS ADD START + if(CanUseTopic(user)) + pref.no_jacket = !pref.no_jacket + return TOPIC_REFRESH + //RS ADD END return ..() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 30b1ffad3e..d628cd26f2 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -26,6 +26,7 @@ var/list/preferences_datums = list() var/backbag = 2 //backpack type var/pdachoice = 1 //PDA type var/shoe_hater = FALSE //RS ADD - if true, will spawn with no shoes + var/no_jacket = FALSE //if true, will not spawn with outfit's jacket/outer layer var/h_style = "Bald" //Hair type var/grad_style = "none" //Gradient style var/f_style = "Shaved" //Face hair type