diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 7113ae31304..e4afb444b5d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -89,6 +89,8 @@ var/list/airlock_overlays = list() explosion_block = 1 hud_possible = list(DIAG_AIRLOCK_HUD) + var/air_tight = FALSE //TRUE means density will be set as soon as the door begins to close + /obj/machinery/door/airlock/Initialize() ..() wires = new /datum/wires/airlock(src) @@ -1321,8 +1323,10 @@ var/list/airlock_overlays = list() operating = 1 update_icon(AIRLOCK_CLOSING, 1) src.layer = CLOSED_DOOR_LAYER + if(air_tight) + density = TRUE sleep(5) - src.density = 1 + density = TRUE if(!safe) crush() sleep(9) diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 7c8ad56cf8e..1cf42135d69 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -29,23 +29,15 @@ /atom/movable/light/onShuttleMove() return 0 -/obj/machinery/door/onShuttleMove() - . = ..() - if(!.) - return - INVOKE_ASYNC(src, .proc/close) - // Close any attached airlocks as well - for(var/obj/machinery/door/D in orange(1, src)) - INVOKE_ASYNC(src, .proc/close) - /obj/machinery/door/airlock/onShuttleMove() shuttledocked = 0 - for(var/obj/machinery/door/airlock/A in orange(1, src)) + for(var/obj/machinery/door/airlock/A in range(1, src)) A.shuttledocked = 0 + A.air_tight = TRUE INVOKE_ASYNC(A, /obj/machinery/door/.proc/close) . = ..() shuttledocked = 1 - for(var/obj/machinery/door/airlock/A in orange(1, src)) + for(var/obj/machinery/door/airlock/A in range(1, src)) A.shuttledocked = 1 /mob/onShuttleMove() if(!move_on_shuttle)