standardize genital visibility

This commit is contained in:
sarcoph
2022-05-05 03:19:23 -08:00
parent 03bf3afede
commit e555f0ea91
4 changed files with 23 additions and 20 deletions
+6 -1
View File
@@ -6,4 +6,9 @@
#define BUTT_MIN_SIZE 0
#define BUTT_MAX_SIZE_SELECTABLE 5
#define BUTT_MAX_SIZE 8
#define BUTT_MAX_SIZE 8
#define GENITALS_HIDDEN "hidden"
#define GENITALS_CLOTHES "clothes"
#define GENITALS_VISIBLE "visible"
@@ -11,7 +11,15 @@
for(var/obj/item/organ/genital/G in U.internal_organs)
if(!G.nochange)
if(!G.dontlist)
dat += "<a href='byond://?src=[REF(src)];hide[G.name]=1'>[G.mode == "hidden" ? "[G.name] <font color='red'>(Hidden)</font>" : (G.mode == "clothes" ? "[G.name] <font color='yellow'>(Hidden by Clothes)</font>" : (G.mode == "visable" ? "[G.name] <font color='green'>(Visible)</font>" : "[G.name] <font color='green'>(Visible)</font>"))]</a><BR>"
var/genital_visibility = "[G.name] <font color='green'>(Visible)</font>"
switch(G.mode)
if(GENITALS_HIDDEN)
genital_visibility = "[G.name] <font color='red'>(Hidden)</font>"
if(GENITALS_CLOTHES)
genital_visibility = "[G.name] <font color='yellow'>(Hidden by Clothes)</font>"
if(GENITALS_VISIBLE)
genital_visibility = "[G.name] <font color='green'>(Visible)</font>"
dat += "<a href='byond://?src=[REF(src)];hide[G.name]=1'>[genital_visibility]</a><BR>"
dat += {"<BR><B>Contexual Options</B><BR><HR>"}
var/obj/item/organ/genital/penis/P = user.getorganslot("penis")
@@ -489,11 +489,9 @@
/mob/living/carbon/human/proc/pick_masturbate_genitals()
var/obj/item/organ/genital/ret_organ
var/list/genitals_list = list()
var/list/worn_stuff = get_equipped_items()
for(var/obj/item/organ/genital/G in internal_organs)
if(G.can_masturbate_with) //filter out what you can't masturbate with
if(G.is_exposed(worn_stuff)) //Nude or through_clothing
if(G.is_exposed()) //Nude or through_clothing
if(!G.dontlist)
genitals_list += G
if(genitals_list.len)
@@ -504,10 +502,8 @@
/mob/living/carbon/human/proc/target_genitals(mob/living/carbon/human/T) //used for targeting others
var/obj/item/organ/genital/ret_organ
var/list/genitals_list = list()
var/list/worn_stuff = get_equipped_items()
for(var/obj/item/organ/genital/G in T.internal_organs)
if(G.is_exposed(worn_stuff)) //Nude or through_clothing
if(G.is_exposed()) //Nude or through_clothing
if(!G.dontlist)
genitals_list += G
if(genitals_list.len)
@@ -518,13 +514,9 @@
/mob/living/carbon/human/proc/pick_climax_genitals()
var/obj/item/organ/genital/ret_organ
var/list/genitals_list = list()
var/list/worn_stuff = get_equipped_items()
for(var/obj/item/organ/genital/G in internal_organs)
if(G.can_climax) //filter out what you can't masturbate with
if(G.is_exposed(worn_stuff)) //Nude or through_clothing
if(!G.dontlist)
genitals_list += G
if(G.can_climax && G.is_exposed() && !G.dontlist)
genitals_list += G
if(genitals_list.len)
ret_organ = input(src, "with what?", "Climax", null) as null|obj in genitals_list
return ret_organ
@@ -744,8 +736,7 @@
continue // no wombs or testicles
var/mob/living/carbon/partner
var/check_target
var/list/worn_stuff = get_equipped_items()
if(current_genital.is_exposed(worn_stuff))
if(current_genital.is_exposed())
if(src.pulling)
if(iscarbon(src.pulling))
check_target = src.pulling
@@ -78,22 +78,21 @@
if("Always visible")
through_clothes = TRUE
hidden = FALSE
mode = "visible"
mode = GENITALS_VISIBLE
if(!(src in owner.exposed_genitals))
owner.exposed_genitals += src
if("Hidden by clothes")
through_clothes = FALSE
hidden = FALSE
mode = "clothes"
mode = GENITALS_CLOTHES
if(src in owner.exposed_genitals)
owner.exposed_genitals -= src
if("Always hidden")
through_clothes = FALSE
hidden = TRUE
mode = "hidden"
mode = GENITALS_HIDDEN
if(src in owner.exposed_genitals)
owner.exposed_genitals -= src
if(ishuman(owner)) //recast to use update genitals proc
var/mob/living/carbon/human/H = owner
H.update_genitals()