mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-07-23 16:22:43 +01:00
c93e2c7679
<!-- 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
55 lines
1.5 KiB
Plaintext
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.
|