fix github issue #423, pull request #549

Zapping at an object with teleportation resulted in scrambled zap
targetting as soon as any object was hit.

flooreffects() got changed to set bhitpos for handling erosion damage,
but bhitpos is used by wand/spell zap handling to pick the next target
spot.  So a zap that teleported an object resumed one step beyond the
object's destination rather than one step beyond where it was hit.
The rest of the zap could hit things (monsters as well as other
objects) which weren't in line with the original zap.  Reported case
was one of the Riders on Astral, coming from beyond multiple walls to
arrive adjacent to hero (usual position when a Rider gets teleported).

Fixes #549
Fixes #423
This commit is contained in:
PatR
2021-07-14 19:21:18 -07:00
parent 91248a2b7e
commit 475648bd02
2 changed files with 23 additions and 13 deletions

View File

@@ -1,4 +1,4 @@
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.594 $ $NHDT-Date: 1626312521 2021/07/15 01:28:41 $
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.595 $ $NHDT-Date: 1626315675 2021/07/15 02:21:15 $
General Fixes and Modified Features
-----------------------------------
@@ -746,6 +746,10 @@ fix parsing of wish adjectives (return value broken by changes accompanying
figurine gender patch)
when picking up a thrown weapon while quiver is empty, don't put it into the
quiver slot if it needs to be wielded for throw-and-return action
using bhitpos in flooreffects to handle erosion damage broke its original use
of tracking wand zaps if a teleportation zap hit an object; subsequent
zap traversal was done from object's landing spot rather than from its
zap hit spot, resulting in scrambled wand targetting
curses: 'msg_window' option wasn't functional for curses unless the binary
also included tty support