From: PatR Date: Sat, 12 Dec 2015 08:34:16 +0000 (-0800) Subject: vampire genocide could produce unkillable critter X-Git-Tag: NetHack-3.6.1_RC01~1187 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=757e6f9c4da1417b3b127dae8834697fea5e284c;p=nethack vampire genocide could produce unkillable critter Vampires who were currently shape-shifted into a fog cloud, bat, or wolf became an unkillable fog could, bat, or wolf if the player genocided vampires. When such a creature was killed, the attempt to transform it back into a vampire failed, but the monster continued to be resurrected anyway. --- diff --git a/doc/fixes36.1 b/doc/fixes36.1 index b682a6c25..b5705cff7 100644 --- a/doc/fixes36.1 +++ b/doc/fixes36.1 @@ -12,7 +12,10 @@ looking at distant objects while wearing the Eyes of the Overworld made their message when cursed wand zapped by a monster happens to explode was suppressed if hero was deaf, even though that message has no audible component support explicit 'symset:default' and 'symset:Default symbols' in options -Crash during startup if player name set as 'player' in defaults +crash during startup if player name set as 'player' in defaults +any existing vampire shape-shifted into critter (fog cloud, bat, wolf) became + an unkillable critter if vampires were genocided + Platform- and/or Interface-Specific Fixes ----------------------------------------- diff --git a/src/mon.c b/src/mon.c index ade596810..467ec58b5 100644 --- a/src/mon.c +++ b/src/mon.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 mon.c $NHDT-Date: 1449269918 2015/12/04 22:58:38 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.199 $ */ +/* NetHack 3.6 mon.c $NHDT-Date: 1449908726 2015/12/12 08:25:26 $ $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.200 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1741,7 +1741,8 @@ register struct monst *mtmp; int x = mtmp->mx, y = mtmp->my; /* this only happens if shapeshifted */ - if (mndx >= LOW_PM && mndx != monsndx(mtmp->data)) { + if (mndx >= LOW_PM && mndx != monsndx(mtmp->data) + && !(mvitals[mndx].mvflags & G_GENOD)) { char buf[BUFSZ]; boolean in_door = (amorphous(mtmp->data) && closed_door(mtmp->mx, mtmp->my)),