diff --git a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm index eb4e4f8211..fd9ca0a658 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/camera.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/camera.dm @@ -9,7 +9,7 @@ var/datum/action/innate/vest_disguise_swap/vest_disguise_action = new var/datum/action/innate/set_droppoint/set_droppoint_action = new var/obj/machinery/abductor/console/console - z_lock = ZLEVEL_STATION_PRIMARY + station_lock_override = TRUE icon = 'icons/obj/abductor.dmi' icon_state = "camera" diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index 3d5b8f026b..711ed6e55b 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -3,7 +3,8 @@ desc = "Used to access the various cameras on the station." icon_screen = "cameras" icon_keyboard = "security_key" - var/z_lock = null // Lock use to this zlevel + var/list/z_lock = list() // Lock use to these z levels + var/station_lock_override = FALSE var/mob/camera/aiEye/remote/eyeobj var/mob/living/current_user = null var/list/networks = list("SS13") @@ -13,6 +14,11 @@ light_color = LIGHT_COLOR_RED +/obj/machinery/computer/camera_advanced/Initialize() + . = ..() + if(station_lock_override) + z_lock = GLOB.station_z_levels.Copy() + /obj/machinery/computer/camera_advanced/syndie icon_keyboard = "syndie_key" @@ -76,7 +82,7 @@ if(!eyeobj.eye_initialized) var/camera_location for(var/obj/machinery/camera/C in GLOB.cameranet.cameras) - if(!C.can_use() || z_lock && C.z != z_lock) + if(!C.can_use() || z_lock.len && !(C.z in z_lock)) continue if(C.network & networks) camera_location = get_turf(C) @@ -201,7 +207,7 @@ var/list/L = list() for (var/obj/machinery/camera/cam in GLOB.cameranet.cameras) - if(origin.z_lock && cam.z != origin.z_lock) + if(origin.z_lock.len && !(cam.z in origin.z_lock)) continue L.Add(cam) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 9199e5eb14..65669d8251 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -1,7 +1,6 @@ /obj/machinery/computer/camera_advanced/shuttle_docker name = "navigation computer" desc = "Used to designate a precise transit location for a spacecraft." - z_lock = ZLEVEL_STATION_PRIMARY jump_action = null var/datum/action/innate/shuttledocker_rotate/rotate_action = new var/datum/action/innate/shuttledocker_place/place_action = new @@ -133,7 +132,7 @@ if(!V) continue var/obj/docking_port/stationary/S = V - if(z_lock && (S.z != z_lock)) + if(z_lock.len && !(S.z in z_lock)) continue if((S.id == shuttlePortId) || jumpto_ports[S.id]) continue @@ -222,7 +221,7 @@ if(!V) continue var/obj/docking_port/stationary/S = V - if(console.z_lock && (S.z != console.z_lock)) + if(console.z_lock.len && !(S.z in console.z_lock)) continue if(console.jumpto_ports[S.id]) L[S.name] = S diff --git a/code/modules/shuttle/syndicate.dm b/code/modules/shuttle/syndicate.dm index 1c3d416fd0..ac1339d33e 100644 --- a/code/modules/shuttle/syndicate.dm +++ b/code/modules/shuttle/syndicate.dm @@ -47,8 +47,8 @@ desc = "Used to designate a precise transit location for the syndicate shuttle." icon_screen = "syndishuttle" icon_keyboard = "syndie_key" - z_lock = ZLEVEL_STATION_PRIMARY shuttleId = "syndicate" + station_lock_override = TRUE shuttlePortId = "syndicate_custom" shuttlePortName = "custom location" jumpto_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1)