]> granicus.if.org Git - nethack/commitdiff
U29 - mounting steed gets thru tight spots
authorcohrs <cohrs>
Fri, 30 Aug 2002 06:17:41 +0000 (06:17 +0000)
committercohrs <cohrs>
Fri, 30 Aug 2002 06:17:41 +0000 (06:17 +0000)
Mounting a steed would work even when done diagonally at a doorway,
such as a shop door.  Use test_move to check for all such moves and disallow
the mount in this case.

doc/fixes34.1
src/steed.c

index b2e552ae4ca11ca1cdf18816a7b9219ba10227e0..ddd810fa44c4906dd2c880cf87836921fab01b5d 100644 (file)
@@ -227,6 +227,8 @@ fix impossible when hitting/jousting a monster causes it to be killed twice
 fix a GOLDOBJ crash/hang in take_gold() that could be triggered by reading a
        cursed spellbook, or by sitting on a throne
 kicking a tree could produce 0 to 4 killer bees but it should have been 1 to 5
+mounting a steed allowed hero to make moves that would otherwise be disallowed
+       including mounting diagonally in a shop doorway
 
 
 Platform- and/or Interface-Specific Fixes
index 791b61f97a6d1e7ddf9d6d7a45292859230ed160..38e891272a3654f6b322b4869fb1545f5041bbaf 100644 (file)
@@ -230,8 +230,9 @@ mount_steed(mtmp, force)
        }
 
        /* Can the player reach and see the monster? */
-       if (u.uswallow || u.ustuck || u.utrap || Punished) {
-           if (Punished)
+       if (u.uswallow || u.ustuck || u.utrap || Punished ||
+           !test_move(u.ux, u.uy, mtmp->mx-u.ux, mtmp->my-u.uy, TEST_MOVE)) {
+           if (Punished || !(u.uswallow || u.ustuck || u.utrap))
                You("are unable to swing your %s over.", body_part(LEG)); 
            else
                You("are stuck here for now.");