diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index cb5a6522a03..657cdd3d119 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -181,6 +181,7 @@ desc = "A door remote control switch." var/normaldoorcontrol = FALSE var/specialfunctions = OPEN // Bitflag, see assembly file + var/sync_doors = TRUE /obj/machinery/button/door/indestructible resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF @@ -189,10 +190,12 @@ if(!device) if(normaldoorcontrol) var/obj/item/assembly/control/airlock/A = new(src) - device = A A.specialfunctions = specialfunctions + device = A else - device = new /obj/item/assembly/control(src) + var/obj/item/assembly/control/C = new(src) + C.sync_doors = sync_doors + device = C ..() /obj/machinery/button/door/incinerator_vent_toxmix diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index aa1ee8adbc4..874cbb9e618 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -6,6 +6,7 @@ var/id = null var/can_change_id = 0 var/cooldown = FALSE //Door cooldowns + var/sync_doors = TRUE /obj/item/assembly/control/examine(mob/user) ..() @@ -17,7 +18,7 @@ var/openclose for(var/obj/machinery/door/poddoor/M in GLOB.machines) if(M.id == src.id) - if(openclose == null) + if(openclose == null || !sync_doors) openclose = M.density INVOKE_ASYNC(M, openclose ? /obj/machinery/door/poddoor.proc/open : /obj/machinery/door/poddoor.proc/close) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10)