-$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.232 $ $NHDT-Date: 1547849604 2019/01/18 22:13:24 $
+$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.234 $ $NHDT-Date: 1548208486 2019/01/23 01:54:46 $
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,
even when current shape couldn't handle silver, or if it was cursed;
cursed is allowed but weapon will be dropped, just like in two-weapon
demons gated in other demons without any message
+if vampire revives from from dead bat/cloud/wolf shape held by hero poly'd
+ into grabber, release it from hero's grasp
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
-/* NetHack 3.6 extern.h $NHDT-Date: 1547486885 2019/01/14 17:28:05 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.682 $ */
+/* NetHack 3.6 extern.h $NHDT-Date: 1548208224 2019/01/23 01:50:24 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.683 $ */
/* Copyright (c) Steve Creps, 1988. */
/* NetHack may be freely redistributed. See license for details. */
E int NDECL(dohide);
E int NDECL(dopoly);
E int NDECL(domindblast);
+E void NDECL(uunstick);
E void FDECL(skinback, (BOOLEAN_P));
E const char *FDECL(mbodypart, (struct monst *, int));
E const char *FDECL(body_part, (int));
-/* NetHack 3.6 mon.c $NHDT-Date: 1545430257 2018/12/21 22:10:57 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.276 $ */
+/* NetHack 3.6 mon.c $NHDT-Date: 1548208236 2019/01/23 01:50:36 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.277 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
if (mtmp->mhpmax <= 0)
mtmp->mhpmax = 10;
mtmp->mhp = mtmp->mhpmax;
- /* this can happen if previously a fog cloud */
- if (u.uswallow && (mtmp == u.ustuck))
- expels(mtmp, mtmp->data, FALSE);
+ /* mtmp==u.ustuck can happen if previously a fog cloud
+ or poly'd hero is hugging a vampire bat */
+ if (mtmp == u.ustuck) {
+ if (u.uswallow)
+ expels(mtmp, mtmp->data, FALSE);
+ else
+ uunstick();
+ }
if (in_door) {
coord new_xy;
-/* NetHack 3.6 polyself.c $NHDT-Date: 1547086249 2019/01/10 02:10:49 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.125 $ */
+/* NetHack 3.6 polyself.c $NHDT-Date: 1548208238 2019/01/23 01:50:38 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.126 $ */
/* Copyright (C) 1987, 1988, 1989 by Ken Arromdee */
/* NetHack may be freely redistributed. See license for details. */
STATIC_DCL void FDECL(polyman, (const char *, const char *));
STATIC_DCL void NDECL(break_armor);
STATIC_DCL void FDECL(drop_weapon, (int));
-STATIC_DCL void NDECL(uunstick);
STATIC_DCL int FDECL(armor_to_dragon, (int));
STATIC_DCL void NDECL(newman);
STATIC_DCL void NDECL(polysense);
}
newsym(u.ux, u.uy); /* Change symbol */
+ /* [note: this 'sticky' handling is only sufficient for changing from
+ grabber to engulfer or vice versa because engulfing by poly'd hero
+ always ends immediately so won't be in effect during a polymorph] */
if (!sticky && !u.uswallow && u.ustuck && sticks(youmonst.data))
u.ustuck = 0;
else if (sticky && !sticks(youmonst.data))
uunstick();
+
if (u.usteed) {
if (touch_petrifies(u.usteed->data) && !Stone_resistance && rnl(3)) {
pline("%s touch %s.", no_longer_petrify_resistant,
return 1;
}
-STATIC_OVL void
+void
uunstick()
{
+ if (!u.ustuck) {
+ impossible("uunstick: no ustuck?");
+ return;
+ }
pline("%s is no longer in your clutches.", Monnam(u.ustuck));
u.ustuck = 0;
}