Block atmos processing on ReservedTurfs\™️ (#84873)

## About The Pull Request

See title.

## Why It's Good For The Game

We get constant runtimes and issues from atmos processing on turfs we
are actively loading and/or reserving. I promised I would do something
about this months ago

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
This commit is contained in:
Zephyr
2024-08-15 12:45:59 -04:00
committed by GitHub
parent e99d4b0d44
commit 52f7f44215
3 changed files with 27 additions and 13 deletions
@@ -55,6 +55,10 @@
for(var/turf/reserved_turf as anything in release_turfs)
SEND_SIGNAL(reserved_turf, COMSIG_TURF_RESERVATION_RELEASED, src)
// immediately disconnect from atmos
reserved_turf.blocks_air = TRUE
CALCULATE_ADJACENT_TURFS(reserved_turf, KILL_EXCITED)
// Makes the linter happy, even tho we don't await this
INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, reserve_turfs), release_turfs)
@@ -93,7 +97,7 @@
// Its no longer unused, but its also not "used"
cordon_turf.turf_flags &= ~UNUSED_RESERVATION_TURF
cordon_turf.ChangeTurf(/turf/cordon, /turf/cordon)
cordon_turf.empty(/turf/cordon, /turf/cordon)
SSmapping.unused_turfs["[cordon_turf.z]"] -= cordon_turf
// still gets linked to us though
SSmapping.used_turfs[cordon_turf] = src
@@ -187,7 +191,7 @@
SSmapping.unused_turfs["[T.z]"] -= T
SSmapping.used_turfs[T] = src
T.turf_flags = (T.turf_flags | RESERVATION_TURF) & ~UNUSED_RESERVATION_TURF
T.ChangeTurf(turf_type, turf_type_is_baseturf ? turf_type : null)
T.empty(turf_type, turf_type_is_baseturf ? turf_type : null)
bottom_left_turfs += BL
top_right_turfs += TR