vampire shift to fog cloud

If a vampire, possibly in bat form, on the far side of a closed door
shifted shape to fog cloud in order to pass under the door, you were
told about the shape change if you could see it after being placed at
the door's location even if you couldn't see the vampire's pre-move
location.  This is a bug introduced after 3.6.0....
This commit is contained in:
PatR
2017-09-12 18:26:14 -07:00
parent 5710944258
commit 3731afbc6b
2 changed files with 5 additions and 2 deletions

View File

@@ -483,6 +483,8 @@ replace the fix for preventing putting on a helm of opposite alignment from
causing wielded Excalibur from blasting hero twice
hero poly'd into vampire could drain monster down to 0 HP without killing it,
triggering impossible "dmonsfree: 1 removed doesn't match 0 pending"
"you observe a fog cloud where a vampire/bat was" if an unseen vampire on the
far side of a closed door shifted shape to pass under that door
Platform- and/or Interface-Specific Fixes

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 monmove.c $NHDT-Date: 1505180840 2017/09/12 01:47:20 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.92 $ */
/* NetHack 3.6 monmove.c $NHDT-Date: 1505265968 2017/09/13 01:26:08 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.93 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -752,6 +752,7 @@ register int after;
boolean uses_items = 0, setlikes = 0;
boolean avoid = FALSE;
boolean better_with_displacing = FALSE;
boolean sawmon = canspotmon(mtmp); /* before it moved */
struct permonst *ptr;
struct monst *mtoo;
schar mmoved = 0; /* not strictly nec.: chi >= 0 will do */
@@ -1249,7 +1250,7 @@ postmov:
&& (amorphous(ptr)
|| (can_fog(mtmp)
&& vamp_shift(mtmp, &mons[PM_FOG_CLOUD],
canspotmon(mtmp))))) {
sawmon)))) {
/* update cached value for vamp_shift() case */
ptr = mtmp->data;
if (flags.verbose && canseemon(mtmp))