Command repeating by using cmd queues

This replaces the old pushq/saveq arrays (which were used to save
the keys pressed by the user for repeating a previous command)
with a new command queue.  This means there's no hard-coded limit
to the saved keys, and it can repeat extended commands which are
not bound to any key.
This commit is contained in:
Pasi Kallinen
2022-08-08 14:02:59 +03:00
parent 4e6d3aba4f
commit fd9745f9c6
34 changed files with 417 additions and 379 deletions

View File

@@ -831,7 +831,7 @@ disclose(int how, boolean taken)
Strcpy(qbuf, "Do you want your possessions identified?");
ask = should_query_disclose_option('i', &defquery);
c = ask ? yn_function(qbuf, ynqchars, defquery) : defquery;
c = ask ? yn_function(qbuf, ynqchars, defquery, TRUE) : defquery;
if (c == 'y') {
/* caller has already ID'd everything */
(void) display_inventory((char *) 0, FALSE);
@@ -844,7 +844,7 @@ disclose(int how, boolean taken)
if (!done_stopprint) {
ask = should_query_disclose_option('a', &defquery);
c = ask ? yn_function("Do you want to see your attributes?", ynqchars,
defquery)
defquery, TRUE)
: defquery;
if (c == 'y')
enlightenment((BASICENLIGHTENMENT | MAGICENLIGHTENMENT),
@@ -876,7 +876,7 @@ disclose(int how, boolean taken)
to plural vs singular for conducts but the less
specific "conduct and achievements" is sufficient */
(acnt > 0) ? " and achievements" : "");
c = yn_function(qbuf, ynqchars, defquery);
c = yn_function(qbuf, ynqchars, defquery, TRUE);
} else {
c = defquery;
}
@@ -889,7 +889,7 @@ disclose(int how, boolean taken)
if (!done_stopprint) {
ask = should_query_disclose_option('o', &defquery);
c = ask ? yn_function("Do you want to see the dungeon overview?",
ynqchars, defquery)
ynqchars, defquery, TRUE)
: defquery;
if (c == 'y')
show_overview((how >= PANICKED) ? 1 : 2, how);