summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/directn.cc
diff options
context:
space:
mode:
authorj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-24 14:06:28 +0000
committerj-p-e-g <j-p-e-g@c06c8d41-db1a-0410-9941-cceddc491573>2008-06-24 14:06:28 +0000
commita117fb1baf5f81a56014a174f0400622cdf2ab5d (patch)
treeebe42721a9dad967d0c1a000a29c1a01920a19f6 /crawl-ref/source/directn.cc
parent33b1249af4f983197d5af346199c5d0a4061835a (diff)
downloadcrawl-ref-a117fb1baf5f81a56014a174f0400622cdf2ab5d.tar.gz
crawl-ref-a117fb1baf5f81a56014a174f0400622cdf2ab5d.zip
Modify quiver to only quiver ammunition explicitly chosen by the player
(via (,) or i, or by the new quivering command). Ammo that just happens to come next in the fire order is not quivered anymore even if you continue firing. Add a new quiver command on Q, and while I was at it, restrict the items offered when firing (fi) or quivering to actual throwables. (This was a long outstanding FR.) I think that's it... git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6112 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/directn.cc')
-rw-r--r--crawl-ref/source/directn.cc13
1 files changed, 10 insertions, 3 deletions
diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc
index e84c8d8319..2f86f47638 100644
--- a/crawl-ref/source/directn.cc
+++ b/crawl-ref/source/directn.cc
@@ -134,18 +134,18 @@ void direction_choose_compass( dist& moves, targeting_behaviour *beh)
}
const int i = _targeting_cmd_to_compass(key_command);
- if ( i != -1 )
+ if (i != -1)
{
moves.dx = Compass[i].x;
moves.dy = Compass[i].y;
}
- else if ( key_command == CMD_TARGET_CANCEL )
+ else if (key_command == CMD_TARGET_CANCEL)
{
moves.isCancel = true;
moves.isValid = false;
}
}
- while ( !moves.isCancel && moves.dx == 0 && moves.dy == 0 );
+ while (!moves.isCancel && moves.dx == 0 && moves.dy == 0);
}
static int _targeting_cmd_to_compass( command_type command )
@@ -832,6 +832,7 @@ void direction(dist& moves, targeting_type restricts,
case CMD_TARGET_CANCEL:
loop_done = true;
moves.isCancel = true;
+ beh->mark_ammo_nonchosen();
break;
#ifdef WIZARD
@@ -839,6 +840,7 @@ void direction(dist& moves, targeting_type restricts,
// Maybe we can skip this check...but it can't hurt
if (!you.wizard || !in_bounds(moves.tx, moves.ty))
break;
+
mid = mgrd[moves.tx][moves.ty];
if (mid == NON_MONSTER) // can put in terrain description here
break;
@@ -2575,3 +2577,8 @@ bool targeting_behaviour::should_redraw()
{
return (false);
}
+
+void targeting_behaviour::mark_ammo_nonchosen()
+{
+ // Nothing to be done.
+}