diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 1765e6873..859fce110 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -182,10 +182,24 @@
if(legcuffed)
dat += "
| Legcuffed |
"
+
+ var/mob/living/carbon/U = src //for carbon genitals
+ if(U)
+ for(var/obj/item/organ/genital/G in U.internal_organs)
+ if(G.is_exposed())
+ if(!G.equipment)
+ dat += "| [G.name]: | ["Empty"] |
"
+ else
+ dat += "| [G.name]: | [G.equipment.name] |
"
+ else
+ dat += "| [G.name]: | Obscured |
"
+
dat += {"
Close
"}
+
+
var/datum/browser/popup = new(user, "mob[REF(src)]", "[src]", 440, 510)
popup.set_content(dat.Join())
popup.open()
@@ -237,6 +251,23 @@
to_chat(usr, "You can't reach that! Something is covering it.")
return
+ if(href_list["gitem"])//remove gential item
+ var/obj/item/I = locate(href_list["gitem"])
+ var/obj/item/organ/genital/G = I.loc
+ if(G.is_exposed())
+ to_chat(usr, "You try to remove [src]'s [I].")
+ to_chat(src, "[usr] is trying to remove your [I].")
+ if(!do_mob(usr, src, 3 SECONDS))
+ return
+ SEND_SIGNAL(I, "detach_genital_equipment",usr)
+ usr.put_in_hands(I)
+ G.equipment = null
+ return
+ else
+ to_chat(usr, "You can't reach that! Something is covering it.")
+ return
+
+
if(href_list["pockets"])
var/pocket_side = href_list["pockets"]
var/pocket_id = (pocket_side == "right" ? SLOT_R_STORE : SLOT_L_STORE)
diff --git a/hyperstation/code/modules/arousal/arousalhud.dm b/hyperstation/code/modules/arousal/arousalhud.dm
index 0c68c3cfe..184163722 100644
--- a/hyperstation/code/modules/arousal/arousalhud.dm
+++ b/hyperstation/code/modules/arousal/arousalhud.dm
@@ -225,40 +225,40 @@
if(href_list["removeequipmentpenis"])
var/obj/item/organ/genital/penis/O = usr.getorganslot("penis")
var/obj/item/I = O.equipment
- usr.put_in_hands(I)
SEND_SIGNAL(I, "detach_genital_equipment",usr)
+ usr.put_in_hands(I)
O.equipment = null
if(href_list["removeequipmentbreasts"])
var/obj/item/organ/genital/breasts/O = usr.getorganslot("breasts")
var/obj/item/I = O.equipment
- usr.put_in_hands(I)
SEND_SIGNAL(I, "detach_genital_equipment",usr)
+ usr.put_in_hands(I)
O.equipment = null
if(href_list["removeequipmentvagina"])
var/obj/item/organ/genital/vagina/O = usr.getorganslot("vagina")
var/obj/item/I = O.equipment
+ SEND_SIGNAL(I, "detach_genital_equipment",usr)
usr.put_in_hands(I)
if(istype(I, /obj/item/portalpanties))
var/obj/item/portalpanties/P = I
P.remove()
- SEND_SIGNAL(I, "detach_genital_equipment",usr)
O.equipment = null
if(href_list["removeequipmentbelly"])
var/obj/item/organ/genital/belly/O = usr.getorganslot("belly")
var/obj/item/I = O.equipment
- usr.put_in_hands(I)
SEND_SIGNAL(I, "detach_genital_equipment",usr)
+ usr.put_in_hands(I)
O.equipment = null
if(href_list["removeequipmentanus"])
var/obj/item/organ/genital/anus/O = usr.getorganslot("anus")
var/obj/item/I = O.equipment
- usr.put_in_hands(I)
SEND_SIGNAL(I, "detach_genital_equipment",usr)
+ usr.put_in_hands(I)
O.equipment = null
diff --git a/hyperstation/code/obj/cockrings.dm b/hyperstation/code/obj/cockrings.dm
index 42752d5e4..93249474c 100644
--- a/hyperstation/code/obj/cockrings.dm
+++ b/hyperstation/code/obj/cockrings.dm
@@ -21,9 +21,9 @@
"[user] is trying to put [src] on you!")
if(!do_mob(user, C, 4 SECONDS))//warn them and have a delay of 5 seconds to apply.
return
- SEND_SIGNAL(src, "attach_genital_equipment",S)
if(!user.transferItemToLoc(src, P)) //check if you can put it on
return
+ SEND_SIGNAL(src, "attach_genital_equipment",T)
P.equipment = src
to_chat(user, "You attach [src] to [T]'s [P.name].")
@@ -45,7 +45,7 @@
/obj/item/equipment/penis/ring/fancy
- name = "fancy cock ring"
+ name = "fancy ribboned cock ring"
desc = "a cock ring with a white bowtie, how cute."
icon_state = "cockring_fancy"
@@ -63,18 +63,20 @@
RegisterSignal(src, "attach_genital_equipment", .proc/attach)
RegisterSignal(src, "detach_genital_equipment", .proc/detach)
-/obj/item/equipment/penis/ring/limiter/proc/attach(mob/living/user)
+/obj/item/equipment/penis/ring/limiter/proc/attach(mob/living/carbon/human/U)
playsound(usr, 'sound/effects/magic.ogg', 100, 1)
- var/mob/living/carbon/human/H = usr
- var/obj/item/organ/genital/penis/P = H.getorganslot("penis")
- P.limited = TRUE
- P.update_appearance()
- H.update_genitals()
+ to_chat(usr, "[U]")
+ var/obj/item/organ/genital/penis/P = loc
+ if(P)
+ P.limited = TRUE
+ P.update_appearance()
+ U.update_genitals()
-/obj/item/equipment/penis/ring/limiter/proc/detach(mob/living/user)
+/obj/item/equipment/penis/ring/limiter/proc/detach(mob/living/carbon/human/U)
playsound(usr, 'sound/effects/magic.ogg', 100, 1)
- var/mob/living/carbon/human/H = usr
- var/obj/item/organ/genital/penis/P = H.getorganslot("penis")
- P.limited = FALSE
- P.update_appearance()
- H.update_genitals()
+ to_chat(usr, "[U]")
+ var/obj/item/organ/genital/penis/P = loc
+ if(P)
+ P.limited = FALSE
+ P.update_appearance()
+ U.update_genitals()