summaryrefslogtreecommitdiff
path: root/src/loadsave.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/loadsave.cc')
-rw-r--r--src/loadsave.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/loadsave.cc b/src/loadsave.cc
index 5354af9a..c100418e 100644
--- a/src/loadsave.cc
+++ b/src/loadsave.cc
@@ -532,6 +532,8 @@ static void note(cptr msg)
static char loaded_game_module[80];
static bool_ do_extra(ls_flag_t flag)
{
+ auto const &d_info = game->edit_data.d_info;
+
do_string(player_name, 32, flag);
do_string(died_from, 80, flag);
@@ -543,14 +545,14 @@ static bool_ do_extra(ls_flag_t flag)
/* Handle the special levels info */
{
- byte tmp8u = max_d_idx;
+ byte tmp8u = d_info.size();
u16b tmp16u = MAX_DUNGEON_DEPTH;
do_byte(&tmp8u, flag);
if (flag == ls_flag_t::LOAD)
{
- if (tmp8u > max_d_idx)
+ if (tmp8u > d_info.size())
{
note(format("Too many dungeon types!", static_cast<int>(tmp8u)));
}
@@ -719,7 +721,7 @@ static bool_ do_extra(ls_flag_t flag)
// Max dungeon levels
{
- byte tmp8u = max_d_idx;
+ byte tmp8u = d_info.size();
do_byte(&tmp8u, flag);
@@ -729,7 +731,7 @@ static bool_ do_extra(ls_flag_t flag)
do_s16b(&tmp16s, flag);
- if ((flag == ls_flag_t::LOAD) && (i <= max_d_idx))
+ if ((flag == ls_flag_t::LOAD) && (i <= d_info.size()))
{
max_dlv[i] = tmp16s;
}
@@ -794,7 +796,7 @@ static bool_ do_extra(ls_flag_t flag)
do_s16b(&p_ptr->tim_invis, flag);
do_s16b(&p_ptr->word_recall, flag);
- do_s16b(&p_ptr->recall_dungeon, flag);
+ do_byte(&p_ptr->recall_dungeon, flag);
do_s16b(&p_ptr->see_infra, flag);
do_s16b(&p_ptr->tim_infra, flag);
do_s16b(&p_ptr->oppose_fire, flag);
@@ -2128,6 +2130,8 @@ static bool do_object_lore(ls_flag_t flag)
static bool do_towns(ls_flag_t flag)
{
+ auto &d_info = game->edit_data.d_info;
+
u16b max_towns_ldsv = max_towns;
do_u16b(&max_towns_ldsv, flag);
@@ -2172,12 +2176,12 @@ static bool do_towns(ls_flag_t flag)
if (flag == ls_flag_t::SAVE)
{
- max_towns_ldsv = max_d_idx;
+ max_towns_ldsv = d_info.size();
}
do_u16b(&max_towns_ldsv, flag);
- if ((flag == ls_flag_t::LOAD) && (max_towns_ldsv > max_d_idx))
+ if ((flag == ls_flag_t::LOAD) && (max_towns_ldsv > d_info.size()))
{
note("Too many dungeon types!");
return false;