while blind reveals change in door state or discloses non-door spot
secret door detection's trap finding is no longer blocked by water or clouds
on the Planes of Water and Air
+potion thrown by monster which hit a long worm's tail gave feedback about
+ hitting its head
Platform- and/or Interface-Specific Fixes
impaired = (Confusion || Stunned || Blind ||
Hallucination || Fumbling);
+ notonhead = FALSE; /* reset potentially stale value */
if ((obj->cursed || obj->greased) && (u.dx || u.dy) && !rn2(7)) {
boolean slipok = TRUE;
if (ammo_and_launcher(obj, uwep))
-/* SCCS Id: @(#)mthrowu.c 3.5 2007/06/07 */
+/* SCCS Id: @(#)mthrowu.c 3.5 2007/12/17 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
"strange breath #9"
};
+extern boolean notonhead; /* for long worms */
+
/* hero is hit by something other than a monster */
int
thitu(tlev, dam, obj, name)
return 1 if the object has stopped moving (hit or its range used up) */
int
ohitmon(mtmp, otmp, range, verbose)
-struct monst *mtmp; /* accidental target */
+struct monst *mtmp; /* accidental target, located at <bhitpos.x,.y> */
struct obj *otmp; /* missile; might be destroyed by drop_throw */
int range; /* how much farther will object travel if it misses */
/* Use -1 to signify to keep going even after hit, */
boolean vis, ismimic;
int objgone = 1;
+ notonhead = (bhitpos.x != mtmp->mx || bhitpos.y != mtmp->my);
ismimic = mtmp->m_ap_type && mtmp->m_ap_type != M_AP_MONSTER;
vis = cansee(bhitpos.x, bhitpos.y);
bhitpos.x = x;
bhitpos.y = y;
+ notonhead = FALSE; /* reset potentially stale value */
if (obj->quan == 1L) {
/*