diff --git a/auxmos.dll b/auxmos.dll index ff619c96a3..89a70fce0b 100644 Binary files a/auxmos.dll and b/auxmos.dll differ diff --git a/auxmos.pdb b/auxmos.pdb index c8e3e8805b..418ca586db 100644 Binary files a/auxmos.pdb and b/auxmos.pdb differ diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 193bef39c4..68b942c979 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -149,6 +149,7 @@ #define SSAIR_REBUILD_PIPENETS 7 #define SSAIR_EQUALIZE 8 #define SSAIR_ACTIVETURFS 9 +#define SSAIR_TURF_POST_PROCESS 10 // |= on overlays is not actually guaranteed to not add same appearances but we're optimistically using it anyway. #define COMPILE_OVERLAYS(A)\ diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 5775d5722d..7c73abe1ea 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -10,6 +10,7 @@ SUBSYSTEM_DEF(air) var/cost_groups = 0 var/cost_highpressure = 0 var/cost_hotspots = 0 + var/cost_post_process = 0 var/cost_superconductivity = 0 var/cost_pipenets = 0 var/cost_rebuilds = 0 @@ -46,8 +47,10 @@ SUBSYSTEM_DEF(air) msg += "TH:[round(turf_process_time(),1)]|" msg += "EG:[round(cost_groups,1)]|" msg += "EQ:[round(cost_equalize,1)]|" + msg += "PO:[round(cost_post_process,1)]|" msg += "HP:[round(cost_highpressure,1)]|" msg += "HS:[round(cost_hotspots,1)]|" + msg += "HE:[round(heat_process_time(),1)]|" msg += "SC:[round(cost_superconductivity,1)]|" msg += "PN:[round(cost_pipenets,1)]|" msg += "AM:[round(cost_atmos_machinery,1)]" @@ -129,6 +132,16 @@ SUBSYSTEM_DEF(air) if(state != SS_RUNNING) return resumed = 0 + currentpart = SSAIR_TURF_POST_PROCESS + + if(currentpart == SSAIR_TURF_POST_PROCESS) + timer = TICK_USAGE_REAL + if(post_process_turfs(resumed,MC_TICK_REMAINING_MS)) + pause() + cost_post_process = MC_AVERAGE(cost_post_process, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) + if(state != SS_RUNNING) + return + resumed = 0 currentpart = SSAIR_HIGHPRESSURE if(currentpart == SSAIR_HIGHPRESSURE) @@ -268,11 +281,13 @@ SUBSYSTEM_DEF(air) pause() /datum/controller/subsystem/air/proc/process_turfs_extools() +/datum/controller/subsystem/air/proc/post_process_turfs() /datum/controller/subsystem/air/proc/process_turf_equalize_extools() /datum/controller/subsystem/air/proc/process_excited_groups_extools() /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() +/datum/controller/subsystem/air/proc/heat_process_time() /datum/controller/subsystem/air/StartLoadingMap() map_loading = TRUE diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 69f63e114e..763c42009a 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -89,7 +89,7 @@ ComponentInitialize() - __auxtools_update_turf_temp_info(isspaceturf(get_z_base_turf())) + __auxtools_update_turf_temp_info(isspaceturf(get_z_base_turf()) && !planetary_atmos) return INITIALIZE_HINT_NORMAL diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index fd54eaa04a..23005b7cd7 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -21,7 +21,7 @@ GLOBAL_LIST_INIT(meta_gas_fusions, meta_gas_fusion_list()) var/initial_volume = CELL_VOLUME //liters var/list/reaction_results var/list/analyzer_results //used for analyzer feedback - not initialized until its used - var/_extools_pointer_gasmixture = 0 // Contains the memory address of the shared_ptr object for this gas mixture in c++ land. Don't. Touch. This. Var. + var/_extools_pointer_gasmixture = 0 // Contains the index in the gas vector for this gas mixture in rust land. Don't. Touch. This. Var. GLOBAL_LIST_INIT(auxtools_atmos_initialized,FALSE)