From d72d05485ae07bc8e3d26b8099c0cb8465f65dd8 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 9 Sep 2021 03:34:02 -0700 Subject: [PATCH 1/2] Update airlock.dm --- code/game/machinery/doors/airlock.dm | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 477f72ee3b..ad2f928eae 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -102,6 +102,9 @@ rad_insulation = RAD_MEDIUM_INSULATION var/static/list/airlock_overlays = list() + + /// sigh + var/unelectrify_timerid /obj/machinery/door/airlock/Initialize() . = ..() @@ -791,21 +794,6 @@ return WIRE_INTERACTION_FAIL return ..() -/obj/machinery/door/airlock/proc/electrified_loop() - while (secondsElectrified > NOT_ELECTRIFIED) - sleep(10) - if(QDELETED(src)) - return - - secondsElectrified-- - updateDialog() - // This is to protect against changing to permanent, mid loop. - if(secondsElectrified == NOT_ELECTRIFIED) - set_electrified(NOT_ELECTRIFIED) - else - set_electrified(ELECTRIFIED_PERMANENT) - updateDialog() - /obj/machinery/door/airlock/Topic(href, href_list, var/nowindow = 0) // If you add an if(..()) check you must first remove the var/nowindow parameter. // Otherwise it will runtime with this kind of error: null.Topic() @@ -1365,8 +1353,17 @@ wires.cut_all() update_icon() +/obj/machinery/door/airlock/proc/remove_electrify() + secondsElectrified = NOT_ELECTRIFIED + unelectrify_timerid = null + /obj/machinery/door/airlock/proc/set_electrified(seconds, mob/user) secondsElectrified = seconds + if(unelectrify_timerid) + deltimer(unelectrify_timerid) + unelectrify_timerid = null + if(secondsElectrified != ELECTRIFIED_PERMANENT) + unelectrify_timerid = addtimer(CALLBACK(src, .proc/remove_electrify), secondsElectrified SECONDS, TIMER_STOPPABLE) diag_hud_set_electrified() if(secondsElectrified > NOT_ELECTRIFIED) INVOKE_ASYNC(src, .proc/electrified_loop) From a8d9a38d181c7eb07e98d564d796692b62e779cd Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Thu, 9 Sep 2021 17:58:47 -0700 Subject: [PATCH 2/2] Update airlock.dm --- code/game/machinery/doors/airlock.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index ad2f928eae..982e40a79b 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1365,8 +1365,6 @@ if(secondsElectrified != ELECTRIFIED_PERMANENT) unelectrify_timerid = addtimer(CALLBACK(src, .proc/remove_electrify), secondsElectrified SECONDS, TIMER_STOPPABLE) diag_hud_set_electrified() - if(secondsElectrified > NOT_ELECTRIFIED) - INVOKE_ASYNC(src, .proc/electrified_loop) if(user) var/message