wand of stasis when off level

Account for the time spent on other levels for
wand of stasis

Resolves #1608
This commit is contained in:
nhmall
2026-07-02 17:48:29 -04:00
parent aaf601ffc8
commit 5e80fd3b93
3 changed files with 6 additions and 4 deletions
+1 -1
View File
@@ -2755,7 +2755,7 @@ void restore_gamelog(NHFILE *);
boolean restgamestate(NHFILE *);
void restore_msghistory(NHFILE *);
#endif
extern void rest_adjust_levelflags(void);
extern void rest_adjust_levelflags(long);
extern void moves_to_relative_time(long *);
extern void relative_time_to_moves(long *);
extern boolean revision_increment(int, int, uchar *);
+4 -2
View File
@@ -1140,7 +1140,7 @@ getlev(NHFILE *nhfp, int pid, xint8 lev)
Sfi_dest_area(nhfp, &svu.updest, "lev-updest");
Sfi_dest_area(nhfp, &svd.dndest, "lev-dndest");
Sfi_levelflags(nhfp, &svl.level.flags, "lev-level_flags");
rest_adjust_levelflags();
rest_adjust_levelflags(elapsed);
if (svd.doors) {
free(svd.doors);
svd.doors = 0;
@@ -1348,11 +1348,13 @@ getlev(NHFILE *nhfp, int pid, xint8 lev)
}
void
rest_adjust_levelflags(void)
rest_adjust_levelflags(long elapsed)
{
/* adjust timestamps */
relative_time_to_moves(&svl.level.flags.stasis_until);
svl.level.flags.stasis_until -= elapsed;
}
void
moves_to_relative_time(long *timestamp)
{
+1 -1
View File
@@ -529,7 +529,7 @@ savelev_core(NHFILE *nhfp, xint8 lev)
Sfo_dest_area(nhfp, &svd.dndest, "lev-dndest");
save_adjust_levelflags();
Sfo_levelflags(nhfp, &svl.level.flags, "lev-level_flags");
rest_adjust_levelflags();
rest_adjust_levelflags(0L);
Sfo_int(nhfp, &svd.doors_alloc, "lev-doors_alloc");
/* don't rely on underlying write() behavior to write