From c05d2c1572d6ba83f4fe402dcf8790313cfd9f8a Mon Sep 17 00:00:00 2001
From: Ghommie <42542238+Ghommie@users.noreply.github.com>
Date: Wed, 25 Mar 2020 17:08:09 +0100
Subject: [PATCH] Making it actually work.
---
code/modules/client/preferences.dm | 8 +++---
.../code/modules/arousal/genitals.dm | 27 ++++++++++++-------
2 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 1b280baa56..424b913ece 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -761,7 +761,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += " Change
"
dat += "Penis Shape: [features["cock_shape"]]"
dat += "Penis Length: [features["cock_length"]] inch(es)"
- dat += "Penis Visibility:[features["cock_visibility"]]"
+ dat += "Penis Visibility:[features["cock_visibility"]]"
dat += "Has Testicles:[features["has_balls"] == TRUE ? "Yes" : "No"]"
if(features["has_balls"])
if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE)
@@ -770,7 +770,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else
dat += "Testicles Color:
"
dat += " Change
"
- dat += "Testicles Visibility:[features["balls_visibility"]]"
+ dat += "Testicles Visibility:[features["balls_visibility"]]"
dat += APPEARANCE_CATEGORY_COLUMN
dat += "
Vagina
"
dat += "[features["has_vag"] == TRUE ? "Yes" : "No"]"
@@ -782,7 +782,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else
dat += "Vagina Color:
"
dat += " Change
"
- dat += "Vagina Visibility:[features["vag_visibility"]]"
+ dat += "Vagina Visibility:[features["vag_visibility"]]"
dat += "Has Womb:[features["has_womb"] == TRUE ? "Yes" : "No"]"
dat += ""
dat += APPEARANCE_CATEGORY_COLUMN
@@ -797,7 +797,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += " Change
"
dat += "Cup Size:[features["breasts_size"]]"
dat += "Breasts Shape:[features["breasts_shape"]]"
- dat += "Breasts Visibility:[features["breasts_visibility"]]"
+ dat += "Breasts Visibility:[features["breasts_visibility"]]"
dat += "Lactates:[features["breasts_producing"] == TRUE ? "Yes" : "No"]"
dat += ""
dat += ""
diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm
index f65267aa39..8d505fd06c 100644
--- a/modular_citadel/code/modules/arousal/genitals.dm
+++ b/modular_citadel/code/modules/arousal/genitals.dm
@@ -57,9 +57,9 @@
if(genital_flags & GENITAL_UNDIES_HIDDEN && ishuman(owner))
var/mob/living/carbon/human/H = owner
if(!(NO_UNDERWEAR in H.dna.species.species_traits))
- var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[H.undershirt]
- var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[H.underwear]
- if(zone == BODY_ZONE_CHEST ? (!H.hidden_undershirt && (T?.covers_chest || B?.covers_chest)) : (!H.hidden_underwear && (T?.covers_groin || B?.covers_groin)))
+ var/datum/sprite_accessory/underwear/top/T = H.hidden_undershirt ? null : GLOB.undershirt_list[H.undershirt]
+ var/datum/sprite_accessory/underwear/bottom/B = H.hidden_underwear ? null : GLOB.underwear_list[H.underwear]
+ if(zone == BODY_ZONE_CHEST ? (T?.covers_chest || B?.covers_chest) : (!T?.covers_groin || B?.covers_groin))
return FALSE
if(genital_flags & GENITAL_THROUGH_CLOTHES)
return TRUE
@@ -72,17 +72,19 @@
/obj/item/organ/genital/proc/toggle_visibility(visibility, update = TRUE)
genital_flags &= ~(GENITAL_THROUGH_CLOTHES|GENITAL_HIDDEN|GENITAL_UNDIES_HIDDEN)
- owner.exposed_genitals -= src
+ if(owner)
+ owner.exposed_genitals -= src
switch(visibility)
if(GEN_VISIBLE_ALWAYS)
genital_flags |= GENITAL_THROUGH_CLOTHES
- owner.exposed_genitals += src
+ if(owner)
+ owner.exposed_genitals += src
if(GEN_VISIBLE_NO_UNDIES)
genital_flags |= GENITAL_UNDIES_HIDDEN
if(GEN_VISIBLE_NEVER)
genital_flags |= GENITAL_HIDDEN
- if(update && ishuman(owner)) //recast to use update genitals proc
+ if(update && owner && ishuman(owner)) //recast to use update genitals proc
var/mob/living/carbon/human/H = owner
H.update_genitals()
@@ -191,14 +193,19 @@
if(.)
update()
RegisterSignal(owner, COMSIG_MOB_DEATH, .proc/update_appearance)
+ if(genital_flags & GENITAL_THROUGH_CLOTHES)
+ owner.exposed_genitals += src
/obj/item/organ/genital/Remove(special = FALSE)
. = ..()
- var/mob/living/carbon/human/H = .
+ var/mob/living/carbon/C = .
update()
- if(!QDELETED(H))
- UnregisterSignal(H, COMSIG_MOB_DEATH)
- H.update_genitals()
+ if(!QDELETED(C))
+ if(genital_flags & UPDATE_OWNER_APPEARANCE && ishuman(C))
+ var/mob/living/carbon/human/H = .
+ H.update_genitals()
+ C.exposed_genitals -= src
+ UnregisterSignal(C, COMSIG_MOB_DEATH)
//proc to give a player their genitals and stuff when they log in
/mob/living/carbon/human/proc/give_genitals(clean = FALSE)//clean will remove all pre-existing genitals. proc will then give them any genitals that are enabled in their DNA