diff --git a/auxmos.dll b/auxmos.dll index 54f9e2c381..f9f40b0339 100644 Binary files a/auxmos.dll and b/auxmos.dll differ diff --git a/auxmos.pdb b/auxmos.pdb index a14eedac51..6958b1c27f 100644 Binary files a/auxmos.pdb and b/auxmos.pdb differ diff --git a/code/__HELPERS/_extools_api.dm b/code/__HELPERS/_extools_api.dm index 96c4621306..32904d75e3 100644 --- a/code/__HELPERS/_extools_api.dm +++ b/code/__HELPERS/_extools_api.dm @@ -10,8 +10,13 @@ GLOBAL_LIST_EMPTY(auxtools_initialized) #define AUXTOOLS_CHECK(LIB)\ - if (!GLOB.auxtools_initialized[LIB] && fexists(LIB) && findtext(call(LIB,"auxtools_init")(),"SUCCESS"))\ - GLOB.auxtools_initialized[LIB] = TRUE;\ + if (!GLOB.auxtools_initialized[LIB] && fexists(LIB)) {\ + var/status = call(LIB,"auxtools_init")();\ + if(findtext(status,"SUCCESS")) {\ + GLOB.auxtools_initialized[LIB] = TRUE;}\ + else {\ + auxtools_stack_trace("Auxtools failed with status [status]");};\ +}; #define AUXTOOLS_SHUTDOWN(LIB)\ if (GLOB.auxtools_initialized[LIB] && fexists(LIB))\ diff --git a/code/controllers/subsystem/adjacent_air.dm b/code/controllers/subsystem/adjacent_air.dm index e93db07775..c2f2f9a072 100644 --- a/code/controllers/subsystem/adjacent_air.dm +++ b/code/controllers/subsystem/adjacent_air.dm @@ -4,6 +4,7 @@ SUBSYSTEM_DEF(adjacent_air) runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME wait = 10 priority = FIRE_PRIORITY_ATMOS_ADJACENCY + init_order = INIT_ORDER_AIR_TURFS var/list/queue = list() /datum/controller/subsystem/adjacent_air/stat_entry(msg) @@ -17,8 +18,11 @@ SUBSYSTEM_DEF(adjacent_air) /datum/controller/subsystem/adjacent_air/Initialize() while(length(queue)) fire(mc_check = FALSE) + build_zones() return ..() +/datum/controller/subsystem/adjacent_air/proc/build_zones() + /datum/controller/subsystem/adjacent_air/fire(resumed = FALSE, mc_check = TRUE) var/list/queue = src.queue diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index e4d3d61c31..901c4482b8 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -153,15 +153,6 @@ SUBSYSTEM_DEF(air) if(state != SS_RUNNING) 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) - cost_groups = MC_AVERAGE(cost_groups, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) - if(state != SS_RUNNING) - 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) @@ -315,10 +306,6 @@ SUBSYSTEM_DEF(air) return */ -/datum/controller/subsystem/air/proc/process_excited_groups(resumed = 0) - if(process_excited_groups_auxtools(resumed,MC_TICK_REMAINING_MS)) - pause() - /datum/controller/subsystem/air/proc/finish_turf_processing(resumed = 0) if(finish_turf_processing_auxtools(MC_TICK_REMAINING_MS)) pause() @@ -331,7 +318,6 @@ SUBSYSTEM_DEF(air) /datum/controller/subsystem/air/proc/process_turfs_auxtools() /datum/controller/subsystem/air/proc/post_process_turfs_auxtools() /datum/controller/subsystem/air/proc/process_turf_equalize_auxtools() -/datum/controller/subsystem/air/proc/process_excited_groups_auxtools() /datum/controller/subsystem/air/proc/get_amt_gas_mixes() /datum/controller/subsystem/air/proc/get_max_gas_mixes() /datum/controller/subsystem/air/proc/turf_process_time() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 189640a1c6..2514f41c44 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -368,7 +368,6 @@ return FALSE /atom/proc/assume_air(datum/gas_mixture/giver) - qdel(giver) return null /atom/proc/remove_air(amount) diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index de76193b99..e6474d68e3 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -49,13 +49,11 @@ if(!giver) return FALSE air.merge(giver) - update_visuals() return TRUE /turf/open/remove_air(amount) var/datum/gas_mixture/ours = return_air() var/datum/gas_mixture/removed = ours.remove(amount) - update_visuals() return removed /turf/open/proc/copy_air_with_tile(turf/open/T)