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

@@ -382,6 +382,8 @@ trying to move down while levitating said "you are floating high above floor"
even when being stuck in floor or lava blocked full levitation
hero poly'd into mimic and hiding as an object via #monster didn't unhide
when polymorphing into non-mimic
message "You hit the with all your might." could be issued if a boulder
went away while it was being dug/broken with a pick-axe
Platform- and/or Interface-Specific Fixes

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]);