OSDN Git Service

[Refactor] #37353 マジックナンバー修正(A_MAX) / Fix magic number (A_MAX).
[hengband/hengband.git] / src / cmd4.c
index d88c934..67d28bd 100644 (file)
@@ -41,6 +41,8 @@
 
 #include "angband.h"
 #include "cmd-pet.h"
+#include "world.h"
+#include "player-status.h"
 
 
 /*
@@ -364,7 +366,7 @@ errr do_cmd_write_nikki(int type, int num, cptr note)
 {
        int day, hour, min;
        FILE *fff = NULL;
-       char file_name[80];
+       GAME_TEXT file_name[MAX_NLEN];
        char buf[1024];
        cptr note_level = "";
        bool do_level = TRUE;
@@ -490,7 +492,7 @@ errr do_cmd_write_nikki(int type, int num, cptr note)
                }
                case NIKKI_RAND_QUEST_C:
                {
-                       char name[80];
+                       GAME_TEXT name[MAX_NLEN];
                        strcpy(name, r_name+r_info[quest[num].r_idx].name);
                        fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)を達成した。\n",
                                                   " %2d:%02d %20s completed random quest '%s'\n"), hour, min, note_level, name);
@@ -498,7 +500,7 @@ errr do_cmd_write_nikki(int type, int num, cptr note)
                }
                case NIKKI_RAND_QUEST_F:
                {
-                       char name[80];
+                       GAME_TEXT name[MAX_NLEN];
                        strcpy(name, r_name+r_info[quest[num].r_idx].name);
                        fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)から逃げ出した。\n",
                                                   " %2d:%02d %20s ran away from quest '%s'.\n"), hour, min, note_level, name);
@@ -721,7 +723,7 @@ errr do_cmd_write_nikki(int type, int num, cptr note)
 static void do_cmd_disp_nikki(void)
 {
        char nikki_title[256];
-       char file_name[80];
+       GAME_TEXT file_name[MAX_NLEN];
        char buf[1024];
        char tmp[80];
 #ifdef JP
@@ -858,7 +860,7 @@ static void do_cmd_last_get(void)
  */
 static void do_cmd_erase_nikki(void)
 {
-       char file_name[80];
+       GAME_TEXT file_name[MAX_NLEN];
        char buf[256];
        FILE *fff = NULL;
 
@@ -891,14 +893,11 @@ void do_cmd_nikki(void)
 
        /* File type is "TEXT" */
        FILE_TYPE(FILE_TYPE_TEXT);
-
-       /* Save the screen */
        screen_save();
 
        /* Interact until done */
        while (1)
        {
-               /* Clear screen */
                Term_clear();
 
                /* Ask for a choice */
@@ -942,11 +941,8 @@ void do_cmd_nikki(void)
                        bell();
                }
 
-               /* Flush messages */
-               msg_print(NULL);
+               msg_erase();
        }
-
-       /* Restore the screen */
        screen_load();
 }
 
@@ -968,40 +964,27 @@ void do_cmd_nikki(void)
 void do_cmd_redraw(void)
 {
        int j;
-
        term *old = Term;
 
 
        /* Hack -- react to changes */
        Term_xtra(TERM_XTRA_REACT, 0);
 
-
        /* Combine and Reorder the pack (later) */
-       p_ptr->notice |= (PN_COMBINE | PN_REORDER);
-
-
-       /* Update torch */
+       p_ptr->update |= (PU_COMBINE | PU_REORDER);
        p_ptr->update |= (PU_TORCH);
-
        p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
-
-       /* Forget lite/view */
        p_ptr->update |= (PU_UN_VIEW | PU_UN_LITE);
-
-       /* Update lite/view */
        p_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE);
        p_ptr->update |= (PU_MONSTERS);
 
-       /* Redraw everything */
        p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY);
 
        p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER);
-
        p_ptr->window |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT);
 
        update_playtime();
 
-       /* Hack -- update */
        handle_stuff();
 
        if (p_ptr->prace == RACE_ANDROID) calc_android_exp();
@@ -1016,11 +999,7 @@ void do_cmd_redraw(void)
                /* Activate */
                Term_activate(angband_term[j]);
                Term_redraw();
-
-               /* Refresh */
                Term_fresh();
-
-               /* Restore */
                Term_activate(old);
        }
 }
@@ -1039,8 +1018,6 @@ void do_cmd_change_name(void)
 
        char    tmp[160];
 
-
-       /* Save the screen */
        screen_save();
 
        /* Forever */
@@ -1100,20 +1077,14 @@ void do_cmd_change_name(void)
                {
                        mode++;
                }
-
                else
                {
                        bell();
                }
 
-               /* Flush messages */
-               msg_print(NULL);
+               msg_erase();
        }
-
-       /* Restore the screen */
        screen_load();
-
-       /* Redraw everything */
        p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY);
 
        handle_stuff();
