diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index d24a278b411..d7a3b1a3f94 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -17,6 +17,10 @@ pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) +/obj/effect/decal/cleanable/ash/crematorium +//crematoriums need their own ash cause default ash deletes itself if created in an obj + turf_loc_check = FALSE + /obj/effect/decal/cleanable/ash/large name = "large pile of ashes" icon_state = "big_ash" diff --git a/code/game/objects/effects/decals/decal.dm b/code/game/objects/effects/decals/decal.dm index 00d977deeba..d26dbb72e7d 100644 --- a/code/game/objects/effects/decals/decal.dm +++ b/code/game/objects/effects/decals/decal.dm @@ -2,10 +2,11 @@ name = "decal" anchored = TRUE resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF + var/turf_loc_check = TRUE /obj/effect/decal/Initialize() . = ..() - if(!isturf(loc) || NeverShouldHaveComeHere(loc)) + if(turf_loc_check && (!isturf(loc) || NeverShouldHaveComeHere(loc))) return INITIALIZE_HINT_QDEL /obj/effect/decal/blob_act(obj/structure/blob/B) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 3b931b218fd..2415ecd3ce9 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -241,15 +241,11 @@ GLOBAL_LIST_EMPTY(crematoriums) M.ghostize() qdel(M) - var/ash_check = FALSE for(var/obj/O in conts) //conts defined above, ignores crematorium and tray - if(istype(O,/obj/effect/decal/cleanable/ash)) ash_check = TRUE//creates the illusion of ash piling up qdel(O) - var/obj/effect/decal/cleanable/ash/a - if(ash_check) a=new/obj/effect/decal/cleanable/ash/large(src)//cont. illusion of more ash - else a=new/obj/effect/decal/cleanable/ash(src) - a.layer = connected.layer//Makes the ash the same layer as the tray. + if(!locate(/obj/effect/decal/cleanable/ash) in get_step(src, dir))//prevent pile-up + new/obj/effect/decal/cleanable/ash/crematorium(src) sleep(30)