Fix all the things

YAAAAY!
This commit is contained in:
skull132
2016-12-15 14:22:08 +02:00
parent 16bf480525
commit 1bf9e6a389
6 changed files with 38 additions and 34 deletions
@@ -41,13 +41,13 @@
"id" = 1))
/datum/category_item/player_setup_item/general/basic/gather_save_parameters()
return list("ss13_characters" = list(":name" = pref.real_name,
":random_name" = pref.be_random_name,
":gender" = pref.gender,
":age" = pref.age,
":metadata" = pref.metadata,
":spawnpoint" = pref.spawnpoint,
":id" = pref.current_character))
return list(":name" = pref.real_name,
":random_name" = pref.be_random_name,
":gender" = pref.gender,
":age" = pref.age,
":metadata" = pref.metadata,
":spawnpoint" = pref.spawnpoint,
":id" = pref.current_character)
/datum/category_item/player_setup_item/general/basic/sanitize_character()
pref.age = sanitize_integer(text2num(pref.age), AGE_MIN, AGE_MAX, initial(pref.age))
@@ -19,8 +19,8 @@
"id" = 1))
/datum/category_item/player_setup_item/general/language/gather_save_parameters()
return list("ss13_characters" = list(":language" = list2params(pref.alternate_languages),
":id" = pref.current_character))
return list(":language" = list2params(pref.alternate_languages),
":id" = pref.current_character)
/datum/category_item/player_setup_item/general/language/sanitize_character(var/sql_load = 0)
if (sql_load)
@@ -82,19 +82,19 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
"id" = 1))
/datum/category_item/player_setup_item/general/body/gather_save_parameters()
return list("ss13_characters" = list(":species" = pref.species,
":hair_colour" = "#" + num2hex(pref.r_hair) + num2hex(pref.g_hair) + num2hex(pref.b_hair),
":facial_colour" = "#" + num2hex(pref.r_facial) + num2hex(pref.g_facial) + num2hex(pref.b_facial),
":skin_tone" = pref.s_tone,
":skin_colour" = "#" + num2hex(pref.r_skin) + num2hex(pref.g_skin) + num2hex(pref.b_skin),
":hair_style" = pref.h_style,
":facial_style" = pref.f_style,
":eyes_colour" = "#" + num2hex(pref.r_eyes) + num2hex(pref.g_eyes) + num2hex(pref.b_eyes),
":b_type" = pref.b_type,
":disabilities" = pref.disabilities,
":organs_data" = list2params(pref.organ_data),
":organs_robotic"= list2params(pref.rlimb_data),
":id" = pref.current_character))
return list(":species" = pref.species,
":hair_colour" = "#" + num2hex(pref.r_hair) + num2hex(pref.g_hair) + num2hex(pref.b_hair),
":facial_colour" = "#" + num2hex(pref.r_facial) + num2hex(pref.g_facial) + num2hex(pref.b_facial),
":skin_tone" = pref.s_tone,
":skin_colour" = "#" + num2hex(pref.r_skin) + num2hex(pref.g_skin) + num2hex(pref.b_skin),
":hair_style" = pref.h_style,
":facial_style" = pref.f_style,
":eyes_colour" = "#" + num2hex(pref.r_eyes) + num2hex(pref.g_eyes) + num2hex(pref.b_eyes),
":b_type" = pref.b_type,
":disabilities" = pref.disabilities,
":organs_data" = list2params(pref.organ_data),
":organs_robotic"= list2params(pref.rlimb_data),
":id" = pref.current_character)
/datum/category_item/player_setup_item/general/body/sanitize_character(var/sql_load = 0)
if(!pref.species || !(pref.species in playable_species))
@@ -86,7 +86,7 @@
for (var/module in robot_module_types)
var_list[":robot_[module]"] += pref.flavour_texts_robot[module]
return list("ss13_characters_flavour" = var_list)
return var_list
/datum/category_item/player_setup_item/general/flavor/sanitize_character()
return
@@ -164,9 +164,7 @@
for (var/datum/category_item/player_setup_item/PI in items)
PI.save_preferences(S)
else
if (modified && sql_role == SQL_PREFERENCES)
handle_sql_saving(SQL_PREFERENCES)
modified = 0
handle_sql_saving(SQL_PREFERENCES)
/datum/category_group/player_setup_category/proc/update_setup(var/savefile/preferences, var/savefile/character)
for(var/datum/category_item/player_setup_item/PI in items)
@@ -170,6 +170,9 @@
// Actually utilize the queries.
var/list/arg_list = gather_save_parameters()
// Typecast the collection so we can access its preferences var.
var/datum/category_collection/player_setup_collection/cc = collection
for (var/query_text in query_cache[type])
var/DBQuery/query = dbcon.NewQuery(query_text)
query.Execute(arg_list, 1)
@@ -177,17 +180,20 @@
if (query.ErrorMsg())
error("Error saving character to SQL: [query.ErrorMsg()]")
// Get the character ID if we inserted a new character.
if (role_type == SQL_CHARACTER)
// Need to typecast due to reasons.
var/datum/category_collection/player_setup_collection/cc = collection
if (!cc.preferences.current_character)
var/DBQuery/query = dbcon.NewQuery("SELECT id FROM ss13_characters WHERE ckey = :ckey ORDER BY id DESC LIMIT 1")
query.Execute(list(":ckey" = cc.preferences.client.ckey))
if (role_type == SQL_CHARACTER && !cc.preferences.current_character)
// No current character, means we're doing insert queries.
// Quickly nab the new ID and substitute it within the args.
query = dbcon.NewQuery("SELECT LAST_INSERT_ID() AS new_id")
query.Execute()
if (query.NextRow())
arg_list[":id"] = text2num(query.item[1])
arg_list[":char_id"] = text2num(query.item[1])
cc.preferences.current_character = text2num(query.item[1])
else
error("Error inserting character to SQL: New ID was not recovered.")
if (query.ErrorMsg())
error("Error retreiving new character ID: [query.ErrorMsg()]")
/datum/category_group/player_setup_category/proc/gather_save_parameters()
var/list/arg_list = list()