summaryrefslogtreecommitdiff
path: root/src/loadsave.cc
diff options
context:
space:
mode:
authorBardur Arantsson <bardur@scientician.net>2017-05-02 19:20:57 +0200
committerBardur Arantsson <bardur@scientician.net>2017-05-02 19:20:57 +0200
commit2c8b8579faf729b9cf21b8b2d827f0e482570bd3 (patch)
tree7c258a9008d00ff1ec54de578d092e370b90cd95 /src/loadsave.cc
parentfdb532aec5234db77a9111d219f8a870d660c4fc (diff)
Move random_artifacts to Game struct
Diffstat (limited to 'src/loadsave.cc')
-rw-r--r--src/loadsave.cc35
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;
}