@@ -1180,11 +1151,7 @@ void do_cmd_messages(int num_now)
 
        /* Start on first message */
        i = 0;
-
-       /* Save the screen */
        screen_save();
-
-       /* Clear screen */
        Term_clear();
 
        /* Process requests until done */
@@ -1235,7 +1202,6 @@ void do_cmd_messages(int num_now)
                prt(_("[ 'p' で更に古いもの, 'n' で更に新しいもの, '/' で検索, ESC で中断 ]",
                          "[Press 'p' for older, 'n' for newer, ..., or ESCAPE]"), hgt - 1, 0);
 
-               /* Get a command */
                skey = inkey_special(TRUE);
 
                /* Exit on Escape */
@@ -1365,8 +1331,6 @@ void do_cmd_messages(int num_now)
                /* Hack -- Error of some kind */
                if (i == j) bell();
        }
-
-       /* Restore the screen */
        screen_load();
 }
 
@@ -1382,8 +1346,6 @@ static void do_cmd_options_cheat(cptr info)
        char    ch;
        int             i, k = 0, n = CHEAT_MAX;
        char    buf[80];
-
-       /* Clear screen */
        Term_clear();
 
        /* Interact with the player */
@@ -1533,8 +1495,6 @@ static void do_cmd_options_autosave(cptr info)
        int i, k = 0, n = 2;
        char buf[80];
 
-
-       /* Clear screen */
        Term_clear();
 
        /* Interact with the player */
@@ -1663,8 +1623,6 @@ void do_cmd_options_aux(int page, cptr info)
                /* Notice options on this "page" */
                if (option_info[i].o_page == page) opt[n++] = i;
        }
-
-       /* Clear screen */
        Term_clear();
 
        /* Interact with the player */
@@ -1809,8 +1767,6 @@ static void do_cmd_options_win(void)
                old_flag[j] = window_flag[j];
        }
 
-
-       /* Clear screen */
        Term_clear();
 
        /* Interact */
@@ -1951,14 +1907,8 @@ static void do_cmd_options_win(void)
 
                /* Activate */
                Term_activate(angband_term[j]);
-
-               /* Erase */
                Term_clear();
-
-               /* Refresh */
                Term_fresh();
-
-               /* Restore */
                Term_activate(old);
        }
 }
@@ -2030,8 +1980,6 @@ void do_cmd_options(void)
        char k;
        int d, skey;
        TERM_LEN i, y = 0;
-
-       /* Save the screen */
        screen_save();
 
        /* Interact */
@@ -2041,8 +1989,6 @@ void do_cmd_options(void)
 
                /* Does not list cheat option when cheat option is off */
                if (!p_ptr->noscore && !allow_debug_opts) n--;
-
-               /* Clear screen */
                Term_clear();
 
                /* Why are we here */
@@ -2301,12 +2247,9 @@ void do_cmd_options(void)
                        }
                }
 
-               /* Flush messages */
-               msg_print(NULL);
+               msg_erase();
        }
 
-
-       /* Restore the screen */
        screen_load();
 
        /* Hack - Redraw equippy chars */
@@ -2605,7 +2548,6 @@ void do_cmd_macros(void)
        /* Process requests until done */
        while (1)
        {
-               /* Clear screen */
                Term_clear();
                prt(_("[ マクロの設定 ]", "Interact with Macros"), 2, 0);
 
@@ -2636,7 +2578,6 @@ void do_cmd_macros(void)
                /* Prompt */
                prt(_("コマンド: ", "Command: "), 16, 0);
 
-               /* Get a command */
                i = inkey();
 
                /* Leave */
@@ -2960,8 +2901,7 @@ void do_cmd_macros(void)
                        bell();
                }
 
-               /* Flush messages */
-               msg_print(NULL);
+               msg_erase();
        }
        screen_load();
 }
@@ -3057,20 +2997,17 @@ void do_cmd_visuals(void)
        char tmp[160];
        char buf[1024];
        bool need_redraw = FALSE;
-       const char *empty_symbol = "<< ? >>";
+       cptr empty_symbol = "<< ? >>";
 
        if (use_bigtile) empty_symbol = "<< ?? >>";
 
        /* File type is "TEXT" */
        FILE_TYPE(FILE_TYPE_TEXT);
