This commit is contained in:
Kearel
2015-11-28 11:21:07 -06:00
176 changed files with 9954 additions and 9190 deletions

View File

@@ -158,6 +158,7 @@
spawn(5) // And wait a half-second, since it sounds like you can do this too fast.
if(src)
winset(src, null, "command=\".configure graphics-hwmode off\"")
sleep(2) // wait a bit more, possibly fixes hardware mode not re-activating right
winset(src, null, "command=\".configure graphics-hwmode on\"")
log_client_to_db()
@@ -339,3 +340,9 @@ client/proc/MayRespawn()
// Something went wrong, client is usually kicked or transfered to a new mob at this point
return 0
client/verb/character_setup()
set name = "Character Setup"
set category = "Preferences"
if(prefs)
prefs.ShowChoices(usr)

View File

@@ -1,6 +1,7 @@
/datum/category_item/player_setup_item/general/basic
name = "Basic"
sort_order = 1
var/list/valid_player_genders = list(MALE, FEMALE)
/datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S)
S["real_name"] >> pref.real_name
@@ -19,12 +20,13 @@
S["OOC_Notes"] << pref.metadata
/datum/category_item/player_setup_item/general/basic/sanitize_character()
pref.real_name = sanitizeName(pref.real_name)
pref.age = sanitize_integer(pref.age, AGE_MIN, AGE_MAX, initial(pref.age))
pref.gender = sanitize_inlist(pref.gender, valid_player_genders, pick(valid_player_genders))
pref.real_name = sanitize_name(pref.real_name, pref.species)
if(!pref.real_name)
pref.real_name = random_name(pref.gender, pref.species)
pref.spawnpoint = sanitize_inlist(pref.spawnpoint, spawntypes, initial(pref.spawnpoint))
pref.be_random_name = sanitize_integer(pref.be_random_name, 0, 1, initial(pref.be_random_name))
pref.age = sanitize_integer(pref.age, AGE_MIN, AGE_MAX, initial(pref.age))
/datum/category_item/player_setup_item/general/basic/content()
. = "<b>Name:</b> "
@@ -32,7 +34,7 @@
. += "(<a href='?src=\ref[src];random_name=1'>Random Name</A>) "
. += "(<a href='?src=\ref[src];always_random_name=1'>Always Random Name: [pref.be_random_name ? "Yes" : "No"]</a>)"
. += "<br>"
. += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[pref.gender == MALE ? "Male" : "Female"]</b></a><br>"
. += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[capitalize(lowertext(pref.gender))]</b></a><br>"
. += "<b>Age:</b> <a href='?src=\ref[src];age=1'>[pref.age]</a><br>"
. += "<b>Spawn Point</b>: <a href='?src=\ref[src];spawnpoint=1'>[pref.spawnpoint]</a><br>"
if(config.allow_Metadata)
@@ -42,7 +44,7 @@
if(href_list["rename"])
var/raw_name = input(user, "Choose your character's name:", "Character Name") as text|null
if (!isnull(raw_name) && CanUseTopic(user))
var/new_name = sanitizeName(raw_name)
var/new_name = sanitize_name(raw_name, pref.species)
if(new_name)
pref.real_name = new_name
return TOPIC_REFRESH
@@ -59,10 +61,7 @@
return TOPIC_REFRESH
else if(href_list["gender"])
if(pref.gender == MALE)
pref.gender = FEMALE
else
pref.gender = MALE
pref.gender = next_in_list(pref.gender, valid_player_genders)
return TOPIC_REFRESH
else if(href_list["age"])
@@ -80,7 +79,6 @@
pref.spawnpoint = choice
return TOPIC_REFRESH
else if(href_list["metadata"])
var/new_metadata = sanitize(input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , pref.metadata)) as message|null
if(new_metadata && CanUseTopic(user))

View File

@@ -46,6 +46,10 @@
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)
@@ -100,24 +104,37 @@
/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)
for(var/datum/category_item/player_setup_item/PI in items)
PI.sanitize_character()
/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)
for(var/datum/category_item/player_setup_item/PI in items)
PI.sanitize_preferences()
/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/content(var/mob/user)

View File

@@ -113,7 +113,6 @@ datum/preferences
/datum/preferences/New(client/C)
player_setup = new(src)
gender = pick(MALE, FEMALE)
real_name = random_name(gender,species)
b_type = pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+")
@@ -235,6 +234,8 @@ datum/preferences
return 1
/datum/preferences/proc/copy_to(mob/living/carbon/human/character, safety = 0)
// Sanitizing rather than saving as someone might still be editing when copy_to occurs.
player_setup.sanitize_setup()
if(be_random_name)
real_name = random_name(gender,species)

View File

@@ -24,7 +24,7 @@ var/global/list/home_system_choices = list(
"Sol",
"Nyx",
"Tau Ceti",
"Epsilon Ursae Majoris",
"Epsilon Ursae Minoris",
"S'randarr"
)

View File

@@ -85,6 +85,9 @@
player_setup.save_character(S)
return 1
/datum/preferences/proc/sanitize_preferences()
player_setup.sanitize_setup()
return 1
#undef SAVEFILE_VERSION_MAX
#undef SAVEFILE_VERSION_MIN