Files
Letter N c93e2c7679 tracy (proper this time) and debugger (#7496)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request
port genisis proc from tg, also tracy & debugger is boxed in their own
datums.
also explode world.dm
<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

merg
https://github.com/Citadel-Station-13/Citadel-Station-13-RP/pull/7495
and
https://github.com/Citadel-Station-13/Citadel-Station-13-RP/pull/7497
before this one
2026-02-11 12:26:19 -05:00

55 lines
1.5 KiB
Plaintext

/// The debugger instance.
/// This is a GLOBAL_REAL because it initializes before the MC or GLOB.
/// Really only used to check to see if the debugger is enabled or not,
/// and to separate debugger-related code into its own thing.
GLOBAL_REAL(Debugger, /datum/debugger)
/datum/debugger
/// Is the debugger enabled?
VAR_FINAL/enabled = FALSE
/// The error text, if initializing the debugger errored.
VAR_FINAL/error
/// The path to the auxtools debug DLL, if it sets.
/// Defaults to the environmental variable AUXTOOLS_DEBUG_DLL.
VAR_FINAL/dll_path
/datum/debugger/New(dll_path)
if(!isnull(Debugger))
CRASH("Attempted to initialize /datum/debugger when global.Debugger is already set!")
Debugger = src
#ifndef OPENDREAM_REAL
src.dll_path = dll_path || world.GetConfig("env", "AUXTOOLS_DEBUG_DLL")
enable()
#endif
/datum/debugger/Destroy()
#ifndef OPENDREAM_REAL
if(enabled)
call_ext(dll_path, "auxtools_shutdown")()
#endif
return ..()
/// Attempt to enable the debugger.
/datum/debugger/proc/enable()
#ifndef OPENDREAM_REAL
if(enabled)
CRASH("Attempted to enable debugger while its already enabled, somehow.")
if(!dll_path)
return FALSE
var/result = call_ext(dll_path, "auxtools_init")()
if(result != "SUCCESS")
error = result
return FALSE
enable_debugging()
enabled = TRUE
return TRUE
#else
return FALSE
#endif
/datum/debugger/vv_edit_var(var_name, var_value)
return FALSE // no.
/datum/debugger/CanProcCall(procname)
return FALSE // double no.