diff options
author | Bardur Arantsson <bardur@scientician.net> | 2012-06-26 14:25:59 +0200 |
---|---|---|
committer | Bardur Arantsson <bardur@scientician.net> | 2012-06-26 14:25:59 +0200 |
commit | 5ca481fa01ec592fa67181135605180cb22b56c3 (patch) | |
tree | 6c825dca8509a452d775a1d7dd7d6b6641a6e8c3 /src | |
parent | 7d75770faa5ce498a9351951281de3c5d7019e9a (diff) |
Show Thaumaturgy spells immediately when casting
Fixes a few display bugs too.
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd7.c | 37 | ||||
-rw-r--r-- | src/externs.h | 1 |
2 files changed, 14 insertions, 24 deletions
@@ -4390,7 +4390,7 @@ static void print_spell_batch(int batch, int max) /* * List ten random spells and ask to pick one. */ -static random_spell* select_spell_from_batch(int batch, bool_ quick) +static random_spell* select_spell_from_batch(int batch) { char tmp[160]; @@ -4414,18 +4414,16 @@ static random_spell* select_spell_from_batch(int batch, bool_ quick) mut_max = spell_num - batch * 10; } - strnfmt(tmp, 160, "(a-%c, * to list, A-%cto browse, / to rename, - to comment) Select a power: ", + strnfmt(tmp, 160, "(a-%c, A-%cto browse, / to rename, - to comment) Select a power: ", I2A(mut_max - 1), I2A(mut_max - 1) - 'a' + 'A'); prt(tmp, 0, 0); - if (quick) + while (1) { + /* Print power list */ print_spell_batch(batch, mut_max); - } - while (1) - { /* Get a command */ which = inkey(); @@ -4440,16 +4438,6 @@ static random_spell* select_spell_from_batch(int batch, bool_ quick) } - /* List */ - if (which == '*' || which == '?' || which == ' ') - { - /* Print power list */ - print_spell_batch(batch, mut_max); - - /* Wait for next command */ - continue; - } - /* Accept default */ if (which == '\r') { @@ -4552,7 +4540,7 @@ static random_spell* select_spell_from_batch(int batch, bool_ quick) /* * Pick a random spell from a menu */ -random_spell* select_spell(bool_ quick) +static random_spell* select_spell() { char tmp[160]; @@ -4593,6 +4581,8 @@ random_spell* select_spell(bool_ quick) if (which == ESCAPE) { + Term_load(); + ret = NULL; break; @@ -4602,7 +4592,9 @@ random_spell* select_spell(bool_ quick) { if (batch_max == 0) { - ret = select_spell_from_batch(0, quick); + Term_load(); + + ret = select_spell_from_batch(0); break; } @@ -4613,7 +4605,9 @@ random_spell* select_spell(bool_ quick) which = tolower(which); if (isalpha(which) && (A2I(which) <= batch_max)) { - ret = select_spell_from_batch(A2I(which), quick); + Term_load(); + + ret = select_spell_from_batch(A2I(which)); break; } @@ -4623,9 +4617,6 @@ random_spell* select_spell(bool_ quick) } } - /* Restore the screen */ - Term_load(); - /* Leave "icky" mode */ character_icky = FALSE; @@ -4659,7 +4650,7 @@ void do_cmd_powermage(void) } - s_ptr = select_spell(FALSE); + s_ptr = select_spell(); if (s_ptr == NULL) return; diff --git a/src/externs.h b/src/externs.h index ea2c4831..3a4c50b5 100644 --- a/src/externs.h +++ b/src/externs.h @@ -828,7 +828,6 @@ extern void necro_info(char *p, int power); extern void mindcraft_info(char *p, int power); extern void symbiotic_info(char *p, int power); extern void mimic_info(char *p, int power); -extern random_spell* select_spell(bool_ quick); extern void cast_magic_spell(int spell, byte level); extern void do_cmd_summoner(void); extern void do_cmd_mindcraft(void); |