mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 20:48:56 +01:00
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:
@@ -184,17 +184,20 @@ SUBSYSTEM_DEF(mapping)
|
||||
if(index)
|
||||
lists_to_reserve.Cut(1, index)
|
||||
return
|
||||
var/turf/T = packet[packetlen]
|
||||
T.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE)
|
||||
LAZYINITLIST(unused_turfs["[T.z]"])
|
||||
unused_turfs["[T.z]"] |= T
|
||||
var/area/old_area = T.loc
|
||||
LISTASSERTLEN(old_area.turfs_to_uncontain_by_zlevel, T.z, list())
|
||||
old_area.turfs_to_uncontain_by_zlevel[T.z] += T
|
||||
T.turf_flags = UNUSED_RESERVATION_TURF
|
||||
world_contents += T
|
||||
LISTASSERTLEN(world_turf_contents_by_z, T.z, list())
|
||||
world_turf_contents_by_z[T.z] += T
|
||||
var/turf/reserving_turf = packet[packetlen]
|
||||
reserving_turf.empty(RESERVED_TURF_TYPE, RESERVED_TURF_TYPE, null, TRUE)
|
||||
LAZYINITLIST(unused_turfs["[reserving_turf.z]"])
|
||||
unused_turfs["[reserving_turf.z]"] |= reserving_turf
|
||||
var/area/old_area = reserving_turf.loc
|
||||
LISTASSERTLEN(old_area.turfs_to_uncontain_by_zlevel, reserving_turf.z, list())
|
||||
old_area.turfs_to_uncontain_by_zlevel[reserving_turf.z] += reserving_turf
|
||||
reserving_turf.turf_flags = UNUSED_RESERVATION_TURF
|
||||
// reservation turfs are not allowed to interact with atmos at all
|
||||
reserving_turf.blocks_air = TRUE
|
||||
|
||||
world_contents += reserving_turf
|
||||
LISTASSERTLEN(world_turf_contents_by_z, reserving_turf.z, list())
|
||||
world_turf_contents_by_z[reserving_turf.z] += reserving_turf
|
||||
packet.len--
|
||||
packetlen = length(packet)
|
||||
|
||||
@@ -731,6 +734,7 @@ ADMIN_VERB(load_away_mission, R_FUN, "Load Away Mission", "Load a specific away
|
||||
for(var/turf/T as anything in block)
|
||||
// No need to empty() these, because they just got created and are already /turf/open/space/basic.
|
||||
T.turf_flags = UNUSED_RESERVATION_TURF
|
||||
T.blocks_air = TRUE
|
||||
CHECK_TICK
|
||||
|
||||
// Gotta create these suckers if we've not done so already
|
||||
|
||||
Reference in New Issue
Block a user