diff --git a/code/controllers/globals.dm b/code/controllers/globals.dm index 5ceec9978d..c92d42d82a 100644 --- a/code/controllers/globals.dm +++ b/code/controllers/globals.dm @@ -43,19 +43,22 @@ GLOBAL_REAL(GLOB, /datum/controller/global_vars) return FALSE return ..() -/datum/controller/global_vars/Initialize(var/exclude_these) +/datum/controller/global_vars/Initialize() gvars_datum_init_order = list() - gvars_datum_protected_varlist = list("gvars_datum_protected_varlist") - - //See https://github.com/tgstation/tgstation/issues/26954 - for(var/I in typesof(/datum/controller/global_vars/proc)) - var/CLEANBOT_RETURNS = "[I]" - pass(CLEANBOT_RETURNS) - - for(var/I in (vars - gvars_datum_in_built_vars)) + gvars_datum_protected_varlist = list(NAMEOF(src, gvars_datum_protected_varlist) = TRUE) + var/list/global_procs = typesof(/datum/controller/global_vars/proc) + var/expected_len = vars.len - gvars_datum_in_built_vars.len + if(global_procs.len != expected_len) + warning("Unable to detect all global initialization procs! Expected [expected_len] got [global_procs.len]!") + if(global_procs.len) + var/list/expected_global_procs = vars - gvars_datum_in_built_vars + for(var/I in global_procs) + expected_global_procs -= replacetext("[I]", "InitGlobal", "") + var/english_missing = expected_global_procs.Join(", ") + log_world("Missing procs: [english_missing]") + for(var/I in global_procs) var/start_tick = world.time - call(src, "InitGlobal[I]")() + call(src, I)() var/end_tick = world.time if(end_tick - start_tick) - warning("Global [I] slept during initialization!") - QDEL_NULL(exclude_these) \ No newline at end of file + warning("Global [replacetext("[I]", "InitGlobal", "")] slept during initialization!")