#U770 part II - lack of "miss" message when throwing gold at monster

There was no feedback when gold was thrown or kicked at monsters
who weren't interested in catching it.  Now it'll give the same "<obj>
misses <monster>" message as other thrown or kicked items objects which
don't hit.
This commit is contained in:
nethack.rankin
2003-12-05 11:37:37 +00:00
parent 9860caf748
commit 4d7a39e563
3 changed files with 17 additions and 12 deletions
+1
View File
@@ -99,6 +99,7 @@ killing a long worm on a drawbridge could produce a panic
prevent "see it drop from your pack" when figurine monster becomes undetected 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 attempting to drop a subset of a stack of multiple cursed loadstones could
corrupt inventory or cause a crash 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 Platform- and/or Interface-Specific Fixes
+14 -7
View File
@@ -1,4 +1,4 @@
/* 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. */ /* Copyright (c) Izchak Miller, Mike Stephenson, Steve Linhart, 1989. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -238,13 +238,18 @@ ghitm(mtmp, gold)
register struct monst *mtmp; register struct monst *mtmp;
register struct obj *gold; register struct obj *gold;
{ {
boolean msg_given = FALSE;
if(!likes_gold(mtmp->data) && !mtmp->isshk && !mtmp->ispriest if(!likes_gold(mtmp->data) && !mtmp->isshk && !mtmp->ispriest
&& !is_mercenary(mtmp->data)) { && !is_mercenary(mtmp->data)) {
wakeup(mtmp); wakeup(mtmp);
} else if (!mtmp->mcanmove) { } else if (!mtmp->mcanmove) {
/* too light to do real damage */ /* too light to do real damage */
if (canseemon(mtmp)) if (canseemon(mtmp)) {
pline_The("gold hits %s.", mon_nam(mtmp)); pline_The("%s harmlessly %s %s.", xname(gold),
otense(gold, "hit"), mon_nam(mtmp));
msg_given = TRUE;
}
} else { } else {
#ifdef GOLDOBJ #ifdef GOLDOBJ
long value = gold->quan * objects[gold->otyp].oc_cost; long value = gold->quan * objects[gold->otyp].oc_cost;
@@ -318,16 +323,18 @@ register struct obj *gold;
if (mtmp->mpeaceful) if (mtmp->mpeaceful)
verbalize("That should do. Now beat it!"); verbalize("That should do. Now beat it!");
else verbalize("That's not enough, coward!"); else verbalize("That's not enough, coward!");
} }
#ifndef GOLDOBJ #ifndef GOLDOBJ
dealloc_obj(gold); dealloc_obj(gold);
#else #else
add_to_minv(mtmp, gold); add_to_minv(mtmp, gold);
#endif #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. /* container is kicked, dropped, thrown or otherwise impacted by player.
+2 -5
View File
@@ -1,4 +1,4 @@
/* 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. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -1168,7 +1168,7 @@ struct monst *mon;
an arrow just landing short of any target (no message in that case), an arrow just landing short of any target (no message in that case),
so will realize that there is a valid target here anyway. */ 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)) 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 else
miss(missile, mon); miss(missile, mon);
if (!rn2(3)) wakeup(mon); if (!rn2(3)) wakeup(mon);
@@ -1697,9 +1697,6 @@ boolean in_view;
} }
} }
/*
* Note that the gold object is *not* attached to the fobj chain.
*/
STATIC_OVL int STATIC_OVL int
throw_gold(obj) throw_gold(obj)
struct obj *obj; struct obj *obj;