Convert gender and pronoun from bay to TG (#19170)

* Convert gender and pronoun from pay to TG

* Remove HERM from biological gender init_possible_values because it won't work

* fix runtime error

---------

Co-authored-by: ShadowLarkens <shadowlarkens@gmail.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
Aura Dusklight
2026-02-25 01:00:04 +02:00
committed by GitHub
parent 3254a47ca7
commit 0964962220
13 changed files with 107 additions and 37 deletions
@@ -3,46 +3,39 @@
#define AUTOHISS_FULL 2
/datum/preferences
var/biological_gender = MALE
var/identifying_gender = MALE
var/vore_egg_type = "Egg" //The egg type they have.
var/autohiss = "Full" // VOREStation Add: Whether we have Autohiss on. I'm hijacking the egg panel bc this one has a shitton of unused space.
/datum/preferences/proc/set_biological_gender(var/gender)
biological_gender = gender
identifying_gender = gender
update_preference_by_type(/datum/preference/choiced/gender/biological, gender)
update_preference_by_type(/datum/preference/choiced/gender/identifying, gender)
/datum/category_item/player_setup_item/general/basic
name = "Basic"
sort_order = 1
/datum/category_item/player_setup_item/general/basic/load_character(list/save_data)
pref.biological_gender = save_data["gender"]
pref.identifying_gender = save_data["id_gender"]
pref.vore_egg_type = save_data["vore_egg_type"]
pref.autohiss = save_data["autohiss"]
/datum/category_item/player_setup_item/general/basic/save_character(list/save_data)
save_data["gender"] = pref.biological_gender
save_data["id_gender"] = pref.identifying_gender
save_data["vore_egg_type"] = pref.vore_egg_type
save_data["autohiss"] = pref.autohiss
/datum/category_item/player_setup_item/general/basic/sanitize_character()
pref.biological_gender = sanitize_inlist(pref.biological_gender, get_genders(), pick(get_genders()))
pref.identifying_gender = (pref.identifying_gender in all_genders_define_list) ? pref.identifying_gender : pref.biological_gender
pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, GLOB.global_vore_egg_types, initial(pref.vore_egg_type))
pref.autohiss = sanitize_inlist(pref.autohiss, list("Off", "Basic", "Full"), initial(pref.autohiss))
// Moved from /datum/preferences/proc/copy_to()
/datum/category_item/player_setup_item/general/basic/copy_to_mob(var/mob/living/carbon/human/character)
var/char_real_name = pref.read_preference(/datum/preference/name/real_name)
var/char_bio_gender = pref.read_preference(/datum/preference/choiced/gender/biological)
var/char_id_gender = pref.read_preference(/datum/preference/choiced/gender/identifying)
// Re-sanitize name on join.
// Fixes being able to swap from FBP to organic before round join to be organic with numbers in name.
char_real_name = sanitize_name(char_real_name, pref.species, is_FBP())
if(!char_real_name)
char_real_name = random_name(pref.identifying_gender, pref.species)
char_real_name = random_name(char_id_gender, pref.species)
if(CONFIG_GET(flag/humans_need_surnames))
var/firstspace = findtext(char_real_name, " ")
var/name_length = length(char_real_name)
@@ -58,8 +51,8 @@
character.nickname = pref.read_preference(/datum/preference/name/nickname)
character.gender = pref.biological_gender
character.identifying_gender = pref.identifying_gender
character.gender = char_bio_gender
character.identifying_gender = char_id_gender
character.vore_egg_type = pref.vore_egg_type
// VOREStation Add
@@ -81,8 +74,8 @@
data["real_name"] = pref.read_preference(/datum/preference/name/real_name)
data["be_random_name"] = pref.read_preference(/datum/preference/toggle/human/name_is_always_random)
data["nickname"] = pref.read_preference(/datum/preference/name/nickname)
data["biological_sex"] = gender2text(pref.biological_gender)
data["identifying_gender"] = gender2text(pref.identifying_gender)
data["biological_sex"] = gender2text(pref.read_preference(/datum/preference/choiced/gender/biological))
data["identifying_gender"] = gender2text(pref.read_preference(/datum/preference/choiced/gender/identifying))
data["age"] = pref.read_preference(/datum/preference/numeric/human/age)
data["bday_month"] = pref.read_preference(/datum/preference/numeric/human/bday_month)
data["bday_day"] = pref.read_preference(/datum/preference/numeric/human/bday_day)
@@ -211,7 +204,7 @@
return TOPIC_NOACTION
if("random_name")
pref.update_preference_by_type(/datum/preference/name/real_name, random_name(pref.identifying_gender, pref.species))
pref.update_preference_by_type(/datum/preference/name/real_name, random_name(pref.read_preference(/datum/preference/choiced/gender/identifying), pref.species))
return TOPIC_REFRESH
if("always_random_name")
@@ -245,7 +238,7 @@
if("id_gender")
var/new_gender = lowertext(params["gender"])
if(new_gender in all_genders_define_list)
pref.identifying_gender = new_gender
pref.update_preference_by_type(/datum/preference/choiced/gender/identifying, new_gender)
return TOPIC_REFRESH
if("age")
@@ -196,7 +196,7 @@
var/list/wing_styles = pref.get_available_styles(GLOB.wing_styles_list)
character.wing_style = wing_styles[pref.wing_style]
character.set_gender(pref.biological_gender)
character.set_gender(pref.read_preference(/datum/preference/choiced/gender/biological))
character.synthetic = pref.species == "Protean" ? GLOB.all_robolimbs["protean"] : null //Clear the existing var. (unless protean, then switch it to the normal protean limb)
var/list/organs_to_edit = list()
@@ -271,7 +271,7 @@
var/current_name = pref.read_preference(/datum/preference/name/real_name)
current_name = sanitize_name(current_name, pref.species)
if(!current_name)
current_name = random_name(pref.identifying_gender, pref.species)
current_name = random_name(pref.read_preference(/datum/preference/choiced/gender/identifying), pref.species)
pref.update_preference_by_type(/datum/preference/name/real_name, current_name)
/datum/category_item/player_setup_item/general/body/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
@@ -756,7 +756,7 @@
var/prev_species = pref.species
pref.species = params["species"]
if(prev_species != pref.species)
if(!(pref.biological_gender in mob_species.genders))
if(!(pref.read_preference(/datum/preference/choiced/gender/biological) in mob_species.genders))
pref.set_biological_gender(mob_species.genders[1])
pref.custom_species = null
//grab one of the valid hair styles for the newly chosen species
@@ -67,7 +67,8 @@
for(var/datum/category_group/underwear/WRC in GLOB.global_underwear.categories)
for(var/datum/category_item/underwear/WRI in WRC.items)
if(WRI.is_default(pref.identifying_gender ? pref.identifying_gender : MALE))
var/id_gender = pref.read_preference(/datum/preference/choiced/gender/identifying)
if(WRI.is_default(id_gender ? id_gender : MALE))
pref.all_underwear[WRC.name] = WRI.name
break