-
-       /* Save the screen */
        screen_save();
 
        /* Interact until done */
        while (1)
        {
-               /* Clear screen */
                Term_clear();
 
                /* Ask for a choice */
@@ -3185,7 +3122,7 @@ void do_cmd_visuals(void)
                        /* Dump objects */
                        for (k_idx = 0; k_idx < max_k_idx; k_idx++)
                        {
-                               char o_name[80];
+                               GAME_TEXT o_name[MAX_NLEN];
                                object_kind *k_ptr = &k_info[k_idx];
 
                                /* Skip non-entries */
@@ -3320,7 +3257,6 @@ void do_cmd_visuals(void)
                                Term_putstr(0, 22, -1, TERM_WHITE, 
                                        _("コマンド (n/N/^N/a/A/^A/c/C/^C/v/V/^V): ", "Command (n/N/^N/a/A/^A/c/C/^C/v/V/^V): "));
 
-                               /* Get a command */
                                i = inkey();
 
                                /* All done */
@@ -3360,8 +3296,6 @@ void do_cmd_visuals(void)
                                        break;
                                case 'v':
                                        do_cmd_knowledge_monsters(&need_redraw, TRUE, r);
-
-                                       /* Clear screen */
                                        Term_clear();
                                        print_visuals_menu(choice_msg);
                                        break;
@@ -3413,7 +3347,6 @@ void do_cmd_visuals(void)
                                Term_putstr(0, 22, -1, TERM_WHITE,
                                            _("コマンド (n/N/^N/a/A/^A/c/C/^C/v/V/^V): ", "Command (n/N/^N/a/A/^A/c/C/^C/v/V/^V): "));
 
-                               /* Get a command */
                                i = inkey();
 
                                /* All done */
@@ -3453,8 +3386,6 @@ void do_cmd_visuals(void)
                                        break;
                                case 'v':
                                        do_cmd_knowledge_objects(&need_redraw, TRUE, k);
-
-                                       /* Clear screen */
                                        Term_clear();
                                        print_visuals_menu(choice_msg);
                                        break;
@@ -3518,7 +3449,6 @@ void do_cmd_visuals(void)
                                            "Command (n/N/^N/a/A/^A/c/C/^C/l/L/^L/d/D/^D/v/V/^V): ");
 #endif
 
-                               /* Get a command */
                                i = inkey();
 
                                /* All done */
@@ -3565,8 +3495,6 @@ void do_cmd_visuals(void)
                                        break;
                                case 'v':
                                        do_cmd_knowledge_features(&need_redraw, TRUE, f, &lighting_level);
-
-                                       /* Clear screen */
                                        Term_clear();
                                        print_visuals_menu(choice_msg);
                                        break;
@@ -3612,11 +3540,8 @@ void do_cmd_visuals(void)
                        break;
                }
 
-               /* Flush messages */
-               msg_print(NULL);
+               msg_erase();
        }
-
-       /* Restore the screen */
        screen_load();
 
        if (need_redraw) do_cmd_redraw();
@@ -3638,15 +3563,12 @@ void do_cmd_colors(void)
        /* File type is "TEXT" */
        FILE_TYPE(FILE_TYPE_TEXT);
 
-
-       /* Save the screen */
        screen_save();
 
 
        /* Interact until done */
        while (1)
        {
-               /* Clear screen */
                Term_clear();
 
                /* Ask for a choice */
@@ -3796,8 +3718,6 @@ void do_cmd_colors(void)
                                Term_putstr(0, 14, -1, TERM_WHITE,
                                        _("コマンド (n/N/k/K/r/R/g/G/b/B): ", "Command (n/N/k/K/r/R/g/G/b/B): "));
 
-
-                               /* Get a command */
                                i = inkey();
 
                                /* All done */
@@ -3831,12 +3751,9 @@ void do_cmd_colors(void)
                        bell();
                }
 
-               /* Flush messages */
-               msg_print(NULL);
+               msg_erase();
        }
 
-
-       /* Restore the screen */
        screen_load();
 }
 
@@ -3867,8 +3784,6 @@ void do_cmd_note(void)
  */
 void do_cmd_version(void)
 {
-       /* Silly message */
-
 #if FAKE_VER_EXTRA > 0
        msg_format(_("変愚蛮怒(Hengband) %d.%d.%d.%d", "You are playing Hengband %d.%d.%d.%d."),
                FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH, FAKE_VER_EXTRA);
@@ -3935,6 +3850,8 @@ static cptr do_cmd_feeling_text_lucky[11] =
  */
 void do_cmd_feeling(void)
 {
+       if (p_ptr->wild_mode) return;
+
        /* No useful feeling in quests */
        if (p_ptr->inside_quest && !random_quest_number(dun_level))
        {
@@ -4653,14 +4570,9 @@ void do_cmd_load_screen(void)
                return;
        }
 
-
-       /* Save the screen */
        screen_save();
-
-       /* Clear the screen */
        Term_clear();
 
-
        /* Load the screen */
        for (y = 0; okay; y++)
        {
@@ -4727,8 +4639,6 @@ void do_cmd_load_screen(void)
        flush();
        inkey();
 
-
-       /* Restore the screen */
        screen_load();
 }
 
@@ -4758,7 +4668,7 @@ cptr inven_res_label = _("                               酸電火冷毒光闇
 /* XTRA HACK RESLIST */
 static void do_cmd_knowledge_inven_aux(FILE *fff, object_type *o_ptr, int *j, OBJECT_TYPE_VALUE tval, char *where)
 {
-       char o_name[MAX_NLEN];
+       GAME_TEXT o_name[MAX_NLEN];
        BIT_FLAGS flgs[TR_FLAG_SIZE];
 
        if (!o_ptr->k_idx) return;
@@ -4856,7 +4766,7 @@ static void do_cmd_knowledge_inven(void)
 {
        FILE *fff;
 
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
 
        store_type  *st_ptr;
 
@@ -4902,8 +4812,6 @@ static void do_cmd_knowledge_inven(void)
                        do_cmd_knowledge_inven_aux(fff, &st_ptr->stock[i], &j, tval, where);
                }
        }
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -4961,10 +4869,7 @@ void do_cmd_save_screen_html_aux(char *filename, int message)
                
                return;
        }
-
-       /* Save the screen */
-       if (message)
-               screen_save();
+       if (message) screen_save();
 
        /* Build the filename */
        path_build(buf, sizeof(buf), ANGBAND_DIR_USER, "htmldump.prf");
@@ -5062,8 +4967,6 @@ void do_cmd_save_screen_html_aux(char *filename, int message)
                msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved."));
                msg_print(NULL);
        }
-
-       /* Restore the screen */
        if (message)
                screen_load();
 }
