SUBSYSTEM_DEF(character_setup) name = "Character Setup" init_order = INIT_ORDER_DEFAULT priority = FIRE_PRIORITY_CHARSETUP flags = SS_BACKGROUND wait = 1 SECOND runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT var/list/prefs_awaiting_setup = list() var/list/preferences_datums = list() var/list/newplayers_requiring_init = list() var/list/save_queue = list() /* /datum/controller/subsystem/character_setup/Initialize() while(prefs_awaiting_setup.len) var/datum/preferences/prefs = prefs_awaiting_setup[prefs_awaiting_setup.len] prefs_awaiting_setup.len-- prefs.setup() while(newplayers_requiring_init.len) var/mob/new_player/new_player = newplayers_requiring_init[newplayers_requiring_init.len] newplayers_requiring_init.len-- new_player.deferred_login() . = ..() */ //Might be useful if we ever switch to Bay prefs. /datum/controller/subsystem/character_setup/fire(resumed = FALSE) while(save_queue.len) var/datum/preferences/prefs = save_queue[save_queue.len] save_queue.len-- if(!QDELETED(prefs)) prefs.save_preferences() if(MC_TICK_CHECK) return /datum/controller/subsystem/character_setup/proc/queue_preferences_save(var/datum/preferences/prefs) save_queue |= prefs