From 63769075601f7c81b39df9250bcf318328816faf Mon Sep 17 00:00:00 2001 From: Krausus Date: Tue, 14 Jul 2015 04:08:56 -0400 Subject: [PATCH 1/2] Further fixes to morgues and crematoriums --- code/game/objects/items/bodybag.dm | 12 ++++--- code/game/objects/structures/morgue.dm | 48 ++++++++++++++------------ 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 749a4475af1..3c36ea9dfe8 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -82,12 +82,14 @@ qdel(src) return -/obj/structure/closet/bodybag/update_icon() - if(!opened) - icon_state = icon_closed - else - icon_state = icon_opened +/obj/structure/closet/body_bag/relaymove(mob/user as mob) + if(user.stat) + return + // Make it possible to escape from bodybags in morgues and crematoriums + if(loc && (isturf(loc) || istype(loc, /obj/structure/morgue) || istype(loc, /obj/structure/crematorium))) + if(!open()) + user << "It won't budge!" /obj/item/bodybag/cryobag name = "stasis bag" diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 80792c53f96..e4a403b7750 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -50,21 +50,21 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.loc = loc + A.forceMove(loc) ex_act(severity) qdel(src) return if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.loc = loc + A.forceMove(loc) ex_act(severity) qdel(src) return if(3.0) if (prob(5)) for(var/atom/movable/A as mob|obj in src) - A.loc = loc + A.forceMove(loc) ex_act(severity) qdel(src) return @@ -78,7 +78,7 @@ if (connected) for(var/atom/movable/A as mob|obj in connected.loc) if (!( A.anchored )) - A.loc = src + A.forceMove(src) playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) qdel(connected) connected = null @@ -92,7 +92,7 @@ connected.connected = src icon_state = "morgue0" for(var/atom/movable/A as mob|obj in src) - A.loc = connected.loc + A.forceMove(connected.loc) connected.icon_state = "morguet" connected.dir = dir else @@ -123,14 +123,14 @@ if (user.stat) return connected = new /obj/structure/m_tray( loc ) - step(connected, EAST) + step(connected, dir) connected.layer = OBJ_LAYER - var/turf/T = get_step(src, EAST) + var/turf/T = get_step(src, dir) if (T.contents.Find(connected)) connected.connected = src icon_state = "morgue0" for(var/atom/movable/A as mob|obj in src) - A.loc = connected.loc + A.forceMove(connected.loc) connected.icon_state = "morguet" else qdel(connected) @@ -163,7 +163,7 @@ if (connected) for(var/atom/movable/A as mob|obj in loc) if (!( A.anchored )) - A.loc = connected + A.forceMove(connected) connected.connected = null connected.update() add_fingerprint(user) @@ -178,7 +178,7 @@ return if (!ismob(user) || user.stat || user.lying || user.stunned) return - O.loc = loc + O.forceMove(loc) if (user != O) for(var/mob/B in viewers(user, 3)) if ((B.client && !( B.blinded ))) @@ -222,21 +222,21 @@ switch(severity) if(1.0) for(var/atom/movable/A as mob|obj in src) - A.loc = loc + A.forceMove(loc) ex_act(severity) qdel(src) return if(2.0) if (prob(50)) for(var/atom/movable/A as mob|obj in src) - A.loc = loc + A.forceMove(loc) ex_act(severity) qdel(src) return if(3.0) if (prob(5)) for(var/atom/movable/A as mob|obj in src) - A.loc = loc + A.forceMove(loc) ex_act(severity) qdel(src) return @@ -253,7 +253,7 @@ if ((connected) && (locked == 0)) for(var/atom/movable/A as mob|obj in connected.loc) if (!( A.anchored )) - A.loc = src + A.forceMove(src) playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) qdel(connected) connected = null @@ -267,7 +267,7 @@ connected.connected = src icon_state = "crema0" for(var/atom/movable/A as mob|obj in src) - A.loc = connected.loc + A.forceMove(connected.loc) connected.icon_state = "cremat" else qdel(connected) @@ -301,7 +301,7 @@ connected.connected = src icon_state = "crema0" for(var/atom/movable/A as mob|obj in src) - A.loc = connected.loc + A.forceMove(connected.loc) connected.icon_state = "cremat" else qdel(connected) @@ -331,13 +331,15 @@ locked = 1 icon_state = "crema_active" - for(var/mob/living/M in contents) + for(var/mob/living/M in search_contents_for(/mob/living)) + if(!M || !isnull(M.gcDestroyed)) + continue if (M.stat!=2) M.emote("scream") if(istype(user)) - M.attack_log += "\[[time_stamp()]\] Has been cremated by [user]/[user.ckey]" - user.attack_log +="\[[time_stamp()]\] Cremated [M]/[M.ckey]" - log_attack("\[[time_stamp()]\] [user]/[user.ckey] cremated [M]/[M.ckey]") + M.attack_log += "\[[time_stamp()]\] Has been cremated by [user.name] ([user.ckey])" + user.attack_log +="\[[time_stamp()]\] Cremated [M.name] ([M.ckey])" + log_attack("\[[time_stamp()]\] [user.name] ([user.ckey]) cremated [M.name] ([M.ckey])") M.death(1) M.ghostize() qdel(M) @@ -378,7 +380,7 @@ if (connected) for(var/atom/movable/A as mob|obj in loc) if (!( A.anchored )) - A.loc = connected + A.forceMove(connected) //Foreach goto(26) connected.connected = null connected.update() @@ -394,7 +396,7 @@ return if (!ismob(user) || user.stat || user.lying || user.stunned) return - O.loc = loc + O.forceMove(loc) if (user != O) for(var/mob/B in viewers(user, 3)) if ((B.client && !( B.blinded ))) @@ -402,7 +404,7 @@ //Foreach goto(99) return -/obj/structure/m_tray/Destroy() +/obj/structure/c_tray/Destroy() if(connected && connected.connected == src) connected.connected = null connected = null From 8e753ac1a623b3bfdd6028e07fc15a8c6fd247bb Mon Sep 17 00:00:00 2001 From: Krausus Date: Tue, 14 Jul 2015 04:18:35 -0400 Subject: [PATCH 2/2] Removes redundant timestamp --- code/game/objects/structures/morgue.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index e4a403b7750..88ba3e7adf3 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -339,7 +339,7 @@ if(istype(user)) M.attack_log += "\[[time_stamp()]\] Has been cremated by [user.name] ([user.ckey])" user.attack_log +="\[[time_stamp()]\] Cremated [M.name] ([M.ckey])" - log_attack("\[[time_stamp()]\] [user.name] ([user.ckey]) cremated [M.name] ([M.ckey])") + log_attack("[user.name] ([user.ckey]) cremated [M.name] ([M.ckey])") M.death(1) M.ghostize() qdel(M)