angband_term[j]->never_fresh = FALSE;
}
}
+
+/*!
+ * @brief マクロ実行中かの判定関数
+ * @return 実行中であればtrue
+ */
+bool macro_running(void)
+{
+ /* マクロ展開中のみ詳細に判定する */
+ if (parse_macro) {
+ int diff = angband_term[0]->key_head - angband_term[0]->key_tail;
+
+ /* 最終入力を展開した直後はdiff==1となる */
+ if (diff != 1)
+ return true;
+
+ /* 最終入力の処理中はまだtrueを返す */
+ if (inkey_next && *inkey_next && !inkey_xtra)
+ return true;
+
+ return false;
+ }
+
+ return false;
+}
int inkey_special(bool numpad_cursor);
void start_term_fresh(void);
void stop_term_fresh(void);
+bool macro_running(void);
}
}
-bool macro_running(void)
-{
- int diff = angband_term[0]->key_head - angband_term[0]->key_tail;
- return diff != 0;
-}
-
/*
* @brief Actually perform all requested changes to the window
*/
void term_queue_char(TERM_LEN x, TERM_LEN y, TERM_COLOR a, char c, TERM_COLOR ta, char tc);
void term_queue_bigchar(TERM_LEN x, TERM_LEN y, TERM_COLOR a, char c, TERM_COLOR ta, char tc);
void term_queue_line(TERM_LEN x, TERM_LEN y, int n, TERM_COLOR *a, char *c, TERM_COLOR *ta, char *tc);
-bool macro_running(void);
errr term_fresh(void);
errr term_fresh_force(void);