summaryrefslogtreecommitdiff
path: root/src/loadsave.cc
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2016-09-17 09:58:14 +0200
committerBardur Arantsson <bardur@scientician.net>2016-09-17 09:58:14 +0200
commitdaf23851092099647a3830aa1c0cf12962f55b8e (patch)
tree15e236b093913f2f7e686af82d883f7419ee9e37 /src/loadsave.cc
parentcc857c940cfe1bfe8d78674dbce53e5b71acaf41 (diff)
Move 'player_*' shared fields to new 'player_shared' struct
Diffstat (limited to 'src/loadsave.cc')
-rw-r--r--src/loadsave.cc23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/loadsave.cc b/src/loadsave.cc
index e6f4cefa..350fad65 100644
--- a/src/loadsave.cc
+++ b/src/loadsave.cc
@@ -424,19 +424,32 @@ static void do_subrace(ls_flag_t flag)
do_bool(&sr_ptr->place, flag);
for (i = 0; i < 6; i++)
- do_s16b(&sr_ptr->r_adj[i], flag);
+ {
+ do_s16b(&sr_ptr->ps.adj[i], flag);
+ }
do_byte((byte*)&sr_ptr->luck, flag);
do_s16b(&sr_ptr->mana, flag);
- do_byte((byte*)&sr_ptr->r_mhp, flag);
- do_s16b(&sr_ptr->r_exp, flag);
+ do_byte((byte*)&sr_ptr->ps.mhp, flag);
+ do_s16b(&sr_ptr->ps.exp, flag);
do_byte((byte*)&sr_ptr->infra, flag);
- for (i = 0; i < 4; i++)
{
- do_s16b(&sr_ptr->powers[i], flag);
+ u16b n = sr_ptr->ps.powers.size();
+
+ do_u16b(&n, flag);
+
+ for (std::size_t i = 0; i < n; i++)
+ {
+ if (flag == ls_flag_t::LOAD)
+ {
+ sr_ptr->ps.powers.push_back(0);
+ }
+
+ do_s16b(&sr_ptr->ps.powers[i], flag);
+ }
}
for (i = 0; i < BODY_MAX; i++)