From 93ac4d333cea6e62d5e4c7c67cd8501be86b9cde Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Tue, 2 Jan 2024 08:40:36 +0100 Subject: [PATCH] no cam tracking by sec / ai in dorms --- code/game/area/areas_vr.dm | 3 +- code/game/machinery/camera/tracking.dm | 4 +- code/modules/tgui/modules/camera.dm | 5 ++- maps/groundbase/groundbase_areas.dm | 1 + maps/stellar_delight/stellar_delight_areas.dm | 3 +- maps/tether/tether_areas.dm | 39 +++++++++++++++++++ 6 files changed, 50 insertions(+), 5 deletions(-) diff --git a/code/game/area/areas_vr.dm b/code/game/area/areas_vr.dm index 8d7b54bdf45..b2b67b089fd 100644 --- a/code/game/area/areas_vr.dm +++ b/code/game/area/areas_vr.dm @@ -2,7 +2,8 @@ var/enter_message var/exit_message var/limit_mob_size = TRUE //If mob size is limited in the area. - var/block_suit_sensors = FALSE //If mob size is limited in the area. + var/block_suit_sensors = FALSE //If suit sensors are blocked in the area. + var/block_tracking = FALSE //If camera tracking is blocked in the area. var/turf/ceiling_type // Size of the area in open turfs, only calculated for indoors areas. diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index d30ec8a07e8..d53e1fdbb73 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -228,7 +228,9 @@ var/obj/item/weapon/card/id/id = GetIdCard() if(id && id.prevent_tracking()) return TRACKING_TERMINATE - if(InvalidPlayerTurf(get_turf(src))) + var/turf/pos = get_turf(src) + var/area/B = pos?.loc // No cam tracking in dorms! + if(InvalidPlayerTurf(pos) || B.block_tracking) return TRACKING_TERMINATE if(invisibility >= INVISIBILITY_LEVEL_ONE) //cloaked return TRACKING_TERMINATE diff --git a/code/modules/tgui/modules/camera.dm b/code/modules/tgui/modules/camera.dm index 5a4551f260b..5bea6e3db61 100644 --- a/code/modules/tgui/modules/camera.dm +++ b/code/modules/tgui/modules/camera.dm @@ -175,15 +175,16 @@ . = TRUE /datum/tgui_module/camera/proc/update_active_camera_screen() + var/turf/newturf = get_turf(active_camera) + var/area/B = newturf?.loc // No cam tracking in dorms! // Show static if can't use the camera - if(!active_camera?.can_use()) + if(!active_camera?.can_use() || B.block_tracking) show_camera_static() return TRUE // If we're not forcing an update for some reason and the cameras are in the same location, // we don't need to update anything. // Most security cameras will end here as they're not moving. - var/turf/newturf = get_turf(active_camera) if(newturf == last_camera_turf) return diff --git a/maps/groundbase/groundbase_areas.dm b/maps/groundbase/groundbase_areas.dm index 8711fd73e7f..9c723240579 100644 --- a/maps/groundbase/groundbase_areas.dm +++ b/maps/groundbase/groundbase_areas.dm @@ -449,6 +449,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE forbid_events = TRUE forbid_singulo = TRUE diff --git a/maps/stellar_delight/stellar_delight_areas.dm b/maps/stellar_delight/stellar_delight_areas.dm index a720cb6060f..53bbffb08fb 100644 --- a/maps/stellar_delight/stellar_delight_areas.dm +++ b/maps/stellar_delight/stellar_delight_areas.dm @@ -129,6 +129,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE forbid_events = TRUE forbid_singulo = TRUE @@ -286,6 +287,7 @@ flags = RAD_SHIELDED| BLUE_SHIELDED |AREA_FLAG_IS_NOT_PERSISTENT soundproofed = TRUE block_suit_sensors = TRUE + block_tracking = TRUE forbid_events = TRUE /area/stellardelight/deck3/portdock @@ -305,4 +307,3 @@ name = "Deck Two Exterior" /area/stellardelight/deck3/exterior name = "Deck Three Exterior" - diff --git a/maps/tether/tether_areas.dm b/maps/tether/tether_areas.dm index 87cf3f3681f..0f5c2daea0f 100644 --- a/maps/tether/tether_areas.dm +++ b/maps/tether/tether_areas.dm @@ -994,6 +994,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = = TRUE /area/crew_quarters/sleep/maintDorm2 name = "\improper Construction Dorm 2" @@ -1002,6 +1003,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = = TRUE /area/crew_quarters/sleep/maintDorm3 name = "\improper Construction Dorm 3" @@ -1010,6 +1012,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = = TRUE /area/crew_quarters/sleep/maintDorm4 name = "\improper Construction Dorm 4" @@ -1018,138 +1021,161 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_1 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_2 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_3 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_4 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_5 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_6 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_7 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_8 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_9 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_10 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_11 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/vistor_room_12 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_1 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_2 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_3 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_4 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_5 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_6 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_7 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_8 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_9 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_10 flags = RAD_SHIELDED | BLUE_SHIELDED soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/Dorm_1/holo name = "\improper Dorm 1 Holodeck" @@ -1175,6 +1201,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/spacedorm2 name = "\improper Visitor Lodging 2" @@ -1184,6 +1211,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/spacedorm3 name = "\improper Visitor Lodging 3" @@ -1193,6 +1221,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/crew_quarters/sleep/spacedorm4 name = "\improper Visitor Lodging 4" @@ -1202,6 +1231,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_basic name = "\improper Holodeck Source" @@ -1209,6 +1239,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_desert name = "\improper Holodeck Source" @@ -1216,6 +1247,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_seating name = "\improper Holodeck Source" @@ -1223,6 +1255,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_beach name = "\improper Holodeck Source" @@ -1230,6 +1263,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_garden name = "\improper Holodeck Source" @@ -1237,6 +1271,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_boxing name = "\improper Holodeck Source" @@ -1244,6 +1279,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_snow name = "\improper Holodeck Source" @@ -1251,6 +1287,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_space name = "\improper Holodeck Source" @@ -1258,6 +1295,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/holodeck/holodorm/source_off name = "\improper Holodeck Source" @@ -1265,6 +1303,7 @@ soundproofed = TRUE limit_mob_size = FALSE block_suit_sensors = TRUE + block_tracking = TRUE /area/ai_core_foyer name = "\improper AI Core Access"