From 2ea4dd51c66a2a500a5cb3257c7242f88e9c4cb9 Mon Sep 17 00:00:00 2001 From: Kyep Date: Thu, 2 May 2019 20:15:41 -0700 Subject: [PATCH 1/2] disarming/grabbing a door with IDSCAN off no longer causes a runtime --- code/game/machinery/doors/door.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index adf22a06850..5df95898aaa 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -167,7 +167,7 @@ return if(!requiresID()) user = null //so allowed(user) always succeeds - if(allowed(user) || user.can_advanced_admin_interact()) + if(allowed(user) || (istype(user) && user.can_advanced_admin_interact())) if(density) open() else From d11b96f596891712f884f7910dc1b1665817d3dc Mon Sep 17 00:00:00 2001 From: Kyep Date: Thu, 2 May 2019 22:08:43 -0700 Subject: [PATCH 2/2] fixes the root cause --- code/game/machinery/doors/door.dm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 5df95898aaa..0dd301d5542 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -134,8 +134,6 @@ if(operating) return add_fingerprint(user) - if(!requiresID()) - user = null if(density && !emagged) if(allowed(user)) @@ -157,7 +155,7 @@ return try_to_activate_door(user) /obj/machinery/door/attack_tk(mob/user) - if(requiresID() && !allowed(null)) + if(!allowed(null)) return ..() @@ -165,9 +163,7 @@ add_fingerprint(user) if(operating || emagged) return - if(!requiresID()) - user = null //so allowed(user) always succeeds - if(allowed(user) || (istype(user) && user.can_advanced_admin_interact())) + if(requiresID() && (allowed(user) || user.can_advanced_admin_interact())) if(density) open() else @@ -179,6 +175,8 @@ /obj/machinery/door/allowed(mob/M) if(emergency) return TRUE + if(!requiresID()) + return FALSE // Intentional. machinery/door/requiresID() always == 1. airlocks, however, == 0 if ID scan is disabled. Yes, this var is poorly named. return ..() /obj/machinery/door/proc/try_to_weld(obj/item/weldingtool/W, mob/user)