From 29777f25e5268dd7789ba198cfc9d88f33adb5bc Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 27 Oct 2019 11:55:11 +0100 Subject: [PATCH 1/2] stop cyborg from interacting with objects out of their FoV, lil camera console fix --- code/game/machinery/computer/camera.dm | 54 ++++++------------- .../modules/mob/living/silicon/robot/robot.dm | 2 +- 2 files changed, 17 insertions(+), 39 deletions(-) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 7dcd85d310..3a2e0cbfb7 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -17,7 +17,7 @@ network += lowertext(i) /obj/machinery/computer/security/check_eye(mob/user) - if( (stat & (NOPOWER|BROKEN)) || user.incapacitated() || user.eye_blind ) + if(CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !user.canUseTopic(src, !issilicon(user), FALSE)) user.unset_machine() return if(!(user in watchers)) @@ -30,14 +30,6 @@ if(!C.can_use()) user.unset_machine() return - if(!issilicon(user)) - if(!Adjacent(user)) - user.unset_machine() - return - else if(iscyborg(user)) - var/list/viewing = viewers(src) - if(!viewing.Find(user)) - user.unset_machine() /obj/machinery/computer/security/on_unset_machine(mob/user) watchers.Remove(user) @@ -97,36 +89,22 @@ user.unset_machine() playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) return - if(C) - var/camera_fail = 0 - if(!C.can_use() || user.machine != src || user.eye_blind || user.incapacitated()) - camera_fail = 1 - else if(iscyborg(user)) - var/list/viewing = viewers(src) - if(!viewing.Find(user)) - camera_fail = 1 - else if(!issilicon(user)) - if(!Adjacent(user)) - camera_fail = 1 - - if(camera_fail) - user.unset_machine() - return 0 - - playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0) - if(isAI(user)) - var/mob/living/silicon/ai/A = user - A.eyeobj.setLoc(get_turf(C)) - A.client.eye = A.eyeobj - else - user.reset_perspective(C) - user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) - user.clear_fullscreen("flash", 5) - watchers[user] = C - use_power(50) - addtimer(CALLBACK(src, .proc/use_camera_console, user), 5) - else + if(!C || !C.can_use() || CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !user.canUseTopic(src, !issilicon(user), FALSE)) user.unset_machine() + return FALSE + + playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0) + if(isAI(user)) + var/mob/living/silicon/ai/A = user + A.eyeobj.setLoc(get_turf(C)) + A.client.eye = A.eyeobj + else + user.reset_perspective(C) + user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static) + user.clear_fullscreen("flash", 5) + watchers[user] = C + use_power(50) + addtimer(CALLBACK(src, .proc/use_camera_console, user), 5) //returns the list of cameras accessible from this computer /obj/machinery/computer/security/proc/get_available_cameras() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 5b670aaa42..56f9971f4c 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -942,7 +942,7 @@ if(be_close && !in_range(M, src)) to_chat(src, "You are too far away!") return FALSE - return TRUE + return can_see(M) //stop cyborgs from using things they have lost vision of. /mob/living/silicon/robot/updatehealth() ..() From 9608b437b459abdedf0070127a74e38fbb07815d Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 27 Oct 2019 12:18:49 +0100 Subject: [PATCH 2/2] I need to fix the camera bug later... thing has been borked for one year. --- code/game/machinery/computer/camera.dm | 4 ++-- code/modules/mob/living/silicon/robot/robot.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 3a2e0cbfb7..11935e2bfc 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -17,7 +17,7 @@ network += lowertext(i) /obj/machinery/computer/security/check_eye(mob/user) - if(CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !user.canUseTopic(src, !issilicon(user), FALSE)) + if(CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !in_view_range(user, src) || !user.canUseTopic(src, !issilicon(user), FALSE)) user.unset_machine() return if(!(user in watchers)) @@ -89,7 +89,7 @@ user.unset_machine() playsound(src, 'sound/machines/terminal_off.ogg', 25, 0) return - if(!C || !C.can_use() || CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !user.canUseTopic(src, !issilicon(user), FALSE)) + if(!C || !C.can_use() || CHECK_BITFIELD(stat, NOPOWER|BROKEN) || is_blind(user) || !in_view_range(user, src) || !user.canUseTopic(src, !issilicon(user), FALSE)) user.unset_machine() return FALSE diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 56f9971f4c..5b670aaa42 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -942,7 +942,7 @@ if(be_close && !in_range(M, src)) to_chat(src, "You are too far away!") return FALSE - return can_see(M) //stop cyborgs from using things they have lost vision of. + return TRUE /mob/living/silicon/robot/updatehealth() ..()