From 9dc5f6750c38490ea9babe93ad7dee6f067425de Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Thu, 26 Feb 2015 12:43:39 -0500 Subject: [PATCH] Firedoors no longer block zones --- code/game/machinery/doors/door.dm | 3 ++- code/game/machinery/doors/firedoor.dm | 14 +++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index ebf00444022..30122e4d4b7 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -20,6 +20,7 @@ var/heat_proof = 0 // For glass airlocks/opacity firedoors var/emergency = 0 var/air_properties_vary_with_direction = 0 + var/block_air_zones = 1 //If set, air zones cannot merge across the door even when it is opened. //Multi-tile doors dir = EAST @@ -96,7 +97,7 @@ /obj/machinery/door/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(air_group) return 0 + if(air_group) return !block_air_zones if(istype(mover) && mover.checkpass(PASSGLASS)) return !opacity return !density diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index e0c1cc4588a..968f5b8575e 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -60,6 +60,10 @@ opacity = 0 density = 0 + //These are frequenly used with windows, so make sure zones can pass. + //Generally if a firedoor is at a place where there should be a zone boundery then there will be a regular door underneath it. + block_air_zones = 0 + var/blocked = 0 var/lockdown = 0 // When the door has detected a problem, it locks. var/pdiff_alert = 0 @@ -106,7 +110,7 @@ /obj/machinery/door/firedoor/examine() set src in view() . = ..() - + if(pdiff >= FIREDOOR_MAX_PRESSURE_DIFF) usr << "WARNING: Current pressure differential is [pdiff]kPa! Opening door may result in injury!" @@ -287,7 +291,7 @@ /obj/machinery/door/firedoor/attack_ai(mob/user as mob) if(operating) - return //Already doing something. + return //Already doing something. if(blocked) user << "\red \The [src] is welded solid!" @@ -295,11 +299,11 @@ var/area/A = get_area_master(src) ASSERT(istype(A)) // This worries me. - var/alarmed = A.air_doors_activated || A.fire + var/alarmed = A.air_doors_activated || A.fire var/access_granted = 0 if(isAI(user) || isrobot(user)) - access_granted = 1 + access_granted = 1 if(access_granted == 1) user.visible_message("\blue \The [src] [density ? "open" : "close"]s for \the [user].",\ @@ -320,7 +324,7 @@ spawn(50) if(alarmed) nextstate = CLOSED - + // CHECK PRESSURE /obj/machinery/door/firedoor/process() ..()