@@ -5127,11 +5030,7 @@ void do_cmd_save_screen(void)
        {
                use_graphics = FALSE;
                reset_visuals();
-
-               /* Redraw everything */
                p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY);
-
-               /* Hack -- update */
                handle_stuff();
        }
 
@@ -5174,8 +5073,6 @@ void do_cmd_save_screen(void)
                        return;
                }
 
-
-               /* Save the screen */
                screen_save();
 
 
@@ -5226,14 +5123,11 @@ void do_cmd_save_screen(void)
                /* Skip a line */
                fprintf(fff, "\n");
 
-
                /* Close it */
                my_fclose(fff);
 
                msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved."));
                msg_print(NULL);
-
-               /* Restore the screen */
                screen_load();
        }
 
@@ -5241,11 +5135,7 @@ void do_cmd_save_screen(void)
        {
                use_graphics = TRUE;
                reset_visuals();
-
-               /* Redraw everything */
                p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY);
-
-               /* Hack -- update */
                handle_stuff();
        }
 }
@@ -5339,19 +5229,16 @@ static void ang_sort_art_swap(vptr u, vptr v, int a, int b)
  */
 static void do_cmd_knowledge_artifacts(void)
 {
-       IDX i;
-       IDX k;
+       ARTIFACT_IDX i;
+       ARTIFACT_IDX k;
        POSITION x, y;
        int n = 0;
-       IDX z;
+       ARTIFACT_IDX z;
        u16b why = 3;
-       IDX *who;
-
+       ARTIFACT_IDX *who;
        FILE *fff;
-
-       char file_name[1024];
-
-       char base_name[MAX_NLEN];
+       GAME_TEXT file_name[1024];
+       GAME_TEXT base_name[MAX_NLEN];
 
        bool *okay;
 
@@ -5365,7 +5252,7 @@ static void do_cmd_knowledge_artifacts(void)
        }
 
        /* Allocate the "who" array */
-       C_MAKE(who, max_a_idx, s16b);
+       C_MAKE(who, max_a_idx, ARTIFACT_IDX);
 
        /* Allocate the "okay" array */
        C_MAKE(okay, max_a_idx, bool);
@@ -5484,12 +5371,10 @@ static void do_cmd_knowledge_artifacts(void)
        }
 
        /* Free the "who" array */
-       C_KILL(who, max_a_idx, s16b);
+       C_KILL(who, max_a_idx, ARTIFACT_IDX);
 
        /* Free the "okay" array */
        C_KILL(okay, max_a_idx, bool);
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -5513,7 +5398,7 @@ static void do_cmd_knowledge_uniques(void)
 
        FILE *fff;
 
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
 
        int n_alive[10];
        int n_alive_surface = 0;
@@ -5615,8 +5500,6 @@ static void do_cmd_knowledge_uniques(void)
 
        /* Free the "who" array */
        C_KILL(who, max_r_idx, s16b);
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -5637,7 +5520,7 @@ static void do_cmd_knowledge_weapon_exp(void)
 
        FILE *fff;
 
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
        char tmp[30];
 
        /* Open a new file */
@@ -5673,8 +5556,6 @@ static void do_cmd_knowledge_weapon_exp(void)
                        }
                }
        }
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -5698,7 +5579,7 @@ static void do_cmd_knowledge_spell_exp(void)
        FILE *fff;
        const magic_type *s_ptr;
 
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
 
        /* Open a new file */
        fff = my_fopen_temp(file_name, 1024);
@@ -5763,8 +5644,6 @@ static void do_cmd_knowledge_spell_exp(void)
                        fprintf(fff, "\n");
                }
        }
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -5786,8 +5665,8 @@ static void do_cmd_knowledge_skill_exp(void)
 
        FILE *fff;
 
