diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-07-13 11:26:38 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-07-13 11:26:38 +0000 |
commit | 0eb7e87096f07509f3fed6a82fab696d505a2c18 (patch) | |
tree | 2b96ba1d50f34f5c3a9c83a22bf7f4dad4ecdd0f /crawl-ref/source/direct.h | |
parent | a14e48e33b5e1eef0503fa426ff31e0c83628d73 (diff) | |
download | crawl-ref-0eb7e87096f07509f3fed6a82fab696d505a2c18.tar.gz crawl-ref-0eb7e87096f07509f3fed6a82fab696d505a2c18.zip |
[1746014] Added an implicit quiver when firing missiles:
- ^P/^N change the selected missile, but only within a fire_order slot.
i.e., if you're wielding a launcher and have "launcher" first in your
fire order, ^N and ^P will cycle only through suitable launcher ammo.
- If you use ^P or ^N to change the default missiles offered, that choice
gets saved as your quiver (unless you cancel targeting).
- Fire always offers the quivered item first, if appropriate (so if
you have darts quivered and try to shoot from a bow, the darts will
not be offered).
Breaks save compatibility (quiver is saved).
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1854 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/direct.h')
-rw-r--r-- | crawl-ref/source/direct.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/crawl-ref/source/direct.h b/crawl-ref/source/direct.h index f8be4357a7..9541e23825 100644 --- a/crawl-ref/source/direct.h +++ b/crawl-ref/source/direct.h @@ -23,9 +23,26 @@ * spells2 - spells3 - spells4 * *********************************************************************** */ +// An object that modifies the behaviour of the direction prompt. +class targeting_behaviour +{ +public: + targeting_behaviour(bool just_looking = false); + virtual ~targeting_behaviour(); + + // Returns a keystroke for the prompt. + virtual int get_key(); + virtual command_type get_command(int key = -1); + virtual bool should_redraw(); + +public: + bool just_looking; + bool compass; +}; + void direction( dist &moves, targeting_type restricts = DIR_NONE, targ_mode_type mode = TARG_ANY, bool just_looking = false, - const char *prompt = NULL ); + const char *prompt = NULL, targeting_behaviour *mod = NULL ); bool in_los_bounds(int x, int y); bool in_viewport_bounds(int x, int y); |