From 189330b4b30a3bd8a8b7070d90e1e77d36e62915 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Thu, 12 Feb 2015 20:27:28 +0000 Subject: [PATCH] Fixes template modification exploit for crew monitoring computer --- code/game/machinery/computer/crew.dm | 29 +++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index fdbaae21cc8..06fd906ea88 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -68,33 +68,36 @@ for(var/obj/item/clothing/under/C in src.tracked) - var/turf/pos = get_turf(C) - if((C) && (C.has_sensor) && (pos) && (pos.z == src.z) && C.sensor_mode) + if((C) && (C.has_sensor) && (pos) && (pos.z == src.z) && (C.sensor_mode != SUIT_SENSOR_OFF)) if(istype(C.loc, /mob/living/carbon/human)) var/mob/living/carbon/human/H = C.loc if(H.w_uniform != C) continue - var/list/crewmemberData = list() + var/list/crewmemberData = list("dead"=0, "oxy"=-1, "tox"=-1, "fire"=-1, "brute"=-1, "area"="", "x"=-1, "y"=-1) crewmemberData["sensor_type"] = C.sensor_mode - crewmemberData["dead"] = H.stat > 1 - crewmemberData["oxy"] = round(H.getOxyLoss(), 1) - crewmemberData["tox"] = round(H.getToxLoss(), 1) - crewmemberData["fire"] = round(H.getFireLoss(), 1) - crewmemberData["brute"] = round(H.getBruteLoss(), 1) - crewmemberData["name"] = H.get_authentification_name(if_no_id="Unknown") crewmemberData["rank"] = H.get_authentification_rank(if_no_id="Unknown", if_no_job="No Job") crewmemberData["assignment"] = H.get_assignment(if_no_id="Unknown", if_no_job="No Job") - var/area/A = get_area(H) - crewmemberData["area"] = sanitize(A.name) - crewmemberData["x"] = pos.x - crewmemberData["y"] = pos.y + if(C.sensor_mode >= SUIT_SENSOR_BINARY) + crewmemberData["dead"] = H.stat > 1 + + if(C.sensor_mode >= SUIT_SENSOR_VITAL) + crewmemberData["oxy"] = round(H.getOxyLoss(), 1) + crewmemberData["tox"] = round(H.getToxLoss(), 1) + crewmemberData["fire"] = round(H.getFireLoss(), 1) + crewmemberData["brute"] = round(H.getBruteLoss(), 1) + + if(C.sensor_mode >= SUIT_SENSOR_TRACKING) + var/area/A = get_area(H) + crewmemberData["area"] = sanitize(A.name) + crewmemberData["x"] = pos.x + crewmemberData["y"] = pos.y crewmembers[++crewmembers.len] = crewmemberData