World Initialization Refactor (#74808)

- Removes unnecessary real global vars.
- Adds comments pointing to the init order defined in
/code/game/world.dm.
- Prevent people using `GLOBAL_REAL_VAR` and `GLOBAL_REAL` to circumvent
init order.
- Properly type `PROFILE_STORE` real global.
- Refactored `make_datum_references_lists()` and moved the call to it
into `GLOB` init with duct tape.
- Renamed `GLOB.admin_log` to `GLOB.admin_activities` as it wasn't
actually a log file.
- Whitelist loading happens in config.
- Renamed `SSdbcore`'s `SetRoundID()` to `InitializeRound()`. Now
handles calling `CheckSchemaVersion()`.
- Created macro for setting up log `GLOB`s.
- Removed log line for `GLOB` count.
- Moved call to `make_datum_reference_lists()` to
`/datum/controller/global_vars/Initialize()`. I slimmed it down where
possible too.
- Updated comments about world init order.
- Move `load_admins()` call to after log setup.
- Removes unused function `gib_stack_trace()`.
- Removes a bunch of unused log `GLOB`s.
- Unlocks the secrets of the universe by finally making the first
executed line of code deterministic.

No functional changes. Closes #74792
Testmerge thoroughly.

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
This commit is contained in:
Jordan Dominion
2023-04-24 18:38:38 -06:00
committed by GitHub
co-authored by Mothblocks
parent 88014bb3f5
commit 3ceee2aab4
25 changed files with 312 additions and 306 deletions
+2 -2
View File
@@ -55,9 +55,9 @@ GLOBAL_DATUM(everyone_a_traitor, /datum/everyone_is_a_traitor_controller)
//Generic Buttons anyone can use.
if("admin_log")
var/dat = "<meta charset='UTF-8'><B>Admin Log<HR></B>"
for(var/l in GLOB.admin_log)
for(var/l in GLOB.admin_activities)
dat += "<li>[l]</li>"
if(!GLOB.admin_log.len)
if(!GLOB.admin_activities.len)
dat += "No-one has done anything this round!"
holder << browse(dat, "window=admin_log")
if("show_admins")