diff --git a/code/game/objects/items/credit_holochip.dm b/code/game/objects/items/credit_holochip.dm index b7f7f5f2d1..f548a24d43 100644 --- a/code/game/objects/items/credit_holochip.dm +++ b/code/game/objects/items/credit_holochip.dm @@ -84,13 +84,18 @@ var/obj/item/card/id/ID = I if(!ID.registered_account) to_chat(user, "[ID] doesn't have a linked account to deposit into!") - return - for(var/obj/item/holochip/money in src.loc.contents) + return STOP_ATTACK_PROC_CHAIN + var/atom/old_loc = loc // The following code can qdel src, which nulls its loc. + if(!old_loc) + ID.attackby(src, user) + return STOP_ATTACK_PROC_CHAIN + for(var/obj/item/holochip/money in old_loc.contents) ID.attackby(money, user) - for(var/obj/item/stack/spacecash/money in src.loc.contents) + for(var/obj/item/stack/spacecash/money in old_loc.contents) ID.attackby(money, user) - for(var/obj/item/coin/money in src.loc.contents) + for(var/obj/item/coin/money in old_loc.contents) ID.attackby(money, user) + return STOP_ATTACK_PROC_CHAIN /obj/item/holochip/AltClick(mob/user) if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))