diff --git a/code/game/objects/items/weapons/storage/storage_base.dm b/code/game/objects/items/weapons/storage/storage_base.dm index d929b202cc8..4c4ca27a58f 100644 --- a/code/game/objects/items/weapons/storage/storage_base.dm +++ b/code/game/objects/items/weapons/storage/storage_base.dm @@ -430,6 +430,8 @@ if(!istype(I)) return FALSE if(usr) + if(!Adjacent(usr)) + return FALSE if(!usr.unEquip(I, silent = TRUE)) return FALSE usr.update_icons() //update our overlays diff --git a/code/modules/clothing/suits/suit_storage.dm b/code/modules/clothing/suits/suit_storage.dm index a203f26f3f4..cdab79f4ae5 100644 --- a/code/modules/clothing/suits/suit_storage.dm +++ b/code/modules/clothing/suits/suit_storage.dm @@ -21,6 +21,28 @@ if(pockets.handle_mousedrop(usr, over_object)) ..(over_object) +/obj/item/clothing/suit/storage/equipped(mob/user, slot) + ..() + pockets.update_viewers() + +/obj/item/clothing/suit/storage/forceMove(atom/destination) + . = ..() + if(ismob(destination.loc) || isnull(pockets)) + return + + for(var/mob/player in pockets.mobs_viewing) + if(player == destination) + continue + pockets.hide_from(player) + +/obj/item/clothing/suit/storage/AltClick(mob/user) + if(ishuman(user) && Adjacent(user) && !user.incapacitated(FALSE, TRUE)) + pockets.open(user) + add_fingerprint(user) + return + if(isobserver(user)) + pockets.show_to(user) + /obj/item/clothing/suit/storage/attackby(obj/item/W as obj, mob/user as mob, params) ..() return pockets.attackby(W, user, params)