diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index f1d071c4689..8a45e396f5e 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -70,6 +70,7 @@ power_change() if(powered(ENVIRON)) stat &= ~NOPOWER + latetoggle() else stat |= NOPOWER return @@ -197,17 +198,26 @@ nextstate = CLOSED - process() + proc/latetoggle() if(operating || stat & NOPOWER || !nextstate) return switch(nextstate) if(OPEN) - spawn() - open() + nextstate = null + open() if(CLOSED) - spawn() - close() - nextstate = null + nextstate = null + close() + return + + open() + ..() + latetoggle() + return + + close() + ..() + latetoggle() return