diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index f687ee2fd7..e4d3d61c31 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -109,7 +109,7 @@ SUBSYSTEM_DEF(air) return resumed = 0 currentpart = SSAIR_ATMOSMACHINERY - + // This is only machinery like filters, mixers that don't interact with air if(currentpart == SSAIR_ATMOSMACHINERY) timer = TICK_USAGE_REAL process_atmos_machinery(resumed) @@ -127,7 +127,9 @@ SUBSYSTEM_DEF(air) return resumed = 0 currentpart = SSAIR_FINALIZE_TURFS - + // This literally just waits for the turf processing thread to finish, doesn't do anything else. + // this is necessary cause the next step after this interacts with the air--we get consistency + // issues if we don't wait for it, disappearing gases etc. if(currentpart == SSAIR_FINALIZE_TURFS) finish_turf_processing(resumed) if(state != SS_RUNNING) @@ -143,7 +145,7 @@ SUBSYSTEM_DEF(air) return resumed = 0 currentpart = equalize_enabled ? SSAIR_EQUALIZE : SSAIR_EXCITEDGROUPS - + // Monstermos and/or Putnamos--making large pressure deltas move faster if(currentpart == SSAIR_EQUALIZE) timer = TICK_USAGE_REAL process_turf_equalize(resumed) @@ -152,7 +154,7 @@ SUBSYSTEM_DEF(air) return resumed = 0 currentpart = SSAIR_EXCITEDGROUPS - + // Making small pressure deltas equalize immediately so they don't process anymore if(currentpart == SSAIR_EXCITEDGROUPS) timer = TICK_USAGE_REAL process_excited_groups(resumed) @@ -161,7 +163,7 @@ SUBSYSTEM_DEF(air) return resumed = 0 currentpart = SSAIR_TURF_POST_PROCESS - + // Quick multithreaded "should we display/react?" checks followed by finishing those up before the next step if(currentpart == SSAIR_TURF_POST_PROCESS) timer = TICK_USAGE_REAL post_process_turfs(resumed) @@ -179,7 +181,7 @@ SUBSYSTEM_DEF(air) return resumed = 0 currentpart = heat_enabled ? SSAIR_TURF_CONDUCTION : SSAIR_ACTIVETURFS - + // Heat -- slow and of questionable usefulness. Off by default for this reason. Pretty cool, though. if(currentpart == SSAIR_TURF_CONDUCTION) timer = TICK_USAGE_REAL if(process_turf_heat(MC_TICK_REMAINING_MS)) @@ -189,7 +191,7 @@ SUBSYSTEM_DEF(air) return resumed = 0 currentpart = SSAIR_ACTIVETURFS - + // This simply starts the turf thread. It runs in the background until the FINALIZE_TURFS step, at which point it's waited for. if(currentpart == SSAIR_ACTIVETURFS) timer = TICK_USAGE_REAL process_turfs(resumed)