diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 1765eb0e6d4..0bb5f8dd060 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -264,7 +264,7 @@ var/burning = null var/hitsound = null var/w_class = 3.0 - var/wielded = 0 + var/wielded = 0 // 1 if item is two handed and grabbed with two hands var/twohanded = 0 // Two handed and wielded off by default, nyoro~n -Agouri var/force_unwielded = 0 var/force_wielded = 0 diff --git a/code/game/objects/items/weapons/evidence.dm b/code/game/objects/items/weapons/evidence.dm index cdd4a661ece..1519f563075 100644 --- a/code/game/objects/items/weapons/evidence.dm +++ b/code/game/objects/items/weapons/evidence.dm @@ -33,11 +33,14 @@ desc = "An evidence bag containing \a [O]. [O.desc]" /obj/item/weapon/evidencebag/attack_self(mob/user as mob) - var/obj/item/I = src.contents[1] - user << "You take the [I] out of the [src]." - I.loc = user.loc - src.underlays -= I - icon_state = "evidenceobj" + if (src.contents.len > 0) + var/obj/item/I = src.contents[1] + user << "You take the [I] out of the [src]." + I.loc = user.loc + src.underlays -= I + icon_state = "evidenceobj" + else + user << "The [src] is empty." /obj/item/weapon/storage/box/evidence name = "evidence bag box" diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index d2079c6640f..bae8bd35e49 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -73,9 +73,17 @@ if(isrobot(user)) return - else if (!isnull(I)) // As per code/game/atom_procs.dm, this shouldn't even be required, but for some reason is. -- Abi79 + else + if(isnull(I)) // Added these calls to CRASH to diagnose a runtime error that may be one of the causes of erasure errors --Abi79 + CRASH("disposal/attackby() was called, but I was nulled before calling user.drop_item()") + + var/debug_item_name = I.name + user.drop_item() + if(isnull(I)) + CRASH("disposal/attackby() was called with [debug_item_name] as I, but I was nulled after calling user.drop_item()") + I.loc = src user << "You place \the [I] into the [src]." for(var/mob/M in viewers(src))