mostly works!

occasional deadlock at last test; gonna keep checking that out.
This commit is contained in:
Putnam
2020-12-18 17:49:32 -08:00
parent 2de8b8e188
commit f0b3ad7a22
9 changed files with 35 additions and 17 deletions
+3
View File
@@ -1,2 +1,5 @@
[langserver]
dreamchecker = true
[debugger]
engine = "auxtools"
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+2 -3
View File
@@ -28,6 +28,5 @@
#define VAR_PROTECTED var
#endif
/world/proc/enable_debugger()
if (fexists(EXTOOLS))
call(EXTOOLS, "debug_initialize")()
/proc/enable_debugging()
CRASH("Auxtools not found")
+7 -2
View File
@@ -4,11 +4,16 @@
/proc/extools_finalize_logging()
/proc/auxtools_stack_trace(err)
stack_trace(err)
/proc/auxtools_stack_trace(msg)
CRASH(msg)
GLOBAL_VAR_INIT(auxtools_initialized,FALSE)
#define AUXTOOLS_CHECK\
if (!GLOB.auxtools_initialized && fexists(AUXTOOLS) && findtext(call(AUXTOOLS,"auxtools_init")(),"SUCCESS"))\
GLOB.auxtools_initialized = TRUE;\
#define AUXTOOLS_SHUTDOWN\
if (GLOB.auxtools_initialized && fexists(AUXTOOLS))\
call(AUXTOOLS,"auxtools_shutdown")();\
GLOB.auxtools_initialized = FALSE;\
+13 -10
View File
@@ -37,9 +37,16 @@ SUBSYSTEM_DEF(air)
var/log_explosive_decompression = TRUE // If things get spammy, admemes can turn this off.
var/monstermos_turf_limit = 10
var/monstermos_hard_turf_limit = 2000
var/monstermos_enabled = TRUE
// Max number of turfs equalization will grab.
var/equalize_turf_limit = 25
// Max number of turfs to look for a space turf, and max number of turfs that will be decompressed.
var/equalize_hard_turf_limit = 2000
// Whether equalization should be enabled at all.
var/equalize_enabled = TRUE
// Max number of times process_turfs will share in a tick.
var/share_max_steps = 1
// If process_turfs finds no pressure differentials larger than this, it'll stop for that tick.
var/share_pressure_diff_to_stop = 101.325
/datum/controller/subsystem/air/stat_entry(msg)
msg += "C:{"
@@ -234,7 +241,7 @@ SUBSYSTEM_DEF(air)
return
/datum/controller/subsystem/air/proc/process_turf_equalize(resumed = 0)
if(process_turf_equalize_extools(MC_TICK_REMAINING_MS))
if(process_turf_equalize_extools(resumed,MC_TICK_REMAINING_MS))
pause()
/*
//cache for sanic speed
@@ -254,7 +261,7 @@ SUBSYSTEM_DEF(air)
*/
/datum/controller/subsystem/air/proc/process_turfs(resumed = 0)
if(process_turfs_extools(MC_TICK_REMAINING_MS))
if(process_turfs_extools(resumed,MC_TICK_REMAINING_MS))
pause()
/*
//cache for sanic speed
@@ -272,12 +279,8 @@ SUBSYSTEM_DEF(air)
return
*/
/proc/post_process_excited_turf(turf/open/T)
if(istype(T))
T.update_visuals()
/datum/controller/subsystem/air/proc/process_excited_groups(resumed = 0)
if(!process_excited_groups_extools(MC_TICK_REMAINING_MS))
if(!process_excited_groups_extools(resumed,MC_TICK_REMAINING_MS))
pause()
/datum/controller/subsystem/air/proc/process_turfs_extools()
+1
View File
@@ -156,6 +156,7 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
else
if(ispath(path,/turf/closed))
flags |= CHANGETURF_RECALC_ADJACENT
update_air_ref(-1)
return ..()
// Take off the top layer turf and replace it with the next baseturf down
+1
View File
@@ -92,6 +92,7 @@
var/turf/open/O = src
__auxtools_update_turf_temp_info(isspaceturf(get_z_base_turf()) && !O.planetary_atmos)
else
update_air_ref(-1)
__auxtools_update_turf_temp_info(isspaceturf(get_z_base_turf()))
return INITIALIZE_HINT_NORMAL
+8 -2
View File
@@ -10,12 +10,14 @@ GLOBAL_LIST(topic_status_cache)
//So subsystems globals exist, but are not initialised
/world/New()
var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL")
if (debug_server)
call(debug_server, "auxtools_init")()
enable_debugging()
AUXTOOLS_CHECK
//enable_debugger()
#ifdef REFERENCE_TRACKING
enable_reference_tracking()
#endif
world.Profile(PROFILE_START)
log_world("World loaded at [TIME_STAMP("hh:mm:ss", FALSE)]!")
@@ -269,6 +271,10 @@ GLOBAL_LIST(topic_status_cache)
/world/Del()
shutdown_logging() // makes sure the thread is closed before end, else we terminate
AUXTOOLS_SHUTDOWN
var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL")
if (debug_server)
call(debug_server, "auxtools_shutdown")()
..()
/world/proc/update_status()