summaryrefslogtreecommitdiff
path: root/src/char
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2014-07-01 13:53:26 -0700
committerBen Longbons <b.r.longbons@gmail.com>2014-07-01 15:50:28 -0700
commit8f44e6841f8be1d57ce859b60ecb616f6306c37c (patch)
treeadf3b91d1a60c1cdeeeb6e825aa48f3df3b53be5 /src/char
parent1bf79f46612f57d22647cfab515c85ee641601ca (diff)
downloadtmwa-8f44e6841f8be1d57ce859b60ecb616f6306c37c.tar.gz
tmwa-8f44e6841f8be1d57ce859b60ecb616f6306c37c.tar.bz2
tmwa-8f44e6841f8be1d57ce859b60ecb616f6306c37c.tar.xz
tmwa-8f44e6841f8be1d57ce859b60ecb616f6306c37c.zip
Savefile fixes
Diffstat (limited to 'src/char')
-rw-r--r--src/char/char.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/char/char.cpp b/src/char/char.cpp
index 8d3bccb..80ad697 100644
--- a/src/char/char.cpp
+++ b/src/char/char.cpp
@@ -452,6 +452,7 @@ bool extract(XString str, CharPair *cp)
XString unused_cart;
std::vector<struct skill_loader> skills;
std::vector<GlobalReg> vars;
+ XString hair_style;
if (!extract(str,
record<'\t'>(
&k->char_id,
@@ -464,7 +465,7 @@ bool extract(XString str, CharPair *cp)
record<','>(&p->status_point, &p->skill_point),
record<','>(&p->option, &p->karma, &p->manner),
record<','>(&p->party_id, &unused_guild_id, &unused_pet_id),
- record<','>(&p->hair, &p->hair_color, &p->clothes_color),
+ record<','>(&hair_style, &p->hair_color, &p->clothes_color),
record<','>(&p->weapon, &p->shield, &p->head_top, &p->head_mid, &p->head_bottom),
&p->last_point,
// somebody was silly and stuck partner id as a field
@@ -478,6 +479,14 @@ bool extract(XString str, CharPair *cp)
vrec<' '>(&vars))))
return false;
+ // leftover corruption from Platinum
+ if (hair_style == "-1"_s)
+ {
+ p->hair = 0;
+ }
+ else if (!extract(hair_style, &p->hair))
+ return false;
+
if (wisp_server_name == k->name)
return false;