From 9d5d8f697cf5fe066b9ace4ae40acfee5538588c Mon Sep 17 00:00:00 2001 From: Krausus Date: Wed, 20 May 2015 07:03:01 -0400 Subject: [PATCH 1/2] Fixes AI camera tracking Fixes tracking everyone where, not being able to track everyone with suit sensors maxed, and not seeing all trackables in the tracking list --- code/game/machinery/camera/tracking.dm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index cb56c226698..3256a1146ef 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -136,8 +136,8 @@ var/obj/item/clothing/head/hat = H.head if(hat.blockTracking) continue - // Now, are they viewable by a camera? (This is last because it's the most intensive check) - if(!near_camera(M)) + // Now, are they trackable? (This is last because it's the most intensive check) + if(!trackable(M)) continue var/name = M.name @@ -219,19 +219,17 @@ sleep(10) /proc/near_camera(var/mob/living/M) - if (!isturf(M.loc)) - return 0 if(isrobot(M)) var/mob/living/silicon/robot/R = M if(!(R.camera && R.camera.can_use()) && !cameranet.checkCameraVis(M)) return 0 - else if(!cameranet.checkCameraVis(M)) + else if(!isturf(M.loc) || !cameranet.checkCameraVis(M)) return 0 return 1 /proc/trackable(atom/movable/M) var/turf/T = get_turf(M) - if(T && (T.z in config.contact_levels)) + if(T && (T.z in config.contact_levels) && hassensorlevel(M, SUIT_SENSOR_TRACKING)) return 1 return near_camera(M) From aea292d3a1fb4afb6664b8d659a4e8a56c22a760 Mon Sep 17 00:00:00 2001 From: Krausus Date: Wed, 20 May 2015 07:22:18 -0400 Subject: [PATCH 2/2] Fixes tracking of off-camera AI bots --- code/game/machinery/camera/tracking.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index 3256a1146ef..28523b3c761 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -229,7 +229,7 @@ /proc/trackable(atom/movable/M) var/turf/T = get_turf(M) - if(T && (T.z in config.contact_levels) && hassensorlevel(M, SUIT_SENSOR_TRACKING)) + if(T && (T.z in config.contact_levels) && (hassensorlevel(M, SUIT_SENSOR_TRACKING) || M in aibots)) return 1 return near_camera(M)