diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index a36e995c9a5f..08b8ce9b6cb8 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -27,8 +27,6 @@ GLOBAL_LIST_INIT(simple_animals, list(list(),list(),list(),list())) // One for e GLOBAL_LIST_EMPTY(spidermobs) //all sentient spider mobs GLOBAL_LIST_EMPTY(bots_list) GLOBAL_LIST_EMPTY(aiEyes) -GLOBAL_LIST_EMPTY(suit_sensors_list) //all people with suit sensors on -GLOBAL_LIST_EMPTY(nanite_sensors_list) //app people with nanite monitoring program GLOBAL_LIST_EMPTY(new_player_list) //all /mob/dead/new_player, in theory all should have clients and those that don't are in the process of spawning and get deleted when done. ///underages who have been reported to security for trying to buy things they shouldn't, so they can't spam GLOBAL_LIST_EMPTY(narcd_underages) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index c214cbd25d2a..815286da7395 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -128,80 +128,40 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) var/pos_y var/life_status - for(var/i in GLOB.nanite_sensors_list) - var/mob/living/carbon/human/H = i + for(var/mob/living/carbon/human/H in GLOB.carbon_list) var/nanite_sensors = FALSE if(H in SSnanites.nanite_monitored_mobs) nanite_sensors = TRUE // Check if their z-level is correct and if they are wearing a uniform. // Accept H.z==0 as well in case the mob is inside an object. - - if(((H.z == 0 || H.z == z || (is_station_level(H.z) && is_station_level(z))) && (nanite_sensors))) - - pos = H.z == 0 || (nanite_sensors) ? get_turf(H) : null - - // Special case: If the mob is inside an object confirm the z-level on turf level. - if (H.z == 0 && (!pos || pos.z != z)) - continue - - I = H.wear_id ? H.wear_id.GetID() : null - - if (I) - name = I.registered_name - assignment = I.assignment - ijob = jobs[I.assignment] - else - name = "Unknown" - assignment = "" - ijob = 80 - - life_status = (!H.stat ? TRUE : FALSE) - - oxydam = round(H.getOxyLoss(),1) - toxdam = round(H.getToxLoss(),1) - burndam = round(H.getFireLoss(),1) - brutedam = round(H.getBruteLoss(),1) - - if (!pos) - pos = get_turf(H) - area = get_area_name(H, TRUE) - pos_x = pos.x - pos_y = pos.y - - results[++results.len] = list("name" = name, "assignment" = assignment, "ijob" = ijob, "life_status" = life_status, "oxydam" = oxydam, "toxdam" = toxdam, "burndam" = burndam, "brutedam" = brutedam, "area" = area, "pos_x" = pos_x, "pos_y" = pos_y, "can_track" = H.can_track(null)) - - for(var/i in GLOB.suit_sensors_list) - var/mob/living/carbon/human/H = i - // Check if their z-level is correct and if they are wearing a uniform. - // Accept H.z==0 as well in case the mob is inside an object. Nanite sensors come before normal sensors. - if((H.z == 0 || H.z == z || (is_station_level(H.z) && is_station_level(z))) && (istype(H.w_uniform, /obj/item/clothing/under)) && !(H in GLOB.nanite_sensors_list)) + if ((H.z == 0 || H.z == z) && (istype(H.w_uniform, /obj/item/clothing/under) || nanite_sensors)) U = H.w_uniform // Are the suit sensors on? - if ((U.has_sensor > 0) && U.sensor_mode) - pos = H.z == 0 || (U.sensor_mode == SENSOR_COORDS) ? get_turf(H) : null + if (nanite_sensors || ((U.has_sensor > 0) && U.sensor_mode)) + pos = H.z == 0 || (nanite_sensors || U.sensor_mode == SENSOR_COORDS) ? get_turf(H) : null // Special case: If the mob is inside an object confirm the z-level on turf level. - if (H.z == 0 && (!pos || pos.z != z)) + if (H.z == 0 && (!pos || (pos.z != z) && !(is_station_level(pos.z) && is_station_level(z)))) continue I = H.wear_id ? H.wear_id.GetID() : null if (I) name = I.registered_name - assignment = I.originalassignment - ijob = jobs[I.originalassignment] + assignment = I.assignment + ijob = jobs[I.assignment] else name = "Unknown" assignment = "" ijob = 80 - if (U.sensor_mode >= SENSOR_LIVING) + if (nanite_sensors || U.sensor_mode >= SENSOR_LIVING) life_status = (!H.stat ? TRUE : FALSE) else life_status = null - if (U.sensor_mode >= SENSOR_VITALS) + if (nanite_sensors || U.sensor_mode >= SENSOR_VITALS) oxydam = round(H.getOxyLoss(),1) toxdam = round(H.getToxLoss(),1) burndam = round(H.getFireLoss(),1) @@ -212,7 +172,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) burndam = null brutedam = null - if (U.sensor_mode >= SENSOR_COORDS) + if (nanite_sensors || U.sensor_mode >= SENSOR_COORDS) if (!pos) pos = get_turf(H) area = get_area_name(H, TRUE) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a352e52ad371..d9996a130c29 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -214,7 +214,7 @@ BLIND // can't see anything to_chat(usr, "You have moved too far away!") return sensor_mode = modes.Find(switchMode) - 1 - set_sensor_glob() + if (src.loc == usr) switch(sensor_mode) if(0) @@ -336,17 +336,3 @@ BLIND // can't see anything deconstruct(FALSE) else ..() - -/obj/item/clothing/proc/set_sensor_glob() - var/mob/living/carbon/human/H = src.loc - - if (istype(H.w_uniform, /obj/item/clothing/under)) - var/obj/item/clothing/under/U = H.w_uniform - if (U.has_sensor && U.sensor_mode && U.has_sensor != BROKEN_SENSORS) - GLOB.suit_sensors_list |= H - - else - GLOB.suit_sensors_list -= H - - else - GLOB.suit_sensors_list -= H diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index f45f1aca1924..ade35566a785 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -101,7 +101,6 @@ attached_accessory.on_uniform_equip(src, user) if(attached_accessory.above_suit) H.update_inv_wear_suit() - set_sensor_glob() /obj/item/clothing/under/dropped(mob/user) if(attached_accessory) @@ -110,7 +109,6 @@ var/mob/living/carbon/human/H = user if(attached_accessory.above_suit) H.update_inv_wear_suit() - set_sensor_glob() ..() /obj/item/clothing/under/proc/attach_accessory(obj/item/I, mob/user, notifyAttach = 1) diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index 8d6ff5019fba..45799e80ee04 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -82,19 +82,11 @@ /datum/nanite_program/monitoring/enable_passive_effect() . = ..() SSnanites.nanite_monitored_mobs |= host_mob - if(ishuman(host_mob)) - var/mob/living/carbon/human/H = host_mob - if(!(H in GLOB.nanite_sensors_list)) - GLOB.nanite_sensors_list |= H host_mob.hud_set_nanite_indicator() /datum/nanite_program/monitoring/disable_passive_effect() . = ..() SSnanites.nanite_monitored_mobs -= host_mob - if(ishuman(host_mob)) - var/mob/living/carbon/human/H = host_mob - GLOB.nanite_sensors_list -= H - host_mob.hud_set_nanite_indicator() /datum/nanite_program/triggered/self_scan