fix #Q382 - jumping possible while riding a sleeping pet (trunk only)
From a bug report: when riding,
#jump command and jumping spell didn't check whether steed is able to move.
This makes #jump command, either magic boots or knight's innate ability,
fail if the steed can't move. Spell still succeeds; its magic overrides
steed's immobility. Fix is trunk only since it relies on a function that
isn't in the branch.
Also, tweak hero movement to avoid an extra function call per move
when not riding.
This commit is contained in:
@@ -187,6 +187,7 @@ monsters can use ranged attacks over/around boulders, same as hero
|
||||
can't drop part of a stack of N weapons welded to hero's hand
|
||||
pickup still accepts m as command prefix, but now rejects F,g,G,M,numpad 5
|
||||
scatter piles of kicked gold rather than move the entire pile at once
|
||||
#jump attempt fails if mounted on sleeping steed; jumping spell still works
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes
|
||||
|
||||
@@ -1332,6 +1332,12 @@ int magic; /* 0=Physical, otherwise skill level */
|
||||
} else if (!magic && !Jumping) {
|
||||
You_cant("jump very far.");
|
||||
return 0;
|
||||
#ifdef STEED
|
||||
/* if steed is immobile, can't do physical jump but can do spell one */
|
||||
} else if (!magic && u.usteed && stucksteed(FALSE)) {
|
||||
/* stucksteed gave "<steed> won't move" message */
|
||||
return 0;
|
||||
#endif
|
||||
} else if (u.uswallow) {
|
||||
if (magic) {
|
||||
You("bounce around a little.");
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* SCCS Id: @(#)hack.c 3.5 2006/08/09 */
|
||||
/* SCCS Id: @(#)hack.c 3.5 2007/02/10 */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -1221,7 +1221,7 @@ domove()
|
||||
}
|
||||
/* not attacking an animal, so we try to move */
|
||||
#ifdef STEED
|
||||
if ((u.dx || u.dy) && stucksteed(FALSE)) {
|
||||
if ((u.dx || u.dy) && u.usteed && stucksteed(FALSE)) {
|
||||
nomul(0);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user