From 7ff46d64fbb038b3e9c93f0e5e1d78f63b15d542 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 8 Dec 2014 04:22:56 +1030 Subject: [PATCH] Fixes #7162. Eject ID verb for laptops is still busted though. --- code/WorkInProgress/computer3/component.dm | 17 ++++++++++------- code/game/machinery/computer/card.dm | 4 ++-- code/game/machinery/computer/medical.dm | 2 +- code/game/machinery/computer/security.dm | 2 +- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/code/WorkInProgress/computer3/component.dm b/code/WorkInProgress/computer3/component.dm index 501bbc973e..d5f290b177 100644 --- a/code/WorkInProgress/computer3/component.dm +++ b/code/WorkInProgress/computer3/component.dm @@ -192,9 +192,12 @@ if(reader) reader.loc = loc if(istype(L) && !L.get_active_hand()) - L.put_in_hands(reader) + if(istype(L,/mob/living/carbon/human)) + L.put_in_hands(reader) + else + reader.loc = get_turf(computer) else - reader.loc = computer.loc + reader.loc = get_turf(computer) reader = null return 1 return 0 @@ -203,16 +206,16 @@ if(writer && dualslot) writer.loc = loc if(istype(L) && !L.get_active_hand()) - L.put_in_hands(writer) + if(istype(L,/mob/living/carbon/human)) + L.put_in_hands(writer) + else + writer.loc = get_turf(computer) else - writer.loc = computer.loc + writer.loc = get_turf(computer) writer = null return 1 return 0 - - - // Authorizes the user based on the computer's requirements proc/authenticate() return computer.check_access(reader) diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 9341aca674..a3fa74173a 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -40,13 +40,13 @@ if(scan) usr << "You remove \the [scan] from \the [src]." scan.loc = get_turf(src) - if(!usr.get_active_hand()) + if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human)) usr.put_in_hands(scan) scan = null else if(modify) usr << "You remove \the [modify] from \the [src]." modify.loc = get_turf(src) - if(!usr.get_active_hand()) + if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human)) usr.put_in_hands(modify) modify = null else diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 6d347224f2..1086055fd8 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -26,7 +26,7 @@ if(scan) usr << "You remove \the [scan] from \the [src]." scan.loc = get_turf(src) - if(!usr.get_active_hand()) + if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human)) usr.put_in_hands(scan) scan = null else diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index af720b8c19..ba0ff29e9c 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -32,7 +32,7 @@ if(scan) usr << "You remove \the [scan] from \the [src]." scan.loc = get_turf(src) - if(!usr.get_active_hand()) + if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human)) usr.put_in_hands(scan) scan = null else