prevent "see it drop from your pack" when figurine monster becomes undetected
attempting to drop a subset of a stack of multiple cursed loadstones could
corrupt inventory or cause a crash
+"miss" message was missing for thrown or kicked gold not caught by a monster
Platform- and/or Interface-Specific Fixes
-/* SCCS Id: @(#)dokick.c 3.4 2003/03/14 */
+/* SCCS Id: @(#)dokick.c 3.4 2003/12/04 */
/* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */
/* NetHack may be freely redistributed. See license for details. */
register struct monst *mtmp;
register struct obj *gold;
{
+ boolean msg_given = FALSE;
+
if(!likes_gold(mtmp->data) && !mtmp->isshk && !mtmp->ispriest
&& !is_mercenary(mtmp->data)) {
wakeup(mtmp);
} else if (!mtmp->mcanmove) {
/* too light to do real damage */
- if (canseemon(mtmp))
- pline_The("gold hits %s.", mon_nam(mtmp));
+ if (canseemon(mtmp)) {
+ pline_The("%s harmlessly %s %s.", xname(gold),
+ otense(gold, "hit"), mon_nam(mtmp));
+ msg_given = TRUE;
+ }
} else {
#ifdef GOLDOBJ
long value = gold->quan * objects[gold->otyp].oc_cost;
if (mtmp->mpeaceful)
verbalize("That should do. Now beat it!");
else verbalize("That's not enough, coward!");
- }
+ }
#ifndef GOLDOBJ
dealloc_obj(gold);
#else
- add_to_minv(mtmp, gold);
+ add_to_minv(mtmp, gold);
#endif
- return(1);
+ return TRUE;
}
- return(0);
+
+ if (!msg_given) miss(xname(gold), mtmp);
+ return FALSE;
}
/* container is kicked, dropped, thrown or otherwise impacted by player.
-/* SCCS Id: @(#)dothrow.c 3.4 2003/10/21 */
+/* SCCS Id: @(#)dothrow.c 3.4 2003/12/04 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
an arrow just landing short of any target (no message in that case),
so will realize that there is a valid target here anyway. */
if (!canseemon(mon) || (mon->m_ap_type && mon->m_ap_type != M_AP_MONSTER))
- pline("%s misses.", The(missile));
+ pline("%s %s.", The(missile), otense(obj, "miss"));
else
miss(missile, mon);
if (!rn2(3)) wakeup(mon);
}
}
-/*
- * Note that the gold object is *not* attached to the fobj chain.
- */
STATIC_OVL int
throw_gold(obj)
struct obj *obj;