diff --git a/code/datums/cache/crew.dm b/code/datums/cache/crew.dm index 84308dd4262..343c975520b 100644 --- a/code/datums/cache/crew.dm +++ b/code/datums/cache/crew.dm @@ -34,7 +34,7 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new()) if(!C || C.sensor_mode == SUIT_SENSOR_OFF || !C.has_sensor) continue var/turf/pos = get_turf(C) - if(!T || pos.z != T.z) + if(!istype(pos) || !T || pos.z != T.z) continue var/list/crewmemberData = list("dead"=0, "oxy"=-1, "tox"=-1, "fire"=-1, "brute"=-1, "area"="", "x"=-1, "y"=-1, "ref" = "\ref[H]") diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 2cb7f9fcd50..3c970c8653e 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -349,17 +349,14 @@ var/target_set = FALSE //have we set a target at any point? /obj/item/pinpointer/crew/proc/trackable(mob/living/carbon/human/H) - var/turf/here = get_turf(src) - if(istype(H.w_uniform, /obj/item/clothing/under)) + if(H && istype(H.w_uniform, /obj/item/clothing/under)) + var/turf/here = get_turf(src) var/obj/item/clothing/under/U = H.w_uniform - // Suit sensors must be on maximum. if(!U.has_sensor || U.sensor_mode < 3) return FALSE - var/turf/there = get_turf(U) - return there && there.z == here.z - + return istype(there) && there.z == here.z return FALSE /obj/item/pinpointer/crew/process() @@ -367,7 +364,7 @@ point_at(target) /obj/item/pinpointer/crew/point_at(atom/target) - if(!trackable(target) || !target) + if(!target || !trackable(target)) icon_state = icon_null return @@ -413,7 +410,7 @@ /obj/item/pinpointer/crew/centcom/trackable(mob/living/carbon/human/H) var/turf/here = get_turf(src) var/turf/there = get_turf(H) - return there && there.z == here.z + return istype(there) && istype(here) && there.z == here.z #undef MODE_OFF #undef MODE_DISK