summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorParadox924X <Paradox924X@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-11-09 20:17:56 +0000
committerParadox924X <Paradox924X@54d463be-8e91-2dee-dedb-b68131a5f0ec>2010-11-09 20:17:56 +0000
commit7a3924a8e32eafe806e644770c3b470d79c1e831 (patch)
treedbd6ebbbd97ac863461efd13c4f720e50f7d7eb9 /src
parentd7f4a7a1b43ec0fc20c05936d08a91962b9b774d (diff)
downloadhercules-7a3924a8e32eafe806e644770c3b470d79c1e831.tar.gz
hercules-7a3924a8e32eafe806e644770c3b470d79c1e831.tar.bz2
hercules-7a3924a8e32eafe806e644770c3b470d79c1e831.tar.xz
hercules-7a3924a8e32eafe806e644770c3b470d79c1e831.zip
Follow-up to r14368. Load last_map from SQL on char load so the information is available during char select for PACKETVER > 20100721. Patch based on Ai4rei's. (bugreport:4429)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14453 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/char_sql/char.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/char_sql/char.c b/src/char_sql/char.c
index f27395a80..be94c920f 100644
--- a/src/char_sql/char.c
+++ b/src/char_sql/char.c
@@ -824,6 +824,7 @@ int mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
SqlStmt* stmt;
struct mmo_charstatus p;
int j = 0, i;
+ char last_map[MAP_NAME_LENGTH_EXT];
stmt = SqlStmt_Malloc(sql_handle);
if( stmt == NULL )
@@ -838,7 +839,7 @@ int mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
"`char_id`,`char_num`,`name`,`class`,`base_level`,`job_level`,`base_exp`,`job_exp`,`zeny`,"
"`str`,`agi`,`vit`,`int`,`dex`,`luk`,`max_hp`,`hp`,`max_sp`,`sp`,"
"`status_point`,`skill_point`,`option`,`karma`,`manner`,`hair`,`hair_color`,"
- "`clothes_color`,`weapon`,`shield`,`head_top`,`head_mid`,`head_bottom`,`rename`"
+ "`clothes_color`,`weapon`,`shield`,`head_top`,`head_mid`,`head_bottom`,`last_map`,`rename`"
" FROM `%s` WHERE `account_id`='%d' AND `char_num` < '%d'", char_db, sd->account_id, MAX_CHARS)
|| SQL_ERROR == SqlStmt_Execute(stmt)
|| SQL_ERROR == SqlStmt_BindColumn(stmt, 0, SQLDT_INT, &p.char_id, 0, NULL, NULL)
@@ -873,7 +874,8 @@ int mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
|| SQL_ERROR == SqlStmt_BindColumn(stmt, 29, SQLDT_SHORT, &p.head_top, 0, NULL, NULL)
|| SQL_ERROR == SqlStmt_BindColumn(stmt, 30, SQLDT_SHORT, &p.head_mid, 0, NULL, NULL)
|| SQL_ERROR == SqlStmt_BindColumn(stmt, 31, SQLDT_SHORT, &p.head_bottom, 0, NULL, NULL)
- || SQL_ERROR == SqlStmt_BindColumn(stmt, 32, SQLDT_SHORT, &p.rename, 0, NULL, NULL)
+ || SQL_ERROR == SqlStmt_BindColumn(stmt, 32, SQLDT_STRING, &last_map, sizeof(last_map), NULL, NULL)
+ || SQL_ERROR == SqlStmt_BindColumn(stmt, 33, SQLDT_SHORT, &p.rename, 0, NULL, NULL)
)
{
SqlStmt_ShowDebug(stmt);
@@ -882,6 +884,7 @@ int mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
}
for( i = 0; i < MAX_CHARS && SQL_SUCCESS == SqlStmt_NextRow(stmt); i++ )
{
+ p.last_point.map = mapindex_name2id(last_map);
sd->found_char[i] = p.char_id;
j += mmo_char_tobuf(WBUFP(buf, j), &p);
}