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:
@@ -80,7 +80,6 @@ struct context_info {
|
|||||||
/* 8: travel */
|
/* 8: travel */
|
||||||
unsigned startingpet_mid;
|
unsigned startingpet_mid;
|
||||||
int warnlevel;
|
int warnlevel;
|
||||||
int in_lava_effects; /* hack for Boots_off() */
|
|
||||||
long next_attrib_check; /* next attribute check */
|
long next_attrib_check; /* next attribute check */
|
||||||
long stethoscope_move;
|
long stethoscope_move;
|
||||||
short stethoscope_movement;
|
short stethoscope_movement;
|
||||||
|
|||||||
+4
-3
@@ -166,9 +166,10 @@ struct instance_flags {
|
|||||||
* on some non-move commands */
|
* on some non-move commands */
|
||||||
boolean zerocomp; /* write zero-compressed save files */
|
boolean zerocomp; /* write zero-compressed save files */
|
||||||
boolean rlecomp; /* run-length comp of levels when writing savefile */
|
boolean rlecomp; /* run-length comp of levels when writing savefile */
|
||||||
uchar num_pad_mode;
|
uchar num_pad_mode;
|
||||||
int menu_headings; /* ATR for menu headings */
|
int in_lava_effects; /* hack for Boots_off() */
|
||||||
int purge_monsters; /* # of dead monsters still on fmon list */
|
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_booldup; /* for duplication of boolean opts in config file */
|
||||||
int *opt_compdup; /* for duplication of compound opts in config file */
|
int *opt_compdup; /* for duplication of compound opts in config file */
|
||||||
uchar bouldersym; /* symbol for boulder display */
|
uchar bouldersym; /* symbol for boulder display */
|
||||||
|
|||||||
+1
-1
@@ -154,7 +154,7 @@ Boots_off()
|
|||||||
!Levitation && !Flying && !is_clinger(youmonst.data) &&
|
!Levitation && !Flying && !is_clinger(youmonst.data) &&
|
||||||
!context.takeoff.cancelled_don &&
|
!context.takeoff.cancelled_don &&
|
||||||
/* avoid recursive call to lava_effects() */
|
/* avoid recursive call to lava_effects() */
|
||||||
!context.in_lava_effects) {
|
!iflags.in_lava_effects) {
|
||||||
/* make boots known in case you survive the drowning */
|
/* make boots known in case you survive the drowning */
|
||||||
makeknown(otyp);
|
makeknown(otyp);
|
||||||
spoteffects(TRUE);
|
spoteffects(TRUE);
|
||||||
|
|||||||
+2
-2
@@ -4127,7 +4127,7 @@ lava_effects()
|
|||||||
which would successfully delete (via useupall) the no-longer-worn
|
which would successfully delete (via useupall) the no-longer-worn
|
||||||
boots; once recursive call returned, we would try to delete them
|
boots; once recursive call returned, we would try to delete them
|
||||||
again here in the outer call (access stale memory, probably panic) */
|
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) {
|
for(obj = invent; obj; obj = obj2) {
|
||||||
obj2 = obj->nobj;
|
obj2 = obj->nobj;
|
||||||
@@ -4157,7 +4157,7 @@ lava_effects()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
context.in_lava_effects--;
|
iflags.in_lava_effects--;
|
||||||
|
|
||||||
/* s/he died... */
|
/* s/he died... */
|
||||||
u.uhp = -1;
|
u.uhp = -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user