in_lava_effects (trunk only)

The in_lava_effects flag should never be saved and restored; putting
it into the context struct was a mistake.  Move it to the iflags struct
(where the branch code already has it).  I haven't bumped the EDITLEVEL
setting.  Save and bones files from more that a few days ago were breifly
invalid but should be viable again.  Save and bones files from the past
couple of days are now no good; sorry about that.
This commit is contained in:
nethack.rankin
2005-12-11 03:09:05 +00:00
parent 83b73be40c
commit aa98091bfa
4 changed files with 7 additions and 7 deletions

View File

@@ -80,7 +80,6 @@ struct context_info {
/* 8: travel */
unsigned startingpet_mid;
int warnlevel;
int in_lava_effects; /* hack for Boots_off() */
long next_attrib_check; /* next attribute check */
long stethoscope_move;
short stethoscope_movement;

View File

@@ -166,9 +166,10 @@ struct instance_flags {
* on some non-move commands */
boolean zerocomp; /* write zero-compressed save files */
boolean rlecomp; /* run-length comp of levels when writing savefile */
uchar num_pad_mode;
int menu_headings; /* ATR for menu headings */
int purge_monsters; /* # of dead monsters still on fmon list */
uchar num_pad_mode;
int in_lava_effects; /* hack for Boots_off() */
int menu_headings; /* ATR for menu headings */
int purge_monsters; /* # of dead monsters still on fmon list */
int *opt_booldup; /* for duplication of boolean opts in config file */
int *opt_compdup; /* for duplication of compound opts in config file */
uchar bouldersym; /* symbol for boulder display */

View File

@@ -154,7 +154,7 @@ Boots_off()
!Levitation && !Flying && !is_clinger(youmonst.data) &&
!context.takeoff.cancelled_don &&
/* avoid recursive call to lava_effects() */
!context.in_lava_effects) {
!iflags.in_lava_effects) {
/* make boots known in case you survive the drowning */
makeknown(otyp);
spoteffects(TRUE);

View File

@@ -4127,7 +4127,7 @@ lava_effects()
which would successfully delete (via useupall) the no-longer-worn
boots; once recursive call returned, we would try to delete them
again here in the outer call (access stale memory, probably panic) */
context.in_lava_effects++;
iflags.in_lava_effects++;
for(obj = invent; obj; obj = obj2) {
obj2 = obj->nobj;
@@ -4157,7 +4157,7 @@ lava_effects()
}
}
context.in_lava_effects--;
iflags.in_lava_effects--;
/* s/he died... */
u.uhp = -1;