Fix several hard-dels, add harddel ref tracking (#16174)

This commit is contained in:
Wildkins
2023-04-10 20:42:20 +00:00
committed by GitHub
parent e9a9bb3323
commit 3f4786ab23
30 changed files with 418 additions and 905 deletions
+6 -3
View File
@@ -42,11 +42,14 @@
..()*/
/atom/movable/Destroy()
if (important_recursive_contents && (important_recursive_contents[RECURSIVE_CONTENTS_CLIENT_MOBS] || important_recursive_contents[RECURSIVE_CONTENTS_HEARING_SENSITIVE]))
if (HAS_SPATIAL_GRID_CONTENTS(src))
SSspatial_grid.force_remove_from_cell(src)
LAZYCLEARLIST(contained_mobs)
LAZYCLEARLIST(important_recursive_contents)
moved_event.unregister_all_movement(loc, src)
. = ..()
for(var/atom/movable/AM in contents)
@@ -436,7 +439,7 @@
var/turf/our_turf = get_turf(src)
if(our_turf && SSspatial_grid.init_state == SS_INITSTATE_DONE)
SSspatial_grid.exit_cell(src, our_turf)
SSspatial_grid.exit_cell(src, our_turf, RECURSIVE_CONTENTS_HEARING_SENSITIVE)
else if(our_turf && SSspatial_grid.init_state != SS_INITSTATE_DONE)
SSspatial_grid.remove_from_pre_init_queue(src, RECURSIVE_CONTENTS_HEARING_SENSITIVE)
@@ -502,7 +505,7 @@
/atom/movable/proc/clear_from_target_grid()
var/turf/our_turf = get_turf(src)
if(our_turf && SSspatial_grid.init_state == SS_INITSTATE_DONE)
SSspatial_grid.exit_cell(src, our_turf)
SSspatial_grid.exit_cell(src, our_turf, RECURSIVE_CONTENTS_AI_TARGETS)
else if(our_turf && SSspatial_grid.init_state != SS_INITSTATE_DONE)
SSspatial_grid.remove_from_pre_init_queue(src, RECURSIVE_CONTENTS_AI_TARGETS)
@@ -13,8 +13,9 @@
var/maximum_pressure = 90 * ONE_ATMOSPHERE
/obj/machinery/portable_atmospherics/Destroy()
qdel(air_contents)
qdel(holding)
disconnect()
QDEL_NULL(air_contents)
QDEL_NULL(holding)
return ..()
/obj/machinery/portable_atmospherics/Initialize()
@@ -43,11 +44,6 @@
update_icon()
SSvueui.check_uis_for_change(src)
/obj/machinery/portable_atmospherics/Destroy()
qdel(air_contents)
return ..()
/obj/machinery/portable_atmospherics/proc/StandardAirMix()
return list(
GAS_OXYGEN = O2STANDARD * MolesForPressure(),
+1
View File
@@ -150,6 +150,7 @@ Class Procs:
/obj/machinery/Destroy()
STOP_PROCESSING_MACHINE(src, MACHINERY_PROCESS_ALL)
SSmachinery.machinery -= src
if(component_parts)
for(var/atom/A in component_parts)
if(A.loc == src) // If the components are inside the machine, delete them.
@@ -234,7 +234,8 @@ var/obj/machinery/blackbox_recorder/blackbox
if(blackbox)
if(istype(blackbox,/obj/machinery/blackbox_recorder))
qdel(src)
blackbox = src
else
blackbox = src
/obj/machinery/blackbox_recorder/Destroy()
feedback_set_details("blackbox_destroyed","true")
@@ -32,7 +32,6 @@
set_listening(TRUE)
recalculateChannels(TRUE)
possibly_deactivate_in_loc()
moved_event.register(src, src, PROC_REF(possibly_deactivate_in_loc))
/obj/item/device/radio/headset/proc/possibly_deactivate_in_loc()
if(ismob(loc))
@@ -45,6 +44,10 @@
QDEL_NULL(keyslot2)
return ..()
/obj/item/device/radio/headset/Moved(atom/old_loc, forced)
. = ..()
possibly_deactivate_in_loc()
/obj/item/device/radio/headset/set_listening(new_listening, actual_setting = TRUE)
. = ..()
if(listening && on)