diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 6a6de9d49e0..39c76e379be 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -12,3 +12,4 @@ var/timezoneOffset = 0 // The difference betwen midnight (of the host computer) // However it'd be ok to use for accessing attack logs and such too, which are even laggier. var/fileaccess_timer = 0 +var/TAB = "    " \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 95ca9cf0f7c..591cb3ff5cb 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -291,55 +291,96 @@ /mob/living/carbon/human/show_inv(mob/user) user.set_machine(src) + var/has_breathable_mask = istype(wear_mask, /obj/item/clothing/mask) + var/skipgloves = 0 + var/skipsuitstorage = 0 + var/skipjumpsuit = 0 + var/skipshoes = 0 + var/skipmask = 0 + var/skipears = 0 + var/skipeyes = 0 + + //exosuits and helmets obscure what we can see + if(wear_suit) + skipgloves = wear_suit.flags_inv & HIDEGLOVES + skipsuitstorage = wear_suit.flags_inv & HIDESUITSTORAGE + skipjumpsuit = wear_suit.flags_inv & HIDEJUMPSUIT + skipshoes = wear_suit.flags_inv & HIDESHOES + + if(head) + skipmask = head.flags_inv & HIDEMASK + skipeyes = head.flags_inv & HIDEEYES + skipears = head.flags_inv & HIDEEARS + var/dat = {"
- [name] -
-
Mask: [(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Nothing"]
Left Hand: [(l_hand && !(l_hand.flags&ABSTRACT)) ? l_hand : "Nothing"]
Right Hand: [(r_hand && !(r_hand.flags&ABSTRACT)) ? r_hand : "Nothing"] -
Gloves: [(gloves && !(gloves.flags&ABSTRACT)) ? gloves : "Nothing"] -
Eyes: [(glasses && !(glasses.flags&ABSTRACT)) ? glasses : "Nothing"] -
Ears: [(ears && !(ears.flags&ABSTRACT)) ? ears : "Nothing"]
Head: [(head && !(head.flags&ABSTRACT)) ? head : "Nothing"] -
Shoes: [(shoes && !(shoes.flags&ABSTRACT)) ? shoes : "Nothing"]"} + "} - dat += "
Uniform: [(w_uniform && !(w_uniform.flags&ABSTRACT)) ? w_uniform : "Nothing"]" - if(w_uniform) - dat += "
Belt: [(belt && !(belt.flags&ABSTRACT)) ? belt : "Nothing"]" - if(has_breathable_mask && istype(belt, /obj/item/weapon/tank)) - dat += "
[internal ? "Disable Internals" : "Set Internals"]" + if(!skipmask) + dat += "
Mask: [(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Nothing"]" + else + dat += "
Mask: Obscured by [head]" + + if(!skipeyes) + dat += "
Eyes: [(glasses && !(glasses.flags&ABSTRACT)) ? glasses : "Nothing"]" + else + dat += "
Eyes: Obscured by [head]" + + if(!skipears) + dat += "
Ears: [(ears && !(ears.flags&ABSTRACT)) ? ears : "Nothing"]" + else + dat += "
Ears: Obscured by [head]" dat += "
Exosuit: [(wear_suit && !(wear_suit.flags&ABSTRACT)) ? wear_suit : "Nothing"]" - if(wear_suit) - dat += "
Suit Storage: [(s_store && !(s_store.flags&ABSTRACT)) ? s_store : "Nothing"]" + if(wear_suit && !skipsuitstorage) + dat += "
[TAB]↳Suit Storage: [(s_store && !(s_store.flags&ABSTRACT)) ? s_store : "Nothing"]" if(has_breathable_mask && istype(wear_suit, /obj/item/weapon/tank)) - dat += "
[internal ? "Disable Internals" : "Set Internals"]" + dat += "
[TAB][TAB]↳[internal ? "Disable Internals" : "Set Internals"]" + + if(!skipshoes) + dat += "
Shoes: [(shoes && !(shoes.flags&ABSTRACT)) ? shoes : "Nothing"]" + else + dat += "
Shoes: Obscured by [wear_suit]" + + if(!skipgloves) + dat += "
Gloves: [(gloves && !(gloves.flags&ABSTRACT)) ? gloves : "Nothing"]" + else + dat += "
Gloves: Obscured by [wear_suit]" dat += "
Back: [(back && !(back.flags&ABSTRACT)) ? back : "Nothing"]" if(has_breathable_mask && istype(back, /obj/item/weapon/tank)) - dat += "
[internal ? "Disable Internals" : "Set Internals"]" + dat += "
[TAB]↳[internal ? "Disable Internals" : "Set Internals"]" - if(w_uniform) //we checked already, but a different place. - dat += "
ID: [(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Nothing"]" + if(!skipjumpsuit) + dat += "
Uniform: [(w_uniform && !(w_uniform.flags&ABSTRACT)) ? w_uniform : "Nothing"]" + if(w_uniform) + dat += "
[TAB]↳Belt: [(belt && !(belt.flags&ABSTRACT)) ? belt : "Nothing"]" + if(has_breathable_mask && istype(belt, /obj/item/weapon/tank)) + dat += "
[TAB][TAB]↳[internal ? "Disable Internals" : "Set Internals"]" + dat += "
[TAB]↳Pockets: Left ([(l_store && !(l_store.flags&ABSTRACT)) ? "Full" : "Empty"])" + dat += " - Right ([(r_store && !(r_store.flags&ABSTRACT)) ? "Full" : "Empty"])" + dat += "
[TAB]↳ID: [(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Nothing"]" + else + dat += "
Uniform: Obscured by [wear_suit]" + dat += "
" if(handcuffed) - dat += "
Handcuffed" + dat += "
Handcuffed: Remove" if(legcuffed) - dat += "
Legcuffed" - if(w_uniform) - dat += "

Left Pocket ([(l_store && !(l_store.flags&ABSTRACT)) ? "Full" : "Empty"])" - dat += " - Right Pocket ([(r_store && !(r_store.flags&ABSTRACT)) ? "Full" : "Empty"])" + dat += "
Legcuffed: Remove" dat += {"

Close "} - user << browse(dat, "window=mob\ref[src];size=340x480") - onclose(user, "mob\ref[src]") - + var/datum/browser/popup = new(user, "mob\ref[src]", "[src]", 340, 480) + popup.set_content(dat) + popup.open() // called when something steps onto a human // this could be made more general, but for now just handle mulebot