diff options
author | Bardur Arantsson <bardur@scientician.net> | 2017-05-02 19:20:57 +0200 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2017-05-02 19:20:57 +0200 |
commit | 2c8b8579faf729b9cf21b8b2d827f0e482570bd3 (patch) | |
tree | 7c258a9008d00ff1ec54de578d092e370b90cd95 /src/loadsave.cc | |
parent | fdb532aec5234db77a9111d219f8a870d660c4fc (diff) |
Move random_artifacts to Game struct
Diffstat (limited to 'src/loadsave.cc')
-rw-r--r-- | src/loadsave.cc | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/src/loadsave.cc b/src/loadsave.cc index 86c67956..ef554f19 100644 --- a/src/loadsave.cc +++ b/src/loadsave.cc @@ -2266,31 +2266,20 @@ static bool do_wilderness(ls_flag_t flag) return true; } +static void do_randart(random_artifact *ra_ptr, ls_flag_t flag) +{ + do_std_string(ra_ptr->name_full, flag); + do_std_string(ra_ptr->name_short, flag); + do_byte(&ra_ptr->level, flag); + do_byte(&ra_ptr->attr, flag); + do_u32b(&ra_ptr->cost, flag); + do_byte(&ra_ptr->activation, flag); + do_byte(&ra_ptr->generated, flag); +} + static bool do_randarts(ls_flag_t flag) { - u16b n_randarts = MAX_RANDARTS; - - do_u16b(&n_randarts, flag); - - if ((flag == ls_flag_t::LOAD) && (n_randarts > MAX_RANDARTS)) - { - note("Too many random artifacts!"); - return false; - } - - for (std::size_t i = 0; i < n_randarts; i++) - { - random_artifact *ra_ptr = &random_artifacts[i]; - - do_string(ra_ptr->name_full, 80, flag); - do_string(ra_ptr->name_short, 80, flag); - do_byte(&ra_ptr->level, flag); - do_byte(&ra_ptr->attr, flag); - do_u32b(&ra_ptr->cost, flag); - do_byte(&ra_ptr->activation, flag); - do_byte(&ra_ptr->generated, flag); - } - + do_vector(flag, game->random_artifacts, do_randart); return true; } |