Files
VOREStation/code/controllers/subsystems/character_setup.dm
Kashargul d9787e171e Fix multiple pref issues (#18083)
* fix tail alyering pref

* .

* .

* .

* .

* -

* return

* fix that

* write needs save after

* urg

* ban slot change mid round

* -

* .

* properly save

* .

* queue to ss

* read current

* performance

* .

* .

* bit better optimized

* no resetsploit

* this works at least but is it proper (#13)

* this works at least but is it proper

* Update changeling.dm

* this too...

* dont be private

* fix asset ss

---------

Co-authored-by: C.L. <killer65311@gmail.com>
2025-08-09 22:13:15 -04:00

43 lines
1.4 KiB
Plaintext

SUBSYSTEM_DEF(character_setup)
name = "Character Setup"
priority = FIRE_PRIORITY_CHARSETUP
flags = SS_BACKGROUND | SS_NO_INIT
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--
// Can't save prefs without client, because the sanitize functions will be
// unable to validate their whitelist status due to being unable to check
// 'holder' admin status, etc. Will result in Bad Times.
if(!QDELETED(prefs) && prefs.client)
prefs.save_preferences()
if(MC_TICK_CHECK)
return
/datum/controller/subsystem/character_setup/proc/queue_preferences_save(var/datum/preferences/prefs)
if(!prefs)
return
save_queue |= prefs