fixes firelocks et al. preventing the movement of air (#17539)

Co-authored-by: mafemergency <mafemergency@gmail.com>
This commit is contained in:
mafemergency
2022-05-03 04:35:22 +01:00
committed by GitHub
co-authored by mafemergency
parent e5de6c5d81
commit 45fe5c80b1
2 changed files with 14 additions and 6 deletions
+10 -5
View File
@@ -278,6 +278,14 @@ SUBSYSTEM_DEF(air)
T.excited_group.garbage_collect()
/datum/controller/subsystem/air/proc/add_to_active(turf/simulated/T, blockchanges = 1)
if(!initialized)
/* it makes no sense to "activate" turfs before setup_allturfs is
called, as setup_allturfs would simply cull the list incorrectly.
only /turf/simulated/Initialize_Atmos() is blessed enough to
activate turfs during this phase of initialization, as it happens
post-cull and inlines the logic (perhaps incorrectly) */
return
if(istype(T) && T.air)
T.excited = 1
active_turfs |= T
@@ -290,11 +298,8 @@ SUBSYSTEM_DEF(air)
add_to_active(S)
/datum/controller/subsystem/air/proc/setup_allturfs(list/turfs_to_init = block(locate(1, 1, 1), locate(world.maxx, world.maxy, world.maxz)))
var/list/active_turfs = src.active_turfs
// Clear active turfs - faster than removing every single turf in the world
// one-by-one, and Initalize_Atmos only ever adds `src` back in.
active_turfs.Cut()
if(active_turfs.len)
log_debug("failed sanity check: active_turfs is not empty before initialization ([active_turfs.len])")
for(var/thing in turfs_to_init)
var/turf/T = thing