diff --git a/doc/fixes36.2 b/doc/fixes36.2 index 88a9c2a68..6679ce9b6 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.307 $ $NHDT-Date: 1555801218 2019/04/20 23:00:18 $ +$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.309 $ $NHDT-Date: 1556150377 2019/04/24 23:59:37 $ This fixes36.2 file is here to capture information about updates in the 3.6.x lineage following the release of 3.6.1 in April 2018. Please note, however, @@ -416,6 +416,9 @@ a quantum mechanic hit that teleported the target could also kill it at the fatal unless the teleport is negated by cancellation (magic or armor) if a mimic concealed itself as a corpse, it could pick a monster type which never leaves a corpse +message given when shape-shifted vampire cheats death by reverting to its + original form ignored hallucination when describing old and new forms +Vlad wasn't set up as a vampshifter properly Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository diff --git a/src/makemon.c b/src/makemon.c index 1ca85e006..31d622710 100644 --- a/src/makemon.c +++ b/src/makemon.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 makemon.c $NHDT-Date: 1555801218 2019/04/20 23:00:18 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.133 $ */ +/* NetHack 3.6 makemon.c $NHDT-Date: 1556150377 2019/04/24 23:59:37 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.134 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2012. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1282,22 +1282,19 @@ int mmflags; if (mndx == PM_VLAD_THE_IMPALER) mitem = CANDELABRUM_OF_INVOCATION; mtmp->cham = NON_PM; /* default is "not a shapechanger" */ - if ((mcham = pm_to_cham(mndx)) != NON_PM) { + if (!Protection_from_shape_changers + && (mcham = pm_to_cham(mndx)) != NON_PM) { /* this is a shapechanger after all */ - if (Protection_from_shape_changers - || mndx == PM_VLAD_THE_IMPALER) { - ; /* stuck in its natural form (NON_PM) */ - } else { - mtmp->cham = mcham; - /* Note: shapechanger's initial form used to be - chosen here with rndmonst(), yielding a monster - which was appropriate to the level's difficulty - but ignored the changer's usual type selection - so would be inappropriate for vampshifters. + mtmp->cham = mcham; + /* Vlad stays in his normal shape so he can carry the Candelabrum */ + if (mndx != PM_VLAD_THE_IMPALER + /* Note: shapechanger's initial form used to be chosen here + with rndmonst(), yielding a monster which was appropriate + to the level's difficulty but ignoring the changer's usual + type selection, so was inappropriate for vampshifters. Let newcham() pick the shape. */ - if (newcham(mtmp, (struct permonst *) 0, FALSE, FALSE)) - allow_minvent = FALSE; - } + && newcham(mtmp, (struct permonst *) 0, FALSE, FALSE)) + allow_minvent = FALSE; } else if (mndx == PM_WIZARD_OF_YENDOR) { mtmp->iswiz = TRUE; g.context.no_of_wizards++; diff --git a/src/mon.c b/src/mon.c index c0cb31941..cd4014daf 100644 --- a/src/mon.c +++ b/src/mon.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 mon.c $NHDT-Date: 1555552629 2019/04/18 01:57:09 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.282 $ */ +/* NetHack 3.6 mon.c $NHDT-Date: 1556139724 2019/04/24 21:02:04 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.284 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Derek S. Ray, 2015. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1933,9 +1933,7 @@ register struct monst *mtmp; Sprintf(buf, "%s suddenly %s and rises as %%s!", x_monnam(mtmp, ARTICLE_THE, spec_mon ? (char *) 0 : "seemingly dead", - SUPPRESS_SADDLE | SUPPRESS_HALLUCINATION - | SUPPRESS_INVISIBLE | SUPPRESS_IT, - FALSE), + (SUPPRESS_INVISIBLE | SUPPRESS_IT), FALSE), spec_death ? "reconstitutes" : "transforms"); mtmp->mcanmove = 1; mtmp->mfrozen = 0; @@ -1963,13 +1961,13 @@ register struct monst *mtmp; else mtmp->cham = mndx; if (canspotmon(mtmp)) { - const char *whom = mtmp->data->mname; - - /* was using a_monnam(mtmp) but that's weird if mtmp is named: - "Dracula suddenly transforms and rises as Dracula" */ - if (!type_is_pname(mtmp->data)) - whom = an(whom); - pline(upstart(buf), whom); + /* 3.6.0 used a_monnam(mtmp); that was weird if mtmp was + named: "Dracula suddenly transforms and rises as Dracula"; + 3.6.1 used mtmp->data->mname; that ignored hallucination */ + pline(upstart(buf), + x_monnam(mtmp, ARTICLE_A, (char *) 0, + (SUPPRESS_NAME | SUPPRESS_IT + | SUPPRESS_INVISIBLE), FALSE)); g.vamp_rise_msg = TRUE; } newsym(x, y);