Fixed an evidence bag runtime error and added a few CRASH() checks to /obj/machinery/disposal

This commit is contained in:
Albert Iordache
2011-12-25 00:59:59 +02:00
parent 3580a685e6
commit 6f23ef6b22
3 changed files with 18 additions and 7 deletions
+1 -1
View File
@@ -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
+8 -5
View File
@@ -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"
+9 -1
View File
@@ -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))