From aa98091bfadaf392fee57752657e23e90e4b06f9 Mon Sep 17 00:00:00 2001 From: "nethack.rankin" Date: Sun, 11 Dec 2005 03:09:05 +0000 Subject: [PATCH] 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. --- include/context.h | 1 - include/flag.h | 7 ++++--- src/do_wear.c | 2 +- src/trap.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/context.h b/include/context.h index 676cabf54..3e8ae3781 100644 --- a/include/context.h +++ b/include/context.h @@ -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; diff --git a/include/flag.h b/include/flag.h index 4d738c01a..5a8c1e898 100644 --- a/include/flag.h +++ b/include/flag.h @@ -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 */ diff --git a/src/do_wear.c b/src/do_wear.c index 4857c5a1c..eff0abea3 100644 --- a/src/do_wear.c +++ b/src/do_wear.c @@ -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); diff --git a/src/trap.c b/src/trap.c index ec60c7fca..3eef5a183 100644 --- a/src/trap.c +++ b/src/trap.c @@ -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; -- 2.40.0