diff --git a/code/game/objects/secstorage/secstorage.dm b/code/game/objects/secstorage/secstorage.dm index ec8fec35737..f7087ac33c7 100644 --- a/code/game/objects/secstorage/secstorage.dm +++ b/code/game/objects/secstorage/secstorage.dm @@ -186,9 +186,11 @@ usr << "\red [src] is locked and cannot be opened!" else if ((src.loc == user) && (!src.locked)) playsound(src.loc, "rustle", 50, 1, -5) - if (user.s_active) - user.s_active.close(user) - src.show_to(user) + if (user.s_active == src) + user.s_active.close(user) //Close and re-open + src.show_to(user) + else + user.s_active.close(user) //Just close else ..() for(var/mob/M in range(1)) diff --git a/code/game/objects/storage/backpack.dm b/code/game/objects/storage/backpack.dm index dbb3266a150..50742cb7df0 100644 --- a/code/game/objects/storage/backpack.dm +++ b/code/game/objects/storage/backpack.dm @@ -1,10 +1,10 @@ -/obj/item/weapon/storage/backpack/MouseDrop(obj/over_object as obj) +/obj/item/weapon/storage/MouseDrop(obj/over_object as obj) if (ishuman(usr) || ismonkey(usr)) //so monkeys can take off their backpacks -- Urist var/mob/M = usr if (!( istype(over_object, /obj/screen) )) return ..() playsound(src.loc, "rustle", 50, 1, -5) - if ((!( M.restrained() ) && !( M.stat ) && M.back == src)) + if ((!( M.restrained() ) && !( M.stat )) switch(over_object.name) if("r_hand") M.u_equip(src) diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/storage/bible.dm index b7c8ad1e3c6..25d1a521220 100644 --- a/code/game/objects/storage/bible.dm +++ b/code/game/objects/storage/bible.dm @@ -86,26 +86,3 @@ /obj/item/weapon/storage/bible/attackby(obj/item/weapon/W as obj, mob/user as mob) playsound(src.loc, "rustle", 50, 1, -5) ..() - -/obj/item/weapon/storage/bible/MouseDrop(obj/over_object as obj) - - if (ishuman(usr) || ismonkey(usr)) - var/mob/M = usr - if (!( istype(over_object, /obj/screen) )) - return ..() - if ((!( M.restrained() ) && !( M.stat ))) - switch(over_object.name) - if("r_hand") - M.u_equip(src) - M.put_in_r_hand(src) - if("l_hand") - M.u_equip(src) - M.put_in_l_hand(src) - src.add_fingerprint(usr) - return - if(over_object == usr && in_range(src, usr) || usr.contents.Find(src)) - if (usr.s_active) - usr.s_active.close(usr) - src.show_to(usr) - return - return diff --git a/code/game/objects/storage/fancy.dm b/code/game/objects/storage/fancy.dm index 0ed831c8f1c..ab7ba168d28 100644 --- a/code/game/objects/storage/fancy.dm +++ b/code/game/objects/storage/fancy.dm @@ -16,16 +16,6 @@ name = "donut box" var/icon_type = "donut" -/obj/item/weapon/storage/fancy/attack_hand(mob/user as mob) - ..() - update_icon() - return - -/obj/item/weapon/storage/fancy/attackby(obj/item/W as obj, mob/user as mob) - ..() - update_icon() - return - /obj/item/weapon/storage/fancy/update_icon(var/itemremoved = 0) var/total_contents = src.contents.len - itemremoved src.icon_state = "[src.icon_type]box[total_contents]" diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm index 9fc1590881f..ee0bb132dca 100644 --- a/code/game/objects/storage/storage.dm +++ b/code/game/objects/storage/storage.dm @@ -225,7 +225,8 @@ src.orient2hud(usr) if(usr.s_active) - src.show_to(usr) + usr.s_active.show_to(usr) + update_icon() //Call this proc to handle the removal of an item from the storage item. The item will be moved to the atom sent as new_target /obj/item/weapon/storage/proc/remove_from_storage(obj/item/W as obj, atom/new_location) @@ -248,10 +249,11 @@ if(usr) src.orient2hud(usr) if(usr.s_active) - src.show_to(usr) + usr.s_active.show_to(usr) if(W.maptext) W.maptext = "" W.on_exit_storage(src) + update_icon() //This proc is called when you want to place an item into the storage item. /obj/item/weapon/storage/attackby(obj/item/W as obj, mob/user as mob) diff --git a/code/game/objects/toys.dm b/code/game/objects/toys.dm index c01614909ae..b460bfef905 100644 --- a/code/game/objects/toys.dm +++ b/code/game/objects/toys.dm @@ -10,9 +10,9 @@ CRAYONS new /obj/item/toy/crayon/green(src) new /obj/item/toy/crayon/blue(src) new /obj/item/toy/crayon/purple(src) - updateIcon() + update_icon() -/obj/item/weapon/storage/crayonbox/proc/updateIcon() +/obj/item/weapon/storage/crayonbox/update_icon() overlays = list() //resets list overlays += image('icons/obj/crayons.dmi',"crayonbox") for(var/obj/item/toy/crayon/crayon in contents) @@ -28,34 +28,6 @@ CRAYONS usr << "This crayon is too powerful to be contained in this box." return ..() - updateIcon() - -/obj/item/weapon/storage/crayonbox/attack_hand(mob/user as mob) - updateIcon() - ..() - -/obj/item/weapon/storage/crayonbox/MouseDrop(obj/over_object as obj) - - if (ishuman(usr) || ismonkey(usr)) - var/mob/M = usr - if (!( istype(over_object, /obj/screen) )) - return ..() - if ((!( M.restrained() ) && !( M.stat ))) - switch(over_object.name) - if("r_hand") - M.u_equip(src) - M.put_in_r_hand(src) - if("l_hand") - M.u_equip(src) - M.put_in_l_hand(src) - src.add_fingerprint(usr) - return - if(over_object == usr && in_range(src, usr) || usr.contents.Find(src)) - if (usr.s_active) - usr.s_active.close(usr) - src.show_to(usr) - return - return /obj/item/toy/crayon/red icon_state = "crayonred" @@ -157,14 +129,6 @@ CRAYONS else ..() -/obj/item/toy/crayon/attack_hand(mob/user as mob) - var/obj/item/weapon/storage/crayonbox/CB - if(istype(src.loc, /obj/item/weapon/storage/crayonbox)) - CB = src.loc - ..() - if(CB) - CB.updateIcon() - /obj/effect/decal/cleanable/crayon name = "rune" desc = "A rune drawn in crayon."