diff options
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 ); |