From c36a0e6a82b4985f9f04c415bc245d0c72c5ddb3 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Tue, 23 Jun 2020 23:23:44 +0200 Subject: [PATCH 1/5] initial commit --- code/datums/cache/crew.dm | 63 +++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 36 deletions(-) diff --git a/code/datums/cache/crew.dm b/code/datums/cache/crew.dm index 21ec5ebcc79..9682f1f47db 100644 --- a/code/datums/cache/crew.dm +++ b/code/datums/cache/crew.dm @@ -4,7 +4,7 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new()) cache_data = list() ..() -/datum/repository/crew/proc/health_data(var/turf/T) +/datum/repository/crew/proc/health_data(turf/T) var/list/crewmembers = list() if(!T) return crewmembers @@ -18,50 +18,41 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new()) if(world.time < cache_entry.timestamp) return cache_entry.data - var/tracked = scan() - for(var/obj/item/clothing/under/C in tracked) + for(var/mob/living/carbon/human/H in GLOB.mob_living_list) + if(!istype(H.w_uniform, /obj/item/clothing/under)) + continue + var/obj/item/clothing/under/C = H.w_uniform + if(C.sensor_mode == SUIT_SENSOR_OFF || !C.has_sensor) + continue var/turf/pos = get_turf(C) - if((C) && (C.has_sensor) && (pos) && (T && pos.z == T.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 + if(!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]") - var/list/crewmemberData = list("dead"=0, "oxy"=-1, "tox"=-1, "fire"=-1, "brute"=-1, "area"="", "x"=-1, "y"=-1, "ref" = "\ref[H]") + crewmemberData["sensor_type"] = C.sensor_mode + 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") - crewmemberData["sensor_type"] = C.sensor_mode - 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") + if(C.sensor_mode >= SUIT_SENSOR_BINARY) + crewmemberData["dead"] = H.stat > UNCONSCIOUS - if(C.sensor_mode >= SUIT_SENSOR_BINARY) - crewmemberData["dead"] = H.stat > UNCONSCIOUS + 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_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 - 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 + crewmembers[++crewmembers.len] = crewmemberData crewmembers = sortByKey(crewmembers, "name") cache_entry.timestamp = world.time + 5 SECONDS cache_entry.data = crewmembers return crewmembers - -/datum/repository/crew/proc/scan() - var/list/tracked = list() - for(var/mob/living/carbon/human/H in GLOB.mob_list) - if(istype(H.w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/C = H.w_uniform - if(C.has_sensor) - tracked |= C - return tracked From e8e33e63ad608e59579abcb340fa110d5acbb03a Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Wed, 24 Jun 2020 22:34:03 +0200 Subject: [PATCH 2/5] human_list --- code/datums/cache/crew.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/cache/crew.dm b/code/datums/cache/crew.dm index 9682f1f47db..945e59238c9 100644 --- a/code/datums/cache/crew.dm +++ b/code/datums/cache/crew.dm @@ -18,7 +18,7 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new()) if(world.time < cache_entry.timestamp) return cache_entry.data - for(var/mob/living/carbon/human/H in GLOB.mob_living_list) + for(var/mob/living/carbon/human/H in GLOB.human_list) if(!istype(H.w_uniform, /obj/item/clothing/under)) continue var/obj/item/clothing/under/C = H.w_uniform From a74154a88c1f49895179f5ddbefdd4b358215352 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Wed, 24 Jun 2020 22:34:24 +0200 Subject: [PATCH 3/5] now the actual commit... --- code/datums/cache/crew.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/cache/crew.dm b/code/datums/cache/crew.dm index 945e59238c9..c56f0b7ec51 100644 --- a/code/datums/cache/crew.dm +++ b/code/datums/cache/crew.dm @@ -18,7 +18,8 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new()) if(world.time < cache_entry.timestamp) return cache_entry.data - for(var/mob/living/carbon/human/H in GLOB.human_list) + for(var/dingy in GLOB.human_list) + var/mob/living/carbon/human/H = dingy if(!istype(H.w_uniform, /obj/item/clothing/under)) continue var/obj/item/clothing/under/C = H.w_uniform From b7ed93a442f3929d7487e82dd2b0a27d8b3c1da8 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Wed, 24 Jun 2020 22:39:19 +0200 Subject: [PATCH 4/5] review --- code/datums/cache/crew.dm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/code/datums/cache/crew.dm b/code/datums/cache/crew.dm index c56f0b7ec51..1b18202455b 100644 --- a/code/datums/cache/crew.dm +++ b/code/datums/cache/crew.dm @@ -20,10 +20,8 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new()) for(var/dingy in GLOB.human_list) var/mob/living/carbon/human/H = dingy - if(!istype(H.w_uniform, /obj/item/clothing/under)) - continue var/obj/item/clothing/under/C = H.w_uniform - if(C.sensor_mode == SUIT_SENSOR_OFF || !C.has_sensor) + if(!C || C.sensor_mode == SUIT_SENSOR_OFF || !C.has_sensor) continue var/turf/pos = get_turf(C) if(!T || pos.z != T.z) From 19d033a9c41f584f507a25a267af95883613ba4a Mon Sep 17 00:00:00 2001 From: farie82 Date: Wed, 24 Jun 2020 22:49:33 +0200 Subject: [PATCH 5/5] ding --- code/datums/cache/crew.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/cache/crew.dm b/code/datums/cache/crew.dm index 1b18202455b..f92bab9cf7a 100644 --- a/code/datums/cache/crew.dm +++ b/code/datums/cache/crew.dm @@ -18,8 +18,8 @@ GLOBAL_DATUM_INIT(crew_repository, /datum/repository/crew, new()) if(world.time < cache_entry.timestamp) return cache_entry.data - for(var/dingy in GLOB.human_list) - var/mob/living/carbon/human/H = dingy + for(var/thing in GLOB.human_list) + var/mob/living/carbon/human/H = thing var/obj/item/clothing/under/C = H.w_uniform if(!C || C.sensor_mode == SUIT_SENSOR_OFF || !C.has_sensor) continue