#define PREF_FBP_CYBORG "cyborg" #define PREF_FBP_POSI "posi" #define PREF_FBP_SOFTWARE "software" /datum/category_group/player_setup_category/general_preferences name = "General" sort_order = 1 category_item_type = /datum/category_item/player_setup_item/general /datum/category_group/player_setup_category/skill_preferences name = "Skills" sort_order = 2 category_item_type = /datum/category_item/player_setup_item/skills /datum/category_group/player_setup_category/occupation_preferences name = "Occupation" sort_order = 3 category_item_type = /datum/category_item/player_setup_item/occupation /datum/category_group/player_setup_category/appearance_preferences name = "Antagonism" sort_order = 4 category_item_type = /datum/category_item/player_setup_item/antagonism /datum/category_group/player_setup_category/loadout_preferences name = "Loadout" sort_order = 5 category_item_type = /datum/category_item/player_setup_item/loadout /* //VOREStation Removal /datum/category_group/player_setup_category/trait_preferences name = "Traits" sort_order = 6 category_item_type = /datum/category_item/player_setup_item/traits */ //VOREStation Removal End /datum/category_group/player_setup_category/global_preferences name = "Global" sort_order = 6 //VOREStation Edit due to above commented out category_item_type = /datum/category_item/player_setup_item/player_global /**************************** * Category Collection Setup * ****************************/ /datum/category_collection/player_setup_collection category_group_type = /datum/category_group/player_setup_category var/datum/preferences/preferences var/datum/category_group/player_setup_category/selected_category = null /datum/category_collection/player_setup_collection/New(var/datum/preferences/preferences) src.preferences = preferences ..() selected_category = categories[1] /datum/category_collection/player_setup_collection/Destroy() preferences = null selected_category = null return ..() /datum/category_collection/player_setup_collection/proc/sanitize_setup() for(var/datum/category_group/player_setup_category/PS in categories) PS.sanitize_setup() /datum/category_collection/player_setup_collection/proc/load_character(var/savefile/S) for(var/datum/category_group/player_setup_category/PS in categories) PS.load_character(S) /datum/category_collection/player_setup_collection/proc/save_character(var/savefile/S) for(var/datum/category_group/player_setup_category/PS in categories) PS.save_character(S) /datum/category_collection/player_setup_collection/proc/load_preferences(var/savefile/S) for(var/datum/category_group/player_setup_category/PS in categories) PS.load_preferences(S) /datum/category_collection/player_setup_collection/proc/save_preferences(var/savefile/S) for(var/datum/category_group/player_setup_category/PS in categories) PS.save_preferences(S) /datum/category_collection/player_setup_collection/proc/copy_to_mob(var/mob/living/carbon/human/C) for(var/datum/category_group/player_setup_category/PS in categories) PS.copy_to_mob(C) /datum/category_collection/player_setup_collection/proc/header() var/dat = "" for(var/datum/category_group/player_setup_category/PS in categories) if(PS == selected_category) dat += "[PS.name] " // TODO: Check how to properly mark a href/button selected in a classic browser window else dat += "[PS.name] " return dat /datum/category_collection/player_setup_collection/proc/content(var/mob/user) if(selected_category) return selected_category.content(user) /datum/category_collection/player_setup_collection/Topic(var/href,var/list/href_list) if(..()) return 1 var/mob/user = usr if(!user.client) return 1 if(href_list["category"]) var/category = locate(href_list["category"]) if(category && (category in categories)) selected_category = category . = 1 if(.) user.client.prefs.ShowChoices(user) /************************** * Category Category Setup * **************************/ /datum/category_group/player_setup_category var/sort_order = 0 /datum/category_group/player_setup_category/dd_SortValue() return sort_order /datum/category_group/player_setup_category/proc/sanitize_setup() for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_preferences() for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_character() /datum/category_group/player_setup_category/proc/load_character(var/savefile/S) // Load all data, then sanitize it. // Need due to, for example, the 01_basic module relying on species having been loaded to sanitize correctly but that isn't loaded until module 03_body. for(var/datum/category_item/player_setup_item/PI in items) PI.load_character(S) /datum/category_group/player_setup_category/proc/save_character(var/savefile/S) // Sanitize all data, then save it for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_character() for(var/datum/category_item/player_setup_item/PI in items) PI.save_character(S) /datum/category_group/player_setup_category/proc/load_preferences(var/savefile/S) for(var/datum/category_item/player_setup_item/PI in items) PI.load_preferences(S) /datum/category_group/player_setup_category/proc/save_preferences(var/savefile/S) for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_preferences() for(var/datum/category_item/player_setup_item/PI in items) PI.save_preferences(S) /datum/category_group/player_setup_category/proc/copy_to_mob(var/mob/living/carbon/human/C) for(var/datum/category_item/player_setup_item/PI in items) PI.copy_to_mob(C) /datum/category_group/player_setup_category/proc/content(var/mob/user) . = "
| " var/current = 0 var/halfway = items.len / 2 for(var/datum/category_item/player_setup_item/PI in items) if(halfway && current++ >= halfway) halfway = 0 . += " | "
. += "[PI.content(user)] " . += " |