diff --git a/code/ATMOSPHERICS/pipes/pipe_base.dm b/code/ATMOSPHERICS/pipes/pipe_base.dm index b25c3c5dfd..9857753909 100644 --- a/code/ATMOSPHERICS/pipes/pipe_base.dm +++ b/code/ATMOSPHERICS/pipes/pipe_base.dm @@ -99,6 +99,9 @@ return parent.return_network(reference) /obj/machinery/atmospherics/pipe/Destroy() + if(parent) + parent.members -= src + parent.edges -= src QDEL_NULL(parent) if(air_temporary) loc.assume_air(air_temporary) diff --git a/code/controllers/subsystems/mobs.dm b/code/controllers/subsystems/mobs.dm index 8fec502f21..57d7838a32 100644 --- a/code/controllers/subsystems/mobs.dm +++ b/code/controllers/subsystems/mobs.dm @@ -92,3 +92,7 @@ SUBSYSTEM_DEF(mobs) /datum/controller/subsystem/mobs/critfail() ..() log_recent() + +/mob/Destroy() + . = ..() + SSmobs.currentrun -= src diff --git a/code/controllers/subsystems/radiation.dm b/code/controllers/subsystems/radiation.dm index 624d6f4279..c52f69b33a 100644 --- a/code/controllers/subsystems/radiation.dm +++ b/code/controllers/subsystems/radiation.dm @@ -146,3 +146,7 @@ SUBSYSTEM_DEF(radiation) return var/turf/epicentre = locate(round(world.maxx / 2), round(world.maxy / 2), source.z) flat_radiate(epicentre, power, world.maxx, respect_maint) + +/mob/living/Destroy() + . = ..() + SSradiation.listeners -= src diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 6aa664a089..11250a4607 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -70,7 +70,7 @@ /obj/machinery/camera/Destroy() if(isMotion()) - unsense_proximity(callback = /atom/proc/HasProximity) + unsense_proximity(callback = TYPE_PROC_REF(/atom,HasProximity)) deactivate(null, 0) //kick anyone viewing out if(assembly) qdel(assembly) diff --git a/code/game/machinery/upgrade_machinery.dm b/code/game/machinery/upgrade_machinery.dm index 03a0477c9d..e00ec2069a 100644 --- a/code/game/machinery/upgrade_machinery.dm +++ b/code/game/machinery/upgrade_machinery.dm @@ -27,7 +27,7 @@ break component_parts.Remove(C) C.forceMove(src.loc) - C.Destroy() + qdel(C) cur_coils-- // Rebuild from mapper's coils for(var/i = 1, i <= parts_found.len, i++) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 46f33c7a34..9df1f75be1 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -39,6 +39,15 @@ m.visible_message(span_notice("\The [m] tumbles out of \the [src]!")) //VOREStation Add End + if(istype(src, /obj/item)) + var/obj/item/I = src + if(I.possessed_voice && I.possessed_voice.len) + for(var/mob/living/voice/V in I.possessed_voice) + if(!V.tf_mob_holder) + V.ghostize(0) + V.stat = DEAD + qdel(V) + return ..() /obj/Topic(href, href_list, var/datum/tgui_state/state = GLOB.tgui_default_state) diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm index 17f9d2f736..f796d18b47 100644 --- a/code/game/objects/structures/crates_lockers/closets/coffin.dm +++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm @@ -3,7 +3,7 @@ desc = "It's a burial receptacle for the dearly departed." icon = 'icons/obj/closets/coffin.dmi' - icon_state = "closed" + icon_state = "closed_unlocked" seal_tool = /obj/item/tool/screwdriver breakout_sound = 'sound/weapons/tablehit1.ogg' closet_appearance = null // Special icon for us diff --git a/code/game/objects/structures/fitness.dm b/code/game/objects/structures/fitness.dm index 40ad964527..1e754ed8de 100644 --- a/code/game/objects/structures/fitness.dm +++ b/code/game/objects/structures/fitness.dm @@ -23,7 +23,7 @@ flick("[icon_state]_hit", src) playsound(src, 'sound/effects/woodhit.ogg', 25, 1, -1) user.do_attack_animation(src) - user.nutrition = user.nutrition - 5 + user.adjust_nutrition(-5) user.weight -= 0.25 * weightloss_power * (0.01 * user.weight_loss) to_chat(user, span_warning("You [pick(hit_message)] \the [src].")) diff --git a/code/modules/pda/pda.dm b/code/modules/pda/pda.dm index f279b41520..174437eb37 100644 --- a/code/modules/pda/pda.dm +++ b/code/modules/pda/pda.dm @@ -491,7 +491,9 @@ var/global/list/obj/item/pda/PDAs = list() /obj/item/pda/Destroy() PDAs -= src - if (src.id && prob(100) && !delete_id) //IDs are kept in 90% of the cases //VOREStation Edit - 100% of the cases, excpet when specified otherwise + if(id.loc != src) + id = null + if (src.id && !delete_id) src.id.forceMove(get_turf(src.loc)) else QDEL_NULL(src.id) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index d5cad53096..f57ac672dc 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -29,7 +29,7 @@ shockdirs = list(turn(dir,90),turn(dir,-90)) /obj/machinery/containment_field/Destroy() - unsense_proximity(callback = /atom/proc/HasProximity) + unsense_proximity(callback = TYPE_PROC_REF(/atom,HasProximity)) if(FG1 && !FG1.clean_up) FG1.cleanup() if(FG2 && !FG2.clean_up) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 9923445901..b5bae811e5 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -469,10 +469,8 @@ impacted_mobs.Cut() impacted_mobs = null - trajectory = null - beam_index = null - beam_components = null - + QDEL_NULL(trajectory) + cleanup_beam_segments() if(my_case) if(my_case.BB == src) diff --git a/icons/obj/closets/coffin.dmi b/icons/obj/closets/coffin.dmi index db2c6e1931..d6bd353c64 100644 Binary files a/icons/obj/closets/coffin.dmi and b/icons/obj/closets/coffin.dmi differ