Fixes ambiguous_genders to only obscure gender from other species (#7460)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Fixes #7163 

Previously, species with `ambiguous_genders = TRUE` would be forced to
display they pronouns when examined by anyone, even by themselves and
other members of the same species, as well as ghosts and silicons. Now,
as the var's comment intended, pronouns are properly displayed if
examined by a member of the same species, ghosts and/or silicons.
Otherwise, it'll be displayed as they. Also added a message at the
bottom of the examine for further context.

### When examined by outsider:

<img width="633" height="279" alt="image"
src="https://github.com/user-attachments/assets/404baaa3-1817-47d8-b295-0dfe954e345c"
/>

### When examined by kin (or yourself):

<img width="442" height="213" alt="image"
src="https://github.com/user-attachments/assets/85fc86f8-1473-4f8f-9f47-696e0ac6c551"
/>

## Why It's Good For The Game

Bug fix & consistency

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Please note that
maintainers freely reserve the right to remove and add tags should they
deem it appropriate. You can attempt to finagle the system all you want,
but it's best to shoot for clear communication right off the bat. -->

:cl:Chelxox
fix: Species which gender definition is unknown/undefinable to outsiders
now display their proper pronouns when examined by members of their own
species, ghosts and silicons, whilst maintaining "they" pronouns to
those who don't are not members of the same species.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
This commit is contained in:
chel
2026-01-08 01:33:32 -05:00
committed by GitHub
parent 9479645ba1
commit a42406d731
2 changed files with 15 additions and 6 deletions
@@ -80,17 +80,24 @@
var/skipface = (wear_mask && (wear_mask.inv_hide_flags & HIDEFACE)) || (head && (head.inv_hide_flags & HIDEFACE))
var/datum/gender/T = GLOB.gender_datums[get_visible_gender()]
var/gender_obscured_by_species = FALSE // for different species examine
if((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE)) //big suits/masks/helmets make it hard to tell their gender
T = GLOB.gender_datums[PLURAL]
else if(species && species.ambiguous_genders)
if(ishuman(user))
// ghosts are omnipotent and omniscient. borgs are logical and precise. whatever. they identify anyone's gender
if(issilicon(user) || isobserver(user))
else if(ishuman(user))
var/mob/living/carbon/human/H = user
// only obscure gender if examiner is a different species
if(H.species && !istype(species, H.species))
T = GLOB.gender_datums[PLURAL]// Species with ambiguous_genders will not show their true gender upon examine if the examiner is not also the same species.
if(!(issilicon(user) || isobserver(user))) // Ghosts and borgs are all knowing
T = GLOB.gender_datums[PLURAL]
gender_obscured_by_species = TRUE
else
// non-human, non-silicon, non-observer examining
T = GLOB.gender_datums[PLURAL]
gender_obscured_by_species = TRUE
//! Just in case someone VVs the gender to something strange.
//! It'll runtime anyway when it hits usages, better to CRASH() now with a helpful message.
@@ -481,6 +488,10 @@
. += applying_pressure
// Add message if gender is obscured by species differences
if(gender_obscured_by_species)
. += SPAN_INFO("<i>[T.He] [T.is] a different species. You don't have the scientific knowledge to figure out [T.his] exact gender...</i>")
var/show_descs = show_descriptors_to(user)
if(show_descs)
. += SPAN_NOTICE("[jointext(show_descs, "\n")]")
@@ -869,9 +869,7 @@
/mob/living/carbon/human/get_visible_gender()
if(wear_suit && wear_suit.inv_hide_flags & HIDEJUMPSUIT && ((head && head.inv_hide_flags & HIDEMASK) || wear_mask))
return PLURAL //plural is the gender-neutral default
if(species)
if(species.ambiguous_genders)
return PLURAL // regardless of what you're wearing, your gender can't be figured out
//! attention! ambiguous_genders is now handled contextually in examine.dm based on who is examining
return get_gender()
/mob/living/carbon/human/proc/increase_germ_level(n)