/datum/preferences
var/preferences = null
/datum/category_item/player_setup_item/player_global/settings
name = "Settings"
sort_order = 2
/datum/category_item/player_setup_item/player_global/settings/load_preferences(var/savefile/S)
S["lastchangelog"] >> pref.lastchangelog
S["default_slot"] >> pref.default_slot
S["preferences"] >> pref.preferences
/datum/category_item/player_setup_item/player_global/settings/save_preferences(var/savefile/S)
S["lastchangelog"] << pref.lastchangelog
S["default_slot"] << pref.default_slot
S["preferences"] << pref.preferences
/datum/category_item/player_setup_item/player_global/settings/sanitize_preferences()
if(!istype(pref.preferences, /list))
pref.preferences = list()
var/mob/pref_mob = preference_mob()
for(var/cp in get_client_preferences())
var/datum/client_preference/client_pref = cp
if(!client_pref.enabled_by_default || !client_pref.may_toggle(pref_mob))
continue
pref.preferences += client_pref.key
for(var/preference in pref.preferences)
if(!get_client_preference_by_key(preference))
pref.preferences -= preference
pref.lastchangelog = sanitize_text(pref.lastchangelog, initial(pref.lastchangelog))
pref.default_slot = sanitize_integer(pref.default_slot, 1, config.character_slots, initial(pref.default_slot))
/datum/category_item/player_setup_item/player_global/settings/content(var/mob/user)
. = list()
. += "Preferences
"
. += "
| [client_pref.description]: | " if(pref_mob.is_preference_enabled(client_pref.key)) . += "[client_pref.enabled_description] | [client_pref.disabled_description] | " else . += "[client_pref.enabled_description] | [client_pref.disabled_description] | " . += "