From 5212706f3df6153bfe6be792d8e0a123e5f85fce Mon Sep 17 00:00:00 2001 From: spookerton Date: Mon, 28 Mar 2022 13:09:28 +0100 Subject: [PATCH] cleans up atom/movable/Destroy + adds walk(src, 0) --- code/datums/orbit.dm | 4 --- code/game/atoms_movable.dm | 26 ++++++++++++------- code/game/gamemodes/events/clang.dm | 3 --- code/game/gamemodes/events/dust.dm | 3 --- code/game/objects/buckling.dm | 4 --- code/game/objects/effects/chem/chemsmoke.dm | 3 --- code/game/objects/effects/spiders.dm | 1 - .../items/weapons/grenades/flashbang.dm | 4 --- code/modules/lighting/lighting_atom.dm | 5 ---- 9 files changed, 16 insertions(+), 37 deletions(-) diff --git a/code/datums/orbit.dm b/code/datums/orbit.dm index 0176d7f23d..7d5d158cf3 100644 --- a/code/datums/orbit.dm +++ b/code/datums/orbit.dm @@ -115,10 +115,6 @@ if (O.orbiter) O.orbiter.stop_orbit() -/atom/movable/Destroy(force = FALSE) - . = ..() - if (orbiting) - stop_orbit() /* /atom/movable/proc/transfer_observers_to(atom/movable/target) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 0f86402b84..5c006a231f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -30,24 +30,30 @@ var/cloaked = FALSE //If we're cloaked or not var/image/cloaked_selfimage //The image we use for our client to let them see where we are + /atom/movable/Destroy() - . = ..() - if(reagents) + if (reagents) qdel(reagents) reagents = null - for(var/atom/movable/AM in contents) - qdel(AM) - var/turf/un_opaque - if(opacity && isturf(loc)) - un_opaque = loc - + walk(src, 0) + for (var/atom/movable/movable in contents) + qdel(movable) + if (orbiting) + stop_orbit() + var/turf/origin + if (opacity && isturf(loc)) + origin = loc + unbuckle_all_mobs() moveToNullspace() - if(un_opaque) - un_opaque.recalc_atom_opacity() + if (origin) + origin.recalc_atom_opacity() + origin.reconsider_lights() if (pulledby) if (pulledby.pulling == src) pulledby.pulling = null pulledby = null + return ..() + /atom/movable/vv_edit_var(var_name, var_value) if(var_name in GLOB.VVpixelmovement) //Pixel movement is not yet implemented, changing this will break everything irreversibly. diff --git a/code/game/gamemodes/events/clang.dm b/code/game/gamemodes/events/clang.dm index fd6a36e3d4..876642ee84 100644 --- a/code/game/gamemodes/events/clang.dm +++ b/code/game/gamemodes/events/clang.dm @@ -41,9 +41,6 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 if(clong && prob(25)) src.loc = clong.loc -/obj/effect/immovablerod/Destroy() - walk(src, 0) // Because we might have called walk_towards, we must stop the walk loop or BYOND keeps an internal reference to us forever. - return ..() /proc/immovablerod() var/startx = 0 diff --git a/code/game/gamemodes/events/dust.dm b/code/game/gamemodes/events/dust.dm index 750de2ebd5..e10d293a6c 100644 --- a/code/game/gamemodes/events/dust.dm +++ b/code/game/gamemodes/events/dust.dm @@ -81,9 +81,6 @@ The "dust" will damage the hull of the station causin minor hull breaches. strength = 1 life = 40 -/obj/effect/space_dust/Destroy() - walk(src, 0) // Because we might have called walk_towards, we must stop the walk loop or BYOND keeps an internal reference to us forever. - return ..() /obj/effect/space_dust/touch_map_edge() qdel(src) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 4cb50e98ac..bd11f25d5a 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -42,10 +42,6 @@ /atom/movable/proc/has_buckled_mobs() return LAZYLEN(buckled_mobs) -/atom/movable/Destroy() - unbuckle_all_mobs() - return ..() - /atom/movable/proc/buckle_mob(mob/living/M, forced = FALSE, check_loc = TRUE) if(check_loc && M.loc != loc) diff --git a/code/game/objects/effects/chem/chemsmoke.dm b/code/game/objects/effects/chem/chemsmoke.dm index 443478d180..b862916e01 100644 --- a/code/game/objects/effects/chem/chemsmoke.dm +++ b/code/game/objects/effects/chem/chemsmoke.dm @@ -12,9 +12,6 @@ create_reagents(500) return -/obj/effect/vfx/smoke/chem/Destroy() - walk(src, 0) // Because we might have called walk_to, we must stop the walk loop or BYOND keeps an internal reference to us forever. - return ..() /obj/effect/vfx/smoke/chem/transparent opacity = FALSE diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 660065352f..4a9c8bf55f 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -163,7 +163,6 @@ /obj/effect/spider/spiderling/Destroy() STOP_PROCESSING(SSobj, src) - walk(src, 0) // Because we might have called walk_to, we must stop the walk loop or BYOND keeps an internal reference to us forever. return ..() /obj/effect/spider/spiderling/Bump(atom/user) diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index f011741607..0fbd593d06 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -93,10 +93,6 @@ else if(M.ear_damage >= 5) to_chat(M, "Your ears start to ring!") -/obj/item/weapon/grenade/flashbang/Destroy() - walk(src, 0) // Because we might have called walk_away, we must stop the walk loop or BYOND keeps an internal reference to us forever. - return ..() - /obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve desc = "Use of this weapon may constiute a war crime in your area, consult your local Site Manager." diff --git a/code/modules/lighting/lighting_atom.dm b/code/modules/lighting/lighting_atom.dm index 1f935dc2a9..6e509db5fa 100644 --- a/code/modules/lighting/lighting_atom.dm +++ b/code/modules/lighting/lighting_atom.dm @@ -59,11 +59,6 @@ light = null return ..() -/atom/movable/Destroy() - var/turf/T = loc - if(opacity && istype(T)) - T.reconsider_lights() - return ..() /atom/movable/Moved(atom/old_loc, direction, forced = FALSE) . = ..()