diff options
author | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-19 01:19:56 +0000 |
---|---|---|
committer | zelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-09-19 01:19:56 +0000 |
commit | 725cb5b4d5a3ade5c5e7b04a6210cedc839c2bdd (patch) | |
tree | d2644ce5f13e7ab649b27b49f7bdcde18802a6b1 /crawl-ref/source/spl-book.cc | |
parent | 1a36197574afe860feff7208cd883770a5d28946 (diff) | |
download | crawl-ref-725cb5b4d5a3ade5c5e7b04a6210cedc839c2bdd.tar.gz crawl-ref-725cb5b4d5a3ade5c5e7b04a6210cedc839c2bdd.zip |
Added new commands "re-do previous command" (bound to `) and "repeat
next command" (bound to 0). Though this is just an interface change,
it changes code in the core input processing function (input() in acr.cc),
and also messes around with the input buffer, so it could probably do
with more testing before merging it into the 0.3 branch.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2137 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/spl-book.cc')
-rw-r--r-- | crawl-ref/source/spl-book.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/crawl-ref/source/spl-book.cc b/crawl-ref/source/spl-book.cc index f4fe9263c6..fcb9f7c09e 100644 --- a/crawl-ref/source/spl-book.cc +++ b/crawl-ref/source/spl-book.cc @@ -40,6 +40,7 @@ #include "religion.h" #include "spl-cast.h" #include "spl-util.h" +#include "state.h" #include "stuff.h" #define SPELLBOOK_SIZE 8 @@ -1477,12 +1478,14 @@ int staff_spell( int staff ) if (food && (you.hunger_state <= HS_STARVING || you.hunger <= food)) { mpr("You don't have the energy to cast that spell."); + crawl_state.zero_turns_taken(); return (-1); } if (istaff.plus < mana) { mpr("The rod doesn't have enough magic points."); + crawl_state.zero_turns_taken(); // Don't lose a turn for trying to evoke without enough MP - that's // needlessly cruel for an honest error. return (-1); @@ -1491,12 +1494,16 @@ int staff_spell( int staff ) if (you.experience_level < diff) { mprf("You need to be at least level %d to use that.", diff); + crawl_state.zero_turns_taken(); return (-1); } // All checks passed, we can cast the spell if (your_spells(spell, powc, false) == SPRET_ABORT) + { + crawl_state.zero_turns_taken(); return (-1); + } make_hungry( food, true ); |