diff --git a/doc/fixes36.1 b/doc/fixes36.1 index 595878036..37f1d1064 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -238,6 +238,10 @@ metabolism adjustments: hero poly'd into metallivore form still needs to eat; being fainted or unconscious from other than sleep now consumes nutrition at lower rate, like being asleep already did; starvation threshold shortened due to slower food use while fainting +after using detection magic or #terrain while underwater, then leaving water + and saving while on land, save would flag you as underwater again and + then restore would limit the map display accordingly; next move would + notice, retify things, and report "you are on solid land again" Fixes to Post-3.6.0 Problems that Were Exposed Via git Respository diff --git a/src/detect.c b/src/detect.c index c61334388..526c81c6b 100644 --- a/src/detect.c +++ b/src/detect.c @@ -272,6 +272,7 @@ outgoldmap: } newsym(u.ux, u.uy); u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; + iflags.save_uinwater = iflags.save_uburied = 0; You_feel("very greedy, and sense gold!"); exercise(A_WIS, TRUE); display_nhwindow(WIN_MAP, TRUE); @@ -376,6 +377,7 @@ register struct obj *sobj; } newsym(u.ux, u.uy); u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; + iflags.save_uinwater = iflags.save_uburied = 0; if (sobj) { if (sobj->blessed) { Your("%s %s to tingle and you smell %s.", body_part(NOSE), @@ -575,6 +577,7 @@ int class; /* an object class, 0 for all */ newsym(u.ux, u.uy); u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; + iflags.save_uinwater = iflags.save_uburied = 0; You("detect the %s of %s.", ct ? "presence" : "absence", stuff); display_nhwindow(WIN_MAP, TRUE); /* @@ -826,6 +829,7 @@ outtrapmap: if (!(glyph_is_trap(glyph) || glyph_is_object(glyph))) newsym(u.ux, u.uy); u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; + iflags.save_uinwater = iflags.save_uburied = 0; You_feel("%s.", cursed_src ? "very greedy" : "entrapped"); /* wait for user to respond, then reset map display to normal */ @@ -1090,6 +1094,7 @@ do_mapping() for (zy = 0; zy < ROWNO; zy++) show_map_spot(zx, zy); u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; + iflags.save_uinwater = iflags.save_uburied = 0; if (!level.flags.hero_memory || Underwater) { flush_screen(1); /* flush temp screen */ display_nhwindow(WIN_MAP, TRUE); /* wait */ @@ -1602,6 +1607,7 @@ int which_subset; /* when not full, whether to suppress objs and/or traps */ /* [TODO: highlight hero's location somehow] */ u.uinwater = iflags.save_uinwater, u.uburied = iflags.save_uburied; + iflags.save_uinwater = iflags.save_uburied = 0; if (save_swallowed) u.uswallow = 1; flush_screen(1);