summaryrefslogtreecommitdiff
path: root/src/loadsave.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/loadsave.c')
-rw-r--r--src/loadsave.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/loadsave.c b/src/loadsave.c
index 5116acef..033aa3a0 100644
--- a/src/loadsave.c
+++ b/src/loadsave.c
@@ -575,6 +575,7 @@ static bool_ do_extra(int flag)
do_s32b(&p_ptr->loan, flag);
do_s32b(&p_ptr->loan_time, flag);
do_s16b(&p_ptr->absorb_soul, flag);
+ do_s32b(&p_ptr->inertia_controlled_spell, flag);
do_s16b(&p_ptr->chaos_patron, flag);
@@ -1062,6 +1063,16 @@ static void do_byte(byte *v, int flag)
exit(0);
}
+static void do_bool(bool_ *f, int flag)
+{
+ byte b = *f;
+ do_byte(&b, flag);
+ if (flag == LS_LOAD)
+ {
+ *f = b;
+ }
+}
+
static void do_u16b(u16b *v, int flag)
{
if (flag == LS_LOAD)
@@ -2500,6 +2511,24 @@ void do_fate(int i, int flag)
}
/*
+ * Load/save timers.
+ */
+static void do_timers(int flag)
+{
+ timer_type *t_ptr;
+
+ for (t_ptr = gl_timers; t_ptr != NULL; t_ptr = t_ptr->next)
+ {
+ if (t_ptr->callback_c)
+ {
+ do_bool(&t_ptr->enabled, flag);
+ do_s32b(&t_ptr->delay, flag);
+ do_s32b(&t_ptr->countdown, flag);
+ }
+ }
+}
+
+/*
* Actually read the savefile
*/
static bool_ do_savefile_aux(int flag)
@@ -2569,6 +2598,9 @@ static bool_ do_savefile_aux(int flag)
strcpy(loaded_game_module, game_module);
do_string(loaded_game_module, 80, flag);
+ /* Timers */
+ do_timers(flag);
+
/* Read RNG state */
do_randomizer(flag);
if ((flag == LS_LOAD) && (arg_fiddle)) note("Loaded Randomizer Info");