Fixes ID trim singletons ignoring config flags. (#57406)

This commit is contained in:
Timberpoes
2021-03-05 01:43:50 -08:00
committed by GitHub
parent 1a8e6f66d7
commit d36367ff51
3 changed files with 118 additions and 59 deletions
+17
View File
@@ -48,6 +48,23 @@ SUBSYSTEM_DEF(id_access)
return ..()
/**
* Called by [/datum/controller/subsystem/ticker/proc/setup]
*
* This runs through every /datum/id_trim/job singleton and ensures that its access is setup according to
* appropriate config entries.
*/
/datum/controller/subsystem/id_access/proc/refresh_job_trim_singletons()
for(var/trim in typesof(/datum/id_trim/job))
var/datum/id_trim/job/job_trim = trim_singletons_by_path[trim]
if(QDELETED(job_trim))
stack_trace("Trim \[[trim]\] missing from trim singleton list. Reinitialising this trim.")
trim_singletons_by_path[trim] = new trim()
continue
job_trim.refresh_trim_access()
/// Build access flag lists.
/datum/controller/subsystem/id_access/proc/setup_access_flags()
accesses_by_flag["[ACCESS_FLAG_COMMON]"] = COMMON_ACCESS
+7
View File
@@ -262,6 +262,13 @@ SUBSYSTEM_DEF(ticker)
else
message_admins("<span class='notice'>DEBUG: Bypassing prestart checks...</span>")
CHECK_TICK
// There may be various config settings that have been set or modified by this point.
// This is the point of no return before spawning in new players, let's run over the
// job trim singletons and update them based on any config settings.
SSid_access.refresh_job_trim_singletons()
CHECK_TICK
if(hide_mode)
var/list/modes = new