apply fix from grunthack to prevent panic "fakecorr overflow" when vault guard
couldn't figure out how to lead the hero from vault to civilization;
fixes longstanding bug C343-23
+vibrating square is not really a trap so monsters don't need to avoid it
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
-/* NetHack 3.6 mon.c $NHDT-Date: 1544658160 2018/12/12 23:42:40 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.274 $ */
+/* NetHack 3.6 mon.c $NHDT-Date: 1545259929 2018/12/19 22:52:09 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.275 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Derek S. Ray, 2015. */
/* NetHack may be freely redistributed. See license for details. */
if ((ttmp->ttyp != RUST_TRAP
|| mdat == &mons[PM_IRON_GOLEM])
&& ttmp->ttyp != STATUE_TRAP
+ && ttmp->ttyp != VIBRATING_SQUARE
&& ((!is_pit(ttmp->ttyp) && !is_hole(ttmp->ttyp))
|| (!is_flyer(mdat) && !is_floater(mdat)
&& !is_clinger(mdat)) || Sokoban)
-/* NetHack 3.6 trap.c $NHDT-Date: 1543515862 2018/11/29 18:24:22 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.312 $ */
+/* NetHack 3.6 trap.c $NHDT-Date: 1545259936 2018/12/19 22:52:16 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.313 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2013. */
/* NetHack may be freely redistributed. See license for details. */
break;
case VIBRATING_SQUARE:
if (see_it && !Blind) {
- if (in_sight)
- pline("You see a strange vibration beneath %s %s.",
- s_suffix(mon_nam(mtmp)),
- makeplural(mbodypart(mtmp, FOOT)));
- else
- pline("You see the ground vibrate in the distance.");
- seetrap(trap);
+ seetrap(trap); /* before messages */
+ if (in_sight) {
+ char buf[BUFSZ], *p, *monnm = mon_nam(mtmp);
+
+ if (nolimbs(mtmp->data)
+ || is_floater(mtmp->data) || is_flyer(mtmp->data)) {
+ /* just "beneath <mon>" */
+ Strcpy(buf, monnm);
+ } else {
+ Strcpy(buf, s_suffix(monnm));
+ p = eos(strcat(buf, " "));
+ Strcpy(p, makeplural(mbodypart(mtmp, FOOT)));
+ /* avoid "beneath 'rear paws'" or 'rear hooves' */
+ (void) strsubst(p, "rear ", "");
+ }
+ You_see("a strange vibration beneath %s.", buf);
+ } else {
+ /* notice something (hearing uses a larger threshold
+ for 'nearby') */
+ You_see("the ground vibrate %s.",
+ (distu(mtmp->mx, mtmp->my) <= 2 * 2)
+ ? "nearby" : "in the distance");
+ }
}
break;
default: