From 8e00cdfe9addee38fe13f007776bff75ce6a7a87 Mon Sep 17 00:00:00 2001 From: xxalpha Date: Sun, 19 Jul 2015 17:52:37 +0100 Subject: [PATCH] Fixed storage not updating when joining cable coils. Fixed stack objects not updating storage when deleted. Added handle_atom_del proc to be called on destroy. Label comment for handle_atom_del() --- code/game/atoms.dm | 5 ++++- code/game/atoms_movable.dm | 2 ++ code/game/objects/items/stacks/stack.dm | 3 --- code/game/objects/items/weapons/storage/storage.dm | 3 +++ 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index c20a1f77fb5..a09f1d362f2 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -451,4 +451,7 @@ var/list/blood_splatter_icons = list() return /atom/proc/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user) - return 0 \ No newline at end of file + return 0 + +//This proc is called on the location of an atom when the atom is Destroy()'d +/atom/proc/handle_atom_del(atom/A) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 478092cc075..1198da754f2 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -76,6 +76,8 @@ /atom/movable/Destroy() . = ..() + if(loc) + loc.handle_atom_del(src) if(reagents) qdel(reagents) for(var/atom/movable/AM in contents) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 7d58a796021..3feb6b0dff3 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -27,7 +27,6 @@ /obj/item/stack/Destroy() if (usr && usr.machine==src) usr << browse(null, "window=stack") - src.loc = null ..() /obj/item/stack/examine(mob/user) @@ -186,8 +185,6 @@ if(is_cyborg) return source.energy < cost if (amount < 1) - if(usr) - usr.unEquip(src, 1) qdel(src) return 1 return 0 diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index ad0f33b6965..82758639261 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -469,3 +469,6 @@ if(verbs.Find(/obj/item/weapon/storage/verb/quick_empty)) quick_empty() +/obj/item/weapon/storage/handle_atom_del(atom/A) + if(A in contents) + remove_from_storage(A,null)