From f59ece06490006eef8b4c7d2f7d924ea186495f2 Mon Sep 17 00:00:00 2001
From: sunny <102998393+sunnyariess@users.noreply.github.com>
Date: Wed, 26 Nov 2025 21:04:24 +0100
Subject: [PATCH] Adds "All" option to the "Expose/Hide genitals" verb (#4832)
## About The Pull Request
Title.
## Why It's Good For The Game
It's annoying to have to click several times to hide or show multiple
genitalia at once.
## Proof Of Testing
Compiles without errors. Tested with all genitals, and without any.
Screenshots/Videos
---------
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
---
.../customization/modules/surgery/organs/genitals.dm | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/genitals.dm b/modular_skyrat/modules/customization/modules/surgery/organs/genitals.dm
index 3dbb29b1357..2220cff5dc2 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/genitals.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/genitals.dm
@@ -524,16 +524,16 @@
to_chat(usr, span_warning("You can't toggle genitals visibility right now..."))
return
- var/list/genital_list = list()
+ var/list/genital_list = list("all")
for(var/obj/item/organ/genital/genital in organs)
if(!genital.visibility_preference == GENITAL_SKIP_VISIBILITY)
genital_list += genital
- if(!genital_list.len) //There is nothing to expose
+ if(genital_list.len == 1) //There is nothing to expose
return
//Full list of exposable genitals created
var/obj/item/organ/genital/picked_organ
picked_organ = input(src, "Choose which genitalia to expose/hide", "Expose/Hide genitals") as null|anything in genital_list
- if(picked_organ && (picked_organ in organs))
+ if(picked_organ && ((picked_organ in organs) || picked_organ == "all"))
var/list/gen_vis_trans = list("Never show" = GENITAL_NEVER_SHOW,
"Hidden by clothes" = GENITAL_HIDDEN_BY_CLOTHES,
"Always show" = GENITAL_ALWAYS_SHOW
@@ -543,6 +543,12 @@
picked_organ.visibility_preference = gen_vis_trans[picked_visibility]
update_body()
SEND_SIGNAL(src, COMSIG_HUMAN_TOGGLE_GENITALS)
+ if(picked_visibility && picked_organ == "all")
+ for(var/obj/item/organ/genital/genital in organs)
+ if(!genital.visibility_preference == GENITAL_SKIP_VISIBILITY)
+ genital.visibility_preference = gen_vis_trans[picked_visibility]
+ update_body()
+ SEND_SIGNAL(src, COMSIG_HUMAN_TOGGLE_GENITALS)
return
//Removing ERP IC verb depending on config