FILE *auto_dump_stream;
BIT_FLAGS mode = rogue_like_commands ? KEYMAP_MODE_ROGUE : KEYMAP_MODE_ORIG;
screen_save();
+ term_clear();
auto print_macro_menu = [] {
- term_clear();
prt(_("[ マクロの設定 ]", "Interact with Macros"), 2, 0);
prt(_("(1) ユーザー設定ファイルのロード", "(1) Load a user pref file"), 4, 5);
prt(_("(2) ファイルにマクロを追加", "(2) Append macros to a file"), 5, 5);
const int key = inkey();
if (key == ESCAPE)
break;
- msg_erase();
+ clear_from(1);
print_macro_menu();
if (key == '1') {
if (k < 0) {
msg_print(_("そのキーにはマクロは定義されていません。", "Found no macro."));
} else {
+ // マクロの作成時に参照するためmacro__bufにコピーする
+ strcpy(macro__buf, macro__act[k]);
// too long macro must die
- strncpy(tmp, macro__act[k], 80);
+ strncpy(tmp, macro__buf, 80);
tmp[80] = '\0';
ascii_to_text(buf, tmp);
prt(buf, 22, 0);
"Press Left/Right arrow keys to move cursor. Backspace/Delete to delete a char."),
22, 0);
prt(_("マクロ行動: ", "Action: "), 20, 0);
- tmp[0] = '\0';
+ // 最後に参照したマクロデータを元に作成する(コピーを行えるように)
+ macro__buf[80] = '\0';
+ ascii_to_text(tmp, macro__buf);
if (askfor(tmp, 80)) {
text_to_ascii(macro__buf, tmp);
macro_add(buf, macro__buf);
if (!act) {
msg_print(_("キー配置は定義されていません。", "Found no keymap."));
} else {
+ // マクロの作成時に参照するためmacro__bufにコピーする
+ strcpy(macro__buf, act);
// too long macro must die
- strncpy(tmp, act, 80);
+ strncpy(tmp, macro__buf, 80);
tmp[80] = '\0';
ascii_to_text(buf, tmp);
prt(buf, 22, 0);
"Press Left/Right arrow keys to move cursor. Backspace/Delete to delete a char."),
22, 0);
prt(_("行動: ", "Action: "), 20, 0);
- tmp[0] = '\0';
+ // 最後に参照したマクロデータを元に作成する(コピーを行えるように)
+ macro__buf[80] = '\0';
+ ascii_to_text(tmp, macro__buf);
if (askfor(tmp, 80)) {
text_to_ascii(macro__buf, tmp);
string_free(keymap_act[mode][(byte)(buf[0])]);
} else {
bell();
}
+
+ msg_erase();
}
screen_load();