diff --git a/code/modules/effects/sparks/spawner.dm b/code/modules/effects/sparks/spawner.dm index 6f3790b866e..1ed6b8db2ff 100644 --- a/code/modules/effects/sparks/spawner.dm +++ b/code/modules/effects/sparks/spawner.dm @@ -40,7 +40,7 @@ playsound(location, "sparks", 100, 1) var/direction = 0 - if (!src.spread.len) + if (src.spread && src.spread.len) direction = 0 else direction = pick(src.spread) diff --git a/code/modules/lighting/lighting_source.dm b/code/modules/lighting/lighting_source.dm index cba7976654b..f7aefe77ea8 100644 --- a/code/modules/lighting/lighting_source.dm +++ b/code/modules/lighting/lighting_source.dm @@ -262,7 +262,7 @@ var/do_offset = TRUE var/turf/front = get_step(T, top_atom.dir) - if (front.has_opaque_atom) + if (front && front.has_opaque_atom) do_offset = FALSE cached_origin_x = T.x diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index 42af72ea3c5..172927cc474 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -25,6 +25,11 @@ //processing internal organs is pretty cheap, do that first. for(var/obj/item/organ/I in internal_organs) + if (QDELETED(I)) + log_debug("Organ [DEBUG_REF(src)] was not properly removed from its parent!") + internal_organs -= I + continue + I.process() handle_stance() diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index c51a15a7711..bdbfa9462c0 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -33,18 +33,16 @@ var/list/organ_cache = list() return ..() if(istype(owner, /mob/living/carbon)) - if((owner.internal_organs) && (src in owner.internal_organs)) + if(owner.internal_organs) owner.internal_organs -= src if(istype(owner, /mob/living/carbon/human)) - if((owner.internal_organs_by_name) && (src in owner.internal_organs_by_name)) + if(owner.internal_organs_by_name) owner.internal_organs_by_name -= src - if((owner.organs) && (src in owner.organs)) + if(owner.organs) owner.organs -= src - if((owner.organs_by_name) && (src in owner.organs_by_name)) + if(owner.organs_by_name) owner.organs_by_name -= src - if(src in owner.contents) - owner.contents -= src - + owner = null QDEL_NULL(dna)