Skip to content

Commit

Permalink
more engraving with empty wands (#Q85)
Browse files Browse the repository at this point in the history
     #Q85: Bug: wrest a wand in one turn through engraving
From a bug report:  engraving with an empty wand while not levitating, then using
ESC to abort when asked for the text to write, let you attempt to wrest
the last charge without using up a turn.  Between the time this report was
sent and received, someone else reported similar issue with levitation,
where no prompting occurs.  The fix for it also fixed the original problem.
Somewhat inadvertently though, since you can now no longer write in the
dust with a empty wand.  I'm going to leave it this way; all that's needed
is some feedback about failing to engrave.
  • Loading branch information
nethack.rankin committed Feb 4, 2007
1 parent 42444d0 commit 1e70518
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
3 changes: 1 addition & 2 deletions doc/fixes34.4
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,7 @@ can't throw if poly'd into form which lacks hands
can't eat an artifact you're unable to touch
attempting to kick beyond map edge performed an out of array bounds memory
access; symptom seen was "show_glyph: bad pos" warning when blind
attempting to engrave with an empty wand should use a turn even when hero is
levitating--trying and failing to wrest a charge takes time
attempting to engrave with an empty wand should always use a turn
don't access freed memory after engraving "wrests one last charnge" from wand


Expand Down
10 changes: 8 additions & 2 deletions src/engrave.c
Original file line number Diff line number Diff line change
Expand Up @@ -774,8 +774,14 @@ doengrave()
} else { /* end if zappable */
/* failing to wrest one last charge takes time */
ptext = FALSE; /* use "early exit" below, return 1 */
/* cancelled wand turns to dust unless hero can't write */
if (otmp->spe < 0 && can_reach_floor(TRUE)) zapwand = TRUE;
/* give feedback here if we won't be getting the
"can't reach floor" message below */
if (can_reach_floor(TRUE)) {
/* cancelled wand turns to dust */
if (otmp->spe < 0) zapwand = TRUE;
/* empty wand just doesn't write */
else pline_The("wand is too worn out to engrave.");
}
}
break;

Expand Down

0 comments on commit 1e70518

Please sign in to comment.