diff options
author | Bardur Arantsson <bardur@scientician.net> | 2016-09-17 09:58:14 +0200 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2016-09-17 09:58:14 +0200 |
commit | daf23851092099647a3830aa1c0cf12962f55b8e (patch) | |
tree | 15e236b093913f2f7e686af82d883f7419ee9e37 /src/loadsave.cc | |
parent | cc857c940cfe1bfe8d78674dbce53e5b71acaf41 (diff) |
Move 'player_*' shared fields to new 'player_shared' struct
Diffstat (limited to 'src/loadsave.cc')
-rw-r--r-- | src/loadsave.cc | 23 |
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++) |