Character slot fixes

Fixes "Randomized Character Slot" not working at all and the slot load
list running 20x as many SQL queries as it should
This commit is contained in:
Krausus
2017-01-16 13:15:37 -05:00
parent e62c3eb0f1
commit 6f96d0bae2
4 changed files with 32 additions and 20 deletions
+15 -12
View File
@@ -1963,6 +1963,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
if("randomslot")
randomslot = !randomslot
if(isnewplayer(usr))
var/mob/new_player/N = usr
N.new_player_panel_proc()
if("hear_midis")
sound ^= SOUND_MIDI
@@ -2188,26 +2191,26 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
/datum/preferences/proc/open_load_dialog(mob/user)
var/DBQuery/query = dbcon.NewQuery("SELECT slot,real_name FROM [format_table_name("characters")] WHERE ckey='[user.ckey]' ORDER BY slot")
var/list/slotnames[max_save_slots]
if(!query.Execute())
var/err = query.ErrorMsg()
log_game("SQL ERROR during character slot loading. Error : \[[err]\]\n")
message_admins("SQL ERROR during character slot loading. Error : \[[err]\]\n")
return
while(query.NextRow())
slotnames[text2num(query.item[1])] = query.item[2]
var/dat = "<body>"
dat += "<tt><center>"
dat += "<b>Select a character slot to load</b><hr>"
var/name
for(var/i=1, i<=max_save_slots, i++)
if(!query.Execute())
var/err = query.ErrorMsg()
log_game("SQL ERROR during character slot loading. Error : \[[err]\]\n")
message_admins("SQL ERROR during character slot loading. Error : \[[err]\]\n")
return
while(query.NextRow())
if(i==text2num(query.item[1]))
name = query.item[2]
if(!name) name = "Character[i]"
if(i==default_slot)
for(var/i in 1 to max_save_slots)
name = slotnames[i] || "Character [i]"
if(i == default_slot)
name = "<b>[name]</b>"
dat += "<a href='?_src_=prefs;preference=changeslot;num=[i];'>[name]</a><br>"
name = null
dat += "<hr>"
dat += "<a href='byond://?src=[user.UID()];preference=close_load_dialog'>Close</a><br>"
@@ -500,21 +500,24 @@
return
return 1
/*
/datum/preferences/proc/random_character(client/C)
/datum/preferences/proc/load_random_character_slot(client/C)
var/DBQuery/query = dbcon.NewQuery("SELECT slot FROM [format_table_name("characters")] WHERE ckey='[C.ckey]' ORDER BY slot")
var/list/saves = list()
if(!query.Execute())
var/err = query.ErrorMsg()
log_game("SQL ERROR during random character slot picking. Error : \[[err]\]\n")
message_admins("SQL ERROR during random character slot picking. Error : \[[err]\]\n")
return
while(query.NextRow())
var/list/saves = list()
for(var/i=1, i<=MAX_SAVE_SLOTS, i++)
if(i==text2num(query.item[1]))
saves += i
saves += text2num(query.item[1])
if(!saves.len)
load_character(C)
return 0
load_character(C,pick(saves))
return 1*/
return 1
/datum/preferences/proc/SetChangelog(client/C,hash)
lastchangelog=hash