diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 9a5244888f5..a0edca65295 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -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("[T.He] [T.is] a different species. You don't have the scientific knowledge to figure out [T.his] exact gender...") + var/show_descs = show_descriptors_to(user) if(show_descs) . += SPAN_NOTICE("[jointext(show_descs, "\n")]") diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c983972408e..28991a2cb2c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -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)