-       char file_name[1024];
-       char skill_name[3][20]={_("マーシャルアーツ", "Martial Arts    "),
+       GAME_TEXT file_name[1024];
+       GAME_TEXT skill_name[3][20]={_("マーシャルアーツ", "Martial Arts    "),
                                                        _("二刀流          ", "Dual Wielding   "), 
                                                        _("乗馬            ", "Riding          ")};
 
@@ -5809,8 +5688,6 @@ static void do_cmd_knowledge_skill_exp(void)
                if (cheat_xtra) fprintf(fff, " %d", skill_exp);
                fprintf(fff, "\n");
        }
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -5956,10 +5833,10 @@ static void do_cmd_knowledge_pets(void)
        int             i;
        FILE            *fff;
        monster_type    *m_ptr;
-       char            pet_name[80];
+       GAME_TEXT pet_name[MAX_NLEN];
        int             t_friends = 0;
        int             show_upkeep = 0;
-       char            file_name[1024];
+       GAME_TEXT file_name[1024];
 
 
        /* Open a new file */
@@ -5993,16 +5870,12 @@ static void do_cmd_knowledge_pets(void)
        fprintf(fff, "----------------------------------------------\n");
 #ifdef JP
        fprintf(fff, "    合計: %d 体のペット\n", t_friends);
-       fprintf(fff, " 維持コスト: %d%% MP\n", show_upkeep);
 #else
-       fprintf(fff, "   Total: %d pet%s.\n",
-               t_friends, (t_friends == 1 ? "" : "s"));
-       fprintf(fff, "   Upkeep: %d%% mana.\n", show_upkeep);
+       fprintf(fff, "   Total: %d pet%s.\n", t_friends, (t_friends == 1 ? "" : "s"));
 #endif
