diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm
index 4dec0e05de9..8c6d4fe9f4c 100644
--- a/code/__HELPERS/sanitize_values.dm
+++ b/code/__HELPERS/sanitize_values.dm
@@ -22,7 +22,7 @@
//more specialised stuff
-/proc/sanitize_gender(gender,neuter=0,plural=0, default="male")
+/proc/sanitize_gender(gender,neuter=0,plural=1, default="male")
switch(gender)
if(MALE, FEMALE)
return gender
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 7274257f9c5..1fc3bd3c05b 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -65,6 +65,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/eye_color = "000" //Eye color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFF", "ethcolor" = "9c3030", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain")
+ var/list/genders = list(MALE, FEMALE, PLURAL)
+ var/list/friendlyGenders = list("Masculine (He/Him)" = "male", "Feminine (She/Her)" = "female", "Other (They/Them)" = "plural")
var/list/custom_names = list()
var/preferred_ai_core_display = "Blue"
@@ -187,7 +189,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "[real_name]
"
if(!(AGENDER in pref_species.species_traits))
- dat += "Gender: [gender == MALE ? "Male" : "Female"]
"
+ var/dispGender
+ if(gender == MALE)
+ dispGender = "Masculine (He/Him)"
+ else if(gender == FEMALE)
+ dispGender = "Feminine (She/Her)"
+ else
+ dispGender = "Other (They/Them)"
+ dat += "Gender: [dispGender]
"
dat += "Age: [age]
"
dat += "Special Names:
"
@@ -1106,7 +1115,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("facial_hair_style")
var/new_facial_hair_style
- if(gender == MALE)
+ if(gender != FEMALE)
new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_male_list
else
new_facial_hair_style = input(user, "Choose your character's facial-hair style:", "Character Preference") as null|anything in GLOB.facial_hair_styles_female_list
@@ -1129,8 +1138,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/new_underwear
if(gender == MALE)
new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_m
- else
+ else if(gender == FEMALE)
new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_f
+ else
+ new_underwear = input(user, "Choose your character's underwear:", "Character Preference") as null|anything in GLOB.underwear_m + GLOB.underwear_f
if(new_underwear)
underwear = new_underwear
@@ -1138,8 +1149,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/new_undershirt
if(gender == MALE)
new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_m
- else
+ else if(gender == FEMALE)
new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_f
+ else
+ new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_m + GLOB.undershirt_f
if(new_undershirt)
undershirt = new_undershirt
@@ -1328,15 +1341,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(unlock_content)
toggles ^= MEMBER_PUBLIC
if("gender")
- if(gender == MALE)
- gender = FEMALE
- else
- gender = MALE
- underwear = random_underwear(gender)
- undershirt = random_undershirt(gender)
- socks = random_socks()
- facial_hair_style = random_facial_hair_style(gender)
- hair_style = random_hair_style(gender)
+ var/pickedGender = input(user, "Choose your gender.", "Character Preference", gender) as null|anything in friendlyGenders
+ if(pickedGender && friendlyGenders[pickedGender] != gender)
+ gender = friendlyGenders[pickedGender]
+ underwear = random_underwear(gender)
+ undershirt = random_undershirt(gender)
+ socks = random_socks()
+ facial_hair_style = random_facial_hair_style(gender)
+ hair_style = random_hair_style(gender)
if("hotkeys")
hotkeys = !hotkeys