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
commit7d8641b99e82d62ddb8753d7b50d6b9fcab91c41 (patch)
tree1471c3d8feec3c6994a4d2ee8ad67490b1c38707 /src/loadsave.cc
parent1e045ed09258e6c7fff63ef829759c6c8f06f441 (diff)
Don't try to handle added skills on load
Diffstat (limited to 'src/loadsave.cc')
-rw-r--r--src/loadsave.cc32
1 files changed, 6 insertions, 26 deletions
diff --git a/src/loadsave.cc b/src/loadsave.cc
index 5fb4bada..562a403b 100644
--- a/src/loadsave.cc
+++ b/src/loadsave.cc
@@ -601,37 +601,17 @@ static bool_ do_extra(ls_flag_t flag)
do_u16b(&tmp16u, flag);
- if ((flag == ls_flag_t::LOAD) && (tmp16u > MAX_SKILLS))
+ if ((flag == ls_flag_t::LOAD) && (tmp16u != MAX_SKILLS))
{
- quit("Too many skills");
+ quit("Too few/many skills");
}
- if (flag == ls_flag_t::SAVE)
- {
- old_max_s_idx = max_s_idx;
- }
- do_u16b(&old_max_s_idx, flag);
-
for (std::size_t i = 0; i < tmp16u; i++)
{
- if (i < old_max_s_idx)
- {
- do_s32b(&s_info[i].value, flag);
- do_s32b(&s_info[i].mod, flag);
- do_bool(&s_info[i].dev, flag);
- do_bool(&s_info[i].hidden, flag);
- }
- else
- {
- // Skip extraneous entries
- u32b tmp32u = 0;
- s16b tmp16s = 0;
- bool_ tmp8u = 0;
- do_u32b(&tmp32u, flag);
- do_s16b(&tmp16s, flag);
- do_bool(&tmp8u, flag);
- do_bool(&tmp8u, flag);
- }
+ do_s32b(&s_info[i].value, flag);
+ do_s32b(&s_info[i].mod, flag);
+ do_bool(&s_info[i].dev, flag);
+ do_bool(&s_info[i].hidden, flag);
}
}