+       fprintf(fff, _(" 維持コスト: %d%% MP\n", "   Upkeep: %d%% mana.\n"), show_upkeep);
 
 
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -6021,14 +5894,12 @@ static void do_cmd_knowledge_pets(void)
  */
 static void do_cmd_knowledge_kill_count(void)
 {
-       IDX i;
+       MONRACE_IDX i;
        int k, n = 0;
        u16b why = 2;
-       IDX *who;
-
+       MONRACE_IDX *who;
        FILE *fff;
-
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
 
        s32b Total = 0;
 
@@ -6037,13 +5908,13 @@ static void do_cmd_knowledge_kill_count(void)
        fff = my_fopen_temp(file_name, 1024);
 
        if (!fff) {
-           msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
-           msg_print(NULL);
-           return;
+               msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
+               msg_print(NULL);
+               return;
        }
 
        /* Allocate the "who" array */
-       C_MAKE(who, max_r_idx, s16b);
+       C_MAKE(who, max_r_idx, MONRACE_IDX);
 
        {
                /* Monsters slain */
@@ -6165,8 +6036,6 @@ static void do_cmd_knowledge_kill_count(void)
 
        /* Free the "who" array */
        C_KILL(who, max_r_idx, s16b);
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -6201,7 +6070,7 @@ static void display_group_list(int col, int row, int wid, int per_page, IDX grp_
                int grp = grp_idx[grp_top + i];
 
                /* Choose a color */
-               byte attr = (grp_top + i == grp_cur) ? TERM_L_BLUE : TERM_WHITE;
+               TERM_COLOR attr = (grp_top + i == grp_cur) ? TERM_L_BLUE : TERM_WHITE;
 
                /* Erase the entire line */
                Term_erase(col, row + i, wid);
@@ -6549,7 +6418,7 @@ static void display_monster_list(int col, int row, int per_page, s16b mon_idx[],
        /* Display lines until done */
        for (i = 0; i < per_page && (mon_idx[mon_top + i] >= 0); i++)
        {
-               byte attr;
+               TERM_COLOR attr;
 
                /* Get the race index */
                MONRACE_IDX r_idx = mon_idx[mon_top + i] ;
@@ -6689,22 +6558,12 @@ static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, IDX d
                if (redraw)
                {
                        clear_from(0);
-
-#ifdef JP
-                       prt(format("%s - モンスター", !visual_only ? "知識" : "表示"), 2, 0);
-                       if (direct_r_idx < 0) prt("グループ", 4, 0);
-                       prt("名前", 4, max + 3);
+                       prt(format(_("%s - モンスター", "%s - monsters"), !visual_only ? _("知識", "Knowledge") : _("表示", "Visuals")), 2, 0);
+                       if (direct_r_idx < 0) prt(_("グループ", "Group"), 4, 0);
+                       prt(_("名前", "Name"), 4, max + 3);
                        if (p_ptr->wizard || visual_only) prt("Idx", 4, 62);
-                       prt("文字", 4, 67);
-                       if (!visual_only) prt("殺害数", 4, 72);
-#else
-                       prt(format("%s - monsters", !visual_only ? "Knowledge" : "Visuals"), 2, 0);
-                       if (direct_r_idx < 0) prt("Group", 4, 0);
-                       prt("Name", 4, max + 3);
-                       if (p_ptr->wizard || visual_only) prt("Idx", 4, 62);
-                       prt("Sym", 4, 68);
-                       if (!visual_only) prt("Kills", 4, 73);
-#endif
+                       prt(_("文字", "Sym"), 4, 67);
+                       if (!visual_only) prt(_("殺害数", "Kills"), 4, 72);
 
                        for (i = 0; i < 78; i++)
                        {
@@ -6763,19 +6622,11 @@ static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, IDX d
                }
 
                /* Prompt */
-#ifdef JP
-               prt(format("<方向>%s%s%s, ESC",
-                       (!visual_list && !visual_only) ? ", 'r'で思い出を見る" : "",
-                       visual_list ? ", ENTERで決定" : ", 'v'でシンボル変更",
-                       (attr_idx || char_idx) ? ", 'c', 'p'でペースト" : ", 'c'でコピー"),
-                       hgt - 1, 0);
-#else
-               prt(format("<dir>%s%s%s, ESC",
-                       (!visual_list && !visual_only) ? ", 'r' to recall" : "",
-                       visual_list ? ", ENTER to accept" : ", 'v' for visuals",
-                       (attr_idx || char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"),
+               prt(format(_("<方向>%s%s%s, ESC", "<dir>%s%s%s, ESC"),
+                       (!visual_list && !visual_only) ? _(", 'r'で思い出を見る", ", 'r' to recall") : "",
+                       visual_list ? _(", ENTERで決定", ", ENTER to accept") : _(", 'v'でシンボル変更", ", 'v' for visuals"),
+                       (attr_idx || char_idx) ? _(", 'c', 'p'でペースト", ", 'c', 'p' to paste") : _(", 'c'でコピー", ", 'c' to copy")),
                        hgt - 1, 0);
-#endif
 
                /* Get the current monster */
                r_ptr = &r_info[mon_idx[mon_cur]];
@@ -6868,7 +6719,7 @@ static void display_object_list(int col, int row, int per_page, IDX object_idx[]
        /* Display lines until done */
        for (i = 0; i < per_page && (object_idx[object_top + i] >= 0); i++)
        {
-               char o_name[80];
+               GAME_TEXT o_name[MAX_NLEN];
                TERM_COLOR a;
                byte c;
                object_kind *flavor_k_ptr;
@@ -6880,7 +6731,7 @@ static void display_object_list(int col, int row, int per_page, IDX object_idx[]
                object_kind *k_ptr = &k_info[k_idx];
 
                /* Choose a color */
-               byte attr = ((k_ptr->aware || visual_only) ? TERM_WHITE : TERM_SLATE);
+               TERM_COLOR attr = ((k_ptr->aware || visual_only) ? TERM_WHITE : TERM_SLATE);
                byte cursor = ((k_ptr->aware || visual_only) ? TERM_L_BLUE : TERM_BLUE);
 
 
@@ -7275,7 +7126,7 @@ static void display_feature_list(int col, int row, int per_page, FEAT_IDX *feat_
        /* Display lines until done */
        for (i = 0; i < per_page && (feat_idx[feat_top + i] >= 0); i++)
        {
-               byte attr;
+               TERM_COLOR attr;
 
                /* Get the index */
                FEAT_IDX f_idx = feat_idx[feat_top + i];
@@ -7334,16 +7185,16 @@ static void display_feature_list(int col, int row, int per_page, FEAT_IDX *feat_
  */
 static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX direct_f_idx, IDX *lighting_level)
 {
-       IDX i;
+       FEAT_IDX i;
        int len, max;
-       IDX grp_cur, grp_top, old_grp_cur;
-       IDX feat_cur, feat_top;
+       FEAT_IDX grp_cur, grp_top, old_grp_cur;
+       FEAT_IDX feat_cur, feat_top;
        int grp_cnt;
-       IDX grp_idx[100];
+       FEAT_IDX grp_idx[100];
        int feat_cnt;
-       IDX *feat_idx;
+       FEAT_IDX *feat_idx;
 
-       int column = 0;
+       TERM_LEN column = 0;
        bool flag;
        bool redraw;
 
@@ -7351,8 +7202,8 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX d
        TERM_COLOR attr_top = 0;
        byte char_left = 0;
 
-       int browser_rows;
-       int wid, hgt;
+       TERM_LEN browser_rows;
+       TERM_LEN wid, hgt;
 
        TERM_COLOR attr_old[F_LIT_MAX];
        SYMBOL_CODE char_old[F_LIT_MAX];
@@ -7367,7 +7218,7 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX d
        browser_rows = hgt - 8;
 
        /* Allocate the "feat_idx" array */
-       C_MAKE(feat_idx, max_f_idx, IDX);
+       C_MAKE(feat_idx, max_f_idx, FEAT_IDX);
 
        max = 0;
        grp_cnt = 0;
@@ -7432,35 +7283,19 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX d
                {
                        clear_from(0);
 
-#ifdef JP
-                       prt("表示 - 地形", 2, 0);
-                       if (direct_f_idx < 0) prt("グループ", 4, 0);
-                       prt("名前", 4, max + 3);
-                       if (use_bigtile)
-                       {
-                               if (p_ptr->wizard || visual_only) prt("Idx", 4, 62);
-                               prt("文字 ( l/ d)", 4, 66);
-                       }
-                       else
-                       {
-                               if (p_ptr->wizard || visual_only) prt("Idx", 4, 64);
-                               prt("文字 (l/d)", 4, 68);
-                       }
-#else
-                       prt("Visuals - features", 2, 0);
-                       if (direct_f_idx < 0) prt("Group", 4, 0);
-                       prt("Name", 4, max + 3);
+                       prt(_("表示 - 地形", "Visuals - features"), 2, 0);
+                       if (direct_f_idx < 0) prt(_("グループ", "Group"), 4, 0);
+                       prt(_("名前", "Name"), 4, max + 3);
                        if (use_bigtile)
                        {
                                if (p_ptr->wizard || visual_only) prt("Idx", 4, 62);
-                               prt("Sym ( l/ d)", 4, 67);
+                               prt(_("文字 ( l/ d)", "Sym ( l/ d)"), 4, 66);
                        }
                        else
                        {
                                if (p_ptr->wizard || visual_only) prt("Idx", 4, 64);
-                               prt("Sym (l/d)", 4, 69);
+                               prt(_("文字 (l/d)", "Sym (l/d)"), 4, 68);
                        }
-#endif
 
                        for (i = 0; i < 78; i++)
                        {
@@ -7519,17 +7354,10 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX d
                }
 
                /* Prompt */
-#ifdef JP
-               prt(format("<方向>%s, 'd'で標準光源効果%s, ESC",
-                       visual_list ? ", ENTERで決定, 'a'で対象明度変更" : ", 'v'でシンボル変更",
-                       (attr_idx || char_idx) ? ", 'c', 'p'でペースト" : ", 'c'でコピー"),
+               prt(format(_("<方向>%s, 'd'で標準光源効果%s, ESC", "<dir>%s, 'd' for default lighting%s, ESC"),
+                       visual_list ? _(", ENTERで決定, 'a'で対象明度変更", ", ENTER to accept, 'a' for lighting level") : _(", 'v'でシンボル変更", ", 'v' for visuals"),
+                       (attr_idx || char_idx) ? _(", 'c', 'p'でペースト", ", 'c', 'p' to paste") : _(", 'c'でコピー", ", 'c' to copy")),
                        hgt - 1, 0);
-#else
-               prt(format("<dir>%s, 'd' for default lighting%s, ESC",
-                       visual_list ? ", ENTER to accept, 'a' for lighting level" : ", 'v' for visuals",
-                       (attr_idx || char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"),
-                       hgt - 1, 0);
-#endif
 
                /* Get the current feature */
                f_ptr = &f_info[feat_idx[feat_cur]];
@@ -7673,7 +7501,7 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX d
        }
 
        /* Free the "feat_idx" array */
-       C_KILL(feat_idx, max_f_idx, IDX);
+       C_KILL(feat_idx, max_f_idx, FEAT_IDX);
 }
 
 
@@ -7685,7 +7513,7 @@ static void do_cmd_knowledge_kubi(void)
        int i;
        FILE *fff;
        
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
        
        
        /* Open a new file */
@@ -7726,9 +7554,7 @@ static void do_cmd_knowledge_kubi(void)
                        fprintf(fff,"\n%s\n", _("賞金首はもう残っていません。", "There is no more wanted monster."));
                }
        }
-       
-       /* Close the file */
-       my_fclose(fff);
+               my_fclose(fff);
        
        /* Display the file contents */
        show_file(TRUE, file_name, _("賞金首の一覧", "Wanted monsters"), 0, 0);
@@ -7743,7 +7569,7 @@ static void do_cmd_knowledge_kubi(void)
 static void do_cmd_knowledge_virtues(void)
 {
        FILE *fff;      
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
                
        /* Open a new file */
        fff = my_fopen_temp(file_name, 1024);
@@ -7758,9 +7584,7 @@ static void do_cmd_knowledge_virtues(void)
                fprintf(fff, _("現在の属性 : %s\n\n", "Your alighnment : %s\n\n"), your_alignment());
                dump_virtues(fff);
        }
-       
-       /* Close the file */
-       my_fclose(fff);
+               my_fclose(fff);
        
        /* Display the file contents */
        show_file(TRUE, file_name, _("八つの徳", "Virtues"), 0, 0);
@@ -7777,7 +7601,7 @@ static void do_cmd_knowledge_dungeon(void)
 {
        FILE *fff;
        
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
        int i;
                
        /* Open a new file */
@@ -7805,9 +7629,7 @@ static void do_cmd_knowledge_dungeon(void)
                        fprintf(fff, _("%c%-12s :  %3d 階\n", "%c%-16s :  level %3d\n"), seiha ? '!' : ' ', d_name + d_info[i].name, (int)max_dlv[i]);
                }
        }
-       
-       /* Close the file */
-       my_fclose(fff);
+               my_fclose(fff);
        
        /* Display the file contents */
        show_file(TRUE, file_name, _("今までに入ったダンジョン", "Dungeon"), 0, 0);
@@ -7824,7 +7646,7 @@ static void do_cmd_knowledge_stat(void)
 {
        FILE *fff;
        
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
        int percent, v_nr;
        
        /* Open a new file */
@@ -7850,7 +7672,7 @@ static void do_cmd_knowledge_stat(void)
                else fprintf(fff, "Your current Life Rating is ???.\n\n");
                fprintf(fff, "Limits of maximum stats\n\n");
 #endif
-               for (v_nr = 0; v_nr < 6; v_nr++)
+               for (v_nr = 0; v_nr < A_MAX; v_nr++)
                {
                        if ((p_ptr->knowledge & KNOW_STAT) || p_ptr->stat_max[v_nr] == p_ptr->stat_max_max[v_nr]) fprintf(fff, "%s 18/%d\n", stat_names[v_nr], p_ptr->stat_max_max[v_nr]-18);
                        else fprintf(fff, "%s ???\n", stat_names[v_nr]);
@@ -7858,8 +7680,6 @@ static void do_cmd_knowledge_stat(void)
        }
 
        dump_yourself(fff);
-
-       /* Close the file */
        my_fclose(fff);
        
        /* Display the file contents */
@@ -7877,7 +7697,7 @@ static void do_cmd_knowledge_quests_current(FILE *fff)
 {
        char tmp_str[120];
        char rand_tmp_str[120] = "\0";
-       char name[80];
+       GAME_TEXT name[MAX_NLEN];
        monster_race *r_ptr;
        IDX i;
        int rand_level = 100;
@@ -8215,7 +8035,7 @@ void ang_sort_swap_quest_num(vptr u, vptr v, int a, int b)
 static void do_cmd_knowledge_quests(void)
 {
        FILE *fff;
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
        IDX *quest_num;
        int dummy;
        IDX i;
@@ -8249,8 +8069,6 @@ static void do_cmd_knowledge_quests(void)
                fputc('\n', fff);
                do_cmd_knowledge_quests_wiz_random(fff);
        }
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -8272,9 +8090,9 @@ static void do_cmd_knowledge_home(void)
        FILE *fff;
 
        int i;
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
        store_type  *st_ptr;
-       char o_name[MAX_NLEN];
+       GAME_TEXT o_name[MAX_NLEN];
        cptr            paren = ")";
 
        process_dungeon_file("w_info.txt", 0, 0, max_wild_y, max_wild_x);
@@ -8333,8 +8151,6 @@ static void do_cmd_knowledge_home(void)
                        fprintf(fff, "\n\n");
                }
        }
-
-       /* Close the file */
        my_fclose(fff);
 
        /* Display the file contents */
@@ -8352,7 +8168,7 @@ static void do_cmd_knowledge_autopick(void)
 {
        int k;
        FILE *fff;
-       char file_name[1024];
+       GAME_TEXT file_name[1024];
 
        /* Open a new file */
        fff = my_fopen_temp(file_name, 1024);
@@ -8405,7 +8221,6 @@ static void do_cmd_knowledge_autopick(void)
                string_free(tmp);
                fprintf(fff, "\n");
        }
-       /* Close the file */
        my_fclose(fff);
        /* Display the file contents */
        show_file(TRUE, file_name, _("自動拾い/破壊 設定リスト", "Auto-picker/Destroyer"), 0, 0);
@@ -8425,14 +8240,11 @@ void do_cmd_knowledge(void)
 
        /* File type is "TEXT" */
        FILE_TYPE(FILE_TYPE_TEXT);
-
-       /* Save the screen */
        screen_save();
 
        /* Interact until done */
        while (1)
        {
-               /* Clear screen */
                Term_clear();
 
                /* Ask for a choice */
@@ -8573,11 +8385,8 @@ void do_cmd_knowledge(void)
                        bell();
                }
 
-               /* Flush messages */
-               msg_print(NULL);
+               msg_erase();
        }
-
-       /* Restore the screen */
        screen_load();
 
        if (need_redraw) do_cmd_redraw();
@@ -8591,14 +8400,10 @@ void do_cmd_checkquest(void)
 {
        /* File type is "TEXT" */
        FILE_TYPE(FILE_TYPE_TEXT);
-
-       /* Save the screen */
        screen_save();
 
        /* Quest info */
        do_cmd_knowledge_quests();
-
-       /* Restore the screen */
        screen_load();
 }
 
@@ -8705,7 +8510,5 @@ void do_cmd_time(void)
        }
 
        msg_print(desc);
-
-       /* Close the file */
        my_fclose(fff);
 }