fix #H1996 - digging message for missing boulder

From a bug report, it was possible to get
|You hit the  with all your might.  You stop digging.
if a boulder went away--in his case, it was picked up by a giant--while
you were occupied trying to break it with a pick-axe.  The code explicitly
used "" to fill in the message when dig_target had an unexpected value.

     This just avoids giving the message in a case like this.  Possibly
extra stop_occupation() calls should be done instead, but I didn't want
to try to figure out how many would be needed (monster picks up object,
monster zaps wand of striking, others?).
This commit is contained in:
nethack.rankin
2009-08-22 00:02:09 +00:00
parent d918d329ea
commit e450ca626d
2 changed files with 5 additions and 2 deletions

View File

@@ -1,5 +1,4 @@
/* NetHack 3.5 dig.c $Date$ $Revision$ */
/* SCCS Id: @(#)dig.c 3.5 2009/01/28 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -456,8 +455,10 @@ cleanup:
IS_DOOR(lev->typ) ? "door" : "wall", verb);
return(0);
}
} else if (!IS_ROCK(lev->typ) && dig_target == DIGTYP_ROCK)
} else if (dig_target == DIGTYP_UNDIGGABLE ||
(dig_target == DIGTYP_ROCK && !IS_ROCK(lev->typ)))
return(0); /* statue or boulder got taken */
if(!did_dig_msg) {
You("hit the %s with all your might.",
d_target[dig_target]);