]> granicus.if.org Git - nethack/commitdiff
bouncing zaps
authorcohrs <cohrs>
Mon, 9 Dec 2002 02:07:29 +0000 (02:07 +0000)
committercohrs <cohrs>
Mon, 9 Dec 2002 02:07:29 +0000 (02:07 +0000)
As From a bug report, don't let bounces go past the edge of closed
doors.  His suggested patch included some redundancy, which I've removed.

doc/fixes34.1
src/zap.c

index 06fbb4c5ade88657cd3c26a9b7404362bd0afc6a..2f7f513d0662a3a3f0a4da1fe3201b4a9da58754 100644 (file)
@@ -319,6 +319,7 @@ various missing or inappropriate "killed by" death messages
 second attack for two-weapon combat will miss if first knocks target away
 jousting effect no longer occurs every time riding character hits with lance
 skeletons should be able to wear the armor they're created with
+bouncing zaps should not bounce around the edge of closed doors
 
 
 Platform- and/or Interface-Specific Fixes
index 5f7dfc665869aeb82b1d92cb3c3e6a68c61e0616..427cecf02caf2e98e4e35b0ceeace191dff4d212 100644 (file)
--- a/src/zap.c
+++ b/src/zap.c
@@ -3441,10 +3441,12 @@ register int dx,dy;
                dy = -dy;
            } else {
                if(isok(sx,lsy) && ZAP_POS(rmn = levl[sx][lsy].typ) &&
+                  !closed_door(sx,lsy) &&
                   (IS_ROOM(rmn) || (isok(sx+dx,lsy) &&
                                     ZAP_POS(levl[sx+dx][lsy].typ))))
                    bounce = 1;
                if(isok(lsx,sy) && ZAP_POS(rmn = levl[lsx][sy].typ) &&
+                  !closed_door(lsx,sy) &&
                   (IS_ROOM(rmn) || (isok(lsx,sy+dy) &&
                                     ZAP_POS(levl[lsx][sy+dy].typ))))
                    if(!bounce || rn2(2))