Runtime fixes (#2017)

changes:

Added more QDELETED checks to organ processing.
Fixed some misc runtimes in lighting & sparks.
This commit is contained in:
Lohikar
2017-03-30 22:06:24 +03:00
committed by skull132
parent 2d26596320
commit e64074c5a7
4 changed files with 12 additions and 9 deletions
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
@@ -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()
+5 -7
View File
@@ -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)