diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 0c1b0a35426..157b0312995 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -64,8 +64,8 @@ GLOBAL_DATUM_INIT(pipe_icon_manager, /datum/pipe_icon_manager, new()) // Icons/overlays/underlays /obj/machinery/atmospherics/update_icon() - var/turf/T = loc - if(level == 2 || !T.intact) + var/turf/T = get_turf(loc) + if(!T || level == 2 || !T.intact) plane = GAME_PLANE else plane = FLOOR_PLANE diff --git a/code/controllers/subsystem/idlenpcpool.dm b/code/controllers/subsystem/idlenpcpool.dm index 2dad0abca0f..3757237243f 100644 --- a/code/controllers/subsystem/idlenpcpool.dm +++ b/code/controllers/subsystem/idlenpcpool.dm @@ -29,6 +29,7 @@ SUBSYSTEM_DEF(idlenpcpool) var/mob/living/simple_animal/SA = currentrun[currentrun.len] --currentrun.len if(!SA) + log_debug("idlenpcpool encountered an invalid entry, resumed: [resumed], SA [SA], type of SA [SA?.type], null [SA == null], qdelled [QDELETED(SA)], SA in AI_IDLE list: [SA in GLOB.simple_animals[AI_IDLE]]") GLOB.simple_animals[AI_IDLE] -= SA continue diff --git a/code/controllers/subsystem/npcpool.dm b/code/controllers/subsystem/npcpool.dm index 0de306b12eb..f2e159404fd 100644 --- a/code/controllers/subsystem/npcpool.dm +++ b/code/controllers/subsystem/npcpool.dm @@ -21,6 +21,10 @@ SUBSYSTEM_DEF(npcpool) while(currentrun.len) var/mob/living/simple_animal/SA = currentrun[currentrun.len] --currentrun.len + if(!SA) + log_debug("npcpool encountered an invalid entry, resumed: [resumed], SA [SA], type of SA [SA?.type], null [SA == null], qdelled [QDELETED(SA)], SA in AI_ON list: [SA in GLOB.simple_animals[AI_ON]]") + GLOB.simple_animals[AI_ON] -= SA + continue if(!SA.ckey && !SA.notransform) if(SA.stat != DEAD) diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm index 140ead3a947..74ed59d2469 100644 --- a/code/game/gamemodes/blob/overmind.dm +++ b/code/game/gamemodes/blob/overmind.dm @@ -48,13 +48,14 @@ update_health_hud() /mob/camera/blob/update_health_hud() - if(blob_core) + if(blob_core && hud_used) hud_used.blobhealthdisplay.maptext = "
[round(blob_core.obj_integrity)]
" /mob/camera/blob/proc/add_points(var/points) if(points != 0) blob_points = Clamp(blob_points + points, 0, max_blob_points) - hud_used.blobpwrdisplay.maptext = "
[round(src.blob_points)]
" + if(hud_used) + hud_used.blobpwrdisplay.maptext = "
[round(src.blob_points)]
" /mob/camera/blob/say(var/message) if(!message) diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm index b0b77a456d5..4663fef8b97 100644 --- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm +++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm @@ -40,7 +40,7 @@ name = "protective membranes" desc = "These variable transparency organic membranes will protect you from welders and flashes and heal your eye damage." icon_state = "ling_eyeshield" - eye_colour = null + eye_colour = "#000000" implant_overlay = null slot = "eye_ling" status = 0 @@ -61,7 +61,7 @@ name = "heat receptors" desc = "These heat receptors dramatically increases eyes light sensing ability." icon_state = "ling_thermal" - eye_colour = null + eye_colour = "#000000" implant_overlay = null slot = "eye_ling" status = 0 diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index f3a4b8a241c..5244bcb32e1 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -69,7 +69,7 @@ /obj/structure/grille/attack_animal(mob/user) . = ..() - if(!shock(user, 70)) + if(. && !QDELETED(src) && !shock(user, 70)) take_damage(rand(5,10), BRUTE, "melee", 1) /obj/structure/grille/hulk_damage() diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index ea12f0a82d3..ee28919fd67 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -147,6 +147,8 @@ Gunshots/explosions/opening doors/less rare audio (done) START_PROCESSING(SSobj, src) /obj/effect/hallucination/fake_flood/process() + if(!target) + qdel(src) if(next_expand <= world.time) radius++ if(radius > FAKE_FLOOD_MAX_RADIUS) diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 463911861c2..80dceea5048 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -12,12 +12,11 @@ var/see_invisible = 0 var/lighting_alpha - var/eye_colour = "#000000" + var/eye_colour = "#000000" // Should never be null var/old_eye_colour = "#000000" var/flash_protect = 0 var/aug_message = "Your vision is augmented!" - /obj/item/organ/internal/cyberimp/eyes/insert(var/mob/living/carbon/M, var/special = 0) ..() var/mob/living/carbon/human/H = M diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index fba2df57e8a..2973573bc2c 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -5,7 +5,7 @@ organ_tag = "eyes" parent_organ = "head" slot = "eyes" - var/eye_colour = "#000000" + var/eye_colour = "#000000" // Should never be null var/list/colourmatrix = null var/list/colourblind_matrix = MATRIX_GREYSCALE //Special colourblindness parameters. By default, it's black-and-white. var/list/replace_colours = LIST_GREYSCALE_REPLACE diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index 1fde13e246e..305c08ff17e 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -404,7 +404,7 @@ Note that amputating the affected organ does in fact remove the infection from t fracture() /obj/item/organ/external/proc/check_for_internal_bleeding(damage) - if(NO_BLOOD in owner.dna.species.species_traits) + if(owner && NO_BLOOD in owner.dna.species.species_traits) return var/local_damage = brute_dam + damage if(damage > 15 && local_damage > 30 && prob(damage) && !is_robotic())