OSDN Git Service

[Refactor] #37353 コメント整理。 / Refactor comments.
[hengband/hengband.git] / src / wizard1.c
index 7c6549c..100698f 100644 (file)
@@ -11,6 +11,7 @@
  */
 
 #include "angband.h"
+#include "sort.h"
 
 
 #ifdef ALLOW_SPOILERS
@@ -29,7 +30,7 @@ static FILE *fff = NULL;
  * @param r_ptr モンスター種族の構造体ポインタ
  * @return シンボル職の記述名
  */
-static cptr attr_to_text(monster_race *r_ptr)
+static concptr attr_to_text(monster_race *r_ptr)
 {
 #ifdef JP000
        if (r_ptr->flags1 & RF1_ATTR_CLEAR)    return "透明な";
@@ -80,7 +81,6 @@ static cptr attr_to_text(monster_race *r_ptr)
 #endif
        }
 
-       /* Oops */
 #ifdef JP000
        return "変な";
 #else
@@ -95,8 +95,8 @@ static cptr attr_to_text(monster_race *r_ptr)
  */
 typedef struct
 {
-       byte tval;
-       cptr name;
+       OBJECT_TYPE_VALUE tval;
+       concptr name;
 } grouper;
 
 
@@ -129,87 +129,39 @@ static grouper group_item[] =
        { TV_SHIELD,        NULL },
        { TV_CLOAK,         NULL },
 
-#ifdef JP
-       { TV_LITE,          "光源" },
-       { TV_AMULET,        "アミュレット" },
-       { TV_RING,          "指輪" },
-#else
-       { TV_LITE,          "Light Sources" },
-       { TV_AMULET,        "Amulets" },
-       { TV_RING,          "Rings" },
-#endif
-
-#ifdef JP
-       { TV_STAFF,         "杖" },
-       { TV_WAND,          "魔法棒" },
-       { TV_ROD,           "ロッド" },
-#else
-       { TV_STAFF,         "Staffs" },
-       { TV_WAND,          "Wands" },
-       { TV_ROD,           "Rods" },
-#endif
-
-#ifdef JP
-       { TV_SCROLL,        "巻物" },
-       { TV_POTION,        "薬" },
-       { TV_FOOD,          "食料" },
-#else
-       { TV_SCROLL,        "Scrolls" },
-       { TV_POTION,        "Potions" },
-       { TV_FOOD,          "Food" },
-#endif
-
-#ifdef JP
-       { TV_LIFE_BOOK,     "魔法書 (生命)" },
-       { TV_SORCERY_BOOK,  "魔法書 (仙術)" },
-       { TV_NATURE_BOOK,   "魔法書 (自然)" },
-       { TV_CHAOS_BOOK,    "魔法書 (カオス)" },
-       { TV_DEATH_BOOK,    "魔法書 (暗黒)" },
-       { TV_TRUMP_BOOK,    "魔法書 (トランプ)" },
-       { TV_ARCANE_BOOK,   "魔法書 (秘術)" },
-       { TV_CRAFT_BOOK,    "魔法書 (匠)" },
-       { TV_DAEMON_BOOK,   "魔法書 (悪魔)" },
-       { TV_CRUSADE_BOOK,  "魔法書 (破邪)" },
-       { TV_MUSIC_BOOK,    "歌集" },
-       { TV_HISSATSU_BOOK, "武芸の書" },
-       { TV_HEX_BOOK,      "魔法書 (呪術)" },
-#else
-       { TV_LIFE_BOOK,     "Books (Life)" },
-       { TV_SORCERY_BOOK,  "Books (Sorcery)" },
-       { TV_NATURE_BOOK,   "Books (Nature)" },
-       { TV_CHAOS_BOOK,    "Books (Chaos)" },
-       { TV_DEATH_BOOK,    "Books (Death)" },
-       { TV_TRUMP_BOOK,    "Books (Trump)" },
-       { TV_ARCANE_BOOK,   "Books (Arcane)" },
-       { TV_CRAFT_BOOK,    "Books (Craft)" },
-       { TV_DAEMON_BOOK,   "Books (Daemon)" },
-       { TV_CRUSADE_BOOK,  "Books (Crusade)" },
-       { TV_MUSIC_BOOK,    "Song Books" },
-       { TV_HISSATSU_BOOK, "Books (Kendo)" },
-       { TV_HEX_BOOK,      "Books (Hex)" },
-#endif
-
-#ifdef JP
-       { TV_WHISTLE,       "笛" },
-       { TV_CAPTURE,       "キャプチャー・ボール" },
-       { TV_CARD,          "エクスプレスカード" },
-#else
-       { TV_WHISTLE,       "Whistle" },
-       { TV_CAPTURE,       "Capture Ball" },
-       { TV_CARD,          "Express Card" },
-#endif
+       { TV_LITE,          _("光源", "Light Sources") },
+       { TV_AMULET,        _("アミュレット", "Amulets" )},
+       { TV_RING,          _("指輪", "Rings") },
+       { TV_STAFF,         _("杖", "Staffs") },
+       { TV_WAND,          _("魔法棒", "Wands") },
+       { TV_ROD,           _("ロッド", "Rods") },
+       { TV_SCROLL,        _("巻物", "Scrolls") },
+       { TV_POTION,        _("薬", "Potions") },
+       { TV_FOOD,          _("食料", "Food") },
+
+       { TV_LIFE_BOOK,     _("魔法書 (生命)", "Books (Life)") },
+       { TV_SORCERY_BOOK,  _("魔法書 (仙術)", "Books (Sorcery)") },
+       { TV_NATURE_BOOK,   _("魔法書 (自然)", "Books (Nature)") },
+       { TV_CHAOS_BOOK,    _("魔法書 (カオス)", "Books (Chaos)") },
+       { TV_DEATH_BOOK,    _("魔法書 (暗黒)", "Books (Death)") },
+       { TV_TRUMP_BOOK,    _("魔法書 (トランプ)", "Books (Trump)") },
+       { TV_ARCANE_BOOK,   _("魔法書 (秘術)", "Books (Arcane)") },
+       { TV_CRAFT_BOOK,    _("魔法書 (匠)", "Books (Craft)") },
+       { TV_DAEMON_BOOK,   _("魔法書 (悪魔)", "Books (Daemon)") },
+       { TV_CRUSADE_BOOK,  _("魔法書 (破邪)", "Books (Crusade)") },
+       { TV_MUSIC_BOOK,    _("歌集", "Song Books") },
+       { TV_HISSATSU_BOOK, _("武芸の書", "Books (Kendo)") },
+       { TV_HEX_BOOK,      _("魔法書 (呪術)", "Books (Hex)") },
+
+       { TV_WHISTLE,       _("笛", "Whistle") },
+       { TV_CAPTURE,       _("キャプチャー・ボール", "Capture Ball") },
+       { TV_CARD,          _("エクスプレスカード", "Express Card") },
 
        { TV_CHEST,         _("箱", "Chests") },
 
-#ifdef JP
-       { TV_FIGURINE,      "人形" },
-       { TV_STATUE,        "像" },
-       { TV_CORPSE,        "死体" },
-#else
-       { TV_FIGURINE,      "Magical Figurines" },
-       { TV_STATUE,        "Statues" },
-       { TV_CORPSE,        "Corpses" },
-#endif
+       { TV_FIGURINE,      _("人形", "Magical Figurines") },
+       { TV_STATUE,        _("像", "Statues") },
+       { TV_CORPSE,        _("死体", "Corpses") },
 
        { TV_SKELETON,      _("その他", "Misc") },
        { TV_BOTTLE,        NULL },
@@ -234,13 +186,11 @@ static grouper group_item[] =
  * @param k ベースアイテムID
  * @return なし
  */
-static void kind_info(char *buf, char *dam, char *wgt, char *chance, int *lev, s32b *val, int k)
+static void kind_info(char *buf, char *dam, char *wgt, char *chance, DEPTH *lev, PRICE *val, OBJECT_IDX k)
 {
        object_type forge;
        object_type *q_ptr;
        int i;
-
-       /* Get local object */
        q_ptr = &forge;
 
        /* Prepare a fake item */
@@ -255,22 +205,15 @@ static void kind_info(char *buf, char *dam, char *wgt, char *chance, int *lev, s
        q_ptr->to_h = 0;
        q_ptr->to_d = 0;
 
-
-       /* Level */
        (*lev) = k_info[q_ptr->k_idx].level;
-
-       /* Value */
        (*val) = object_value(q_ptr);
 
-
        /* Hack */
        if (!buf || !dam || !chance || !wgt) return;
 
-
        /* Description (too brief) */
        object_desc(buf, q_ptr, (OD_NAME_ONLY | OD_STORE));
 
-
        /* Misc info */
        strcpy(dam, "");
 
@@ -325,14 +268,15 @@ static void kind_info(char *buf, char *dam, char *wgt, char *chance, int *lev, s
                char chance_aux[20] = "";
                if(k_info[q_ptr->k_idx].chance[i] > 0)
                {
-                       sprintf(chance_aux, "%s%3dF:%+4d", (i != 0 ? "/" : ""), k_info[q_ptr->k_idx].locale[i], 100/k_info[q_ptr->k_idx].chance[i]);
+                       sprintf(chance_aux, "%s%3dF:%+4d", (i != 0 ? "/" : ""),
+                               (int)k_info[q_ptr->k_idx].locale[i], 100/k_info[q_ptr->k_idx].chance[i]);
                        strcat(chance, chance_aux);
                }
        }
 
 
        /* Weight */
-       sprintf(wgt, "%3d.%d", q_ptr->weight / 10, q_ptr->weight % 10);
+       sprintf(wgt, "%3d.%d", (int)(q_ptr->weight / 10), (int)(q_ptr->weight % 10));
 }
 
 
@@ -342,11 +286,11 @@ static void kind_info(char *buf, char *dam, char *wgt, char *chance, int *lev, s
  * @param fname ファイル名
  * @return なし
  */
-static void spoil_obj_desc(cptr fname)
+static void spoil_obj_desc(concptr fname)
 {
        int i, k, s, t, n = 0, group_start = 0;
 
-       u16b who[200];
+       OBJECT_IDX who[200];
 
        char buf[1024];
 
@@ -364,7 +308,6 @@ static void spoil_obj_desc(cptr fname)
        /* Open the file */
        fff = my_fopen(buf, "w");
 
-       /* Oops */
        if (!fff)
        {
                msg_print("Cannot create spoiler file.");
@@ -398,11 +341,11 @@ static void spoil_obj_desc(cptr fname)
                                                int i1 = t;
                                                int i2 = t + 1;
 
-                                               int e1;
-                                               int e2;
+                                               DEPTH e1;
+                                               DEPTH e2;
 
-                                               s32b t1;
-                                               s32b t2;
+                                               PRICE t1;
+                                               PRICE t2;
 
                                                kind_info(NULL, NULL, NULL, NULL, &e1, &t1, who[i1]);
                                                kind_info(NULL, NULL, NULL, NULL, &e2, &t2, who[i2]);
@@ -421,15 +364,15 @@ static void spoil_obj_desc(cptr fname)
                                /* Spoil each item */
                                for (s = 0; s < n; s++)
                                {
-                                       int e;
-                                       s32b v;
+                                       DEPTH e;
+                                       PRICE v;
 
                                        /* Describe the kind */
                                        kind_info(buf, dam, wgt, chance, &e, &v, who[s]);
 
                                        /* Dump it */
                                        fprintf(fff, "  %-35s%8s%7s%5d %-40s%9ld\n",
-                                               buf, dam, wgt, e, chance, (long)(v));
+                                               buf, dam, wgt, (int)e, chance, (long)(v));
                                }
 
                                /* Start a new set */
@@ -467,7 +410,6 @@ static void spoil_obj_desc(cptr fname)
                return;
        }
 
-       /* Message */
        msg_print("Successfully created a spoiler file.");
 }
 
@@ -576,7 +518,7 @@ typedef struct flag_desc flag_desc;
 struct flag_desc
 {
        const int flag;
-       const char *const desc;
+       concptr const desc;
 };
 
 
@@ -917,7 +859,7 @@ typedef struct
         *
         * This list includes extra attacks, for simplicity.
         */
-       cptr pval_affects[N_ELEMENTS(stat_flags_desc) - 1 +
+       concptr pval_affects[N_ELEMENTS(stat_flags_desc) - 1 +
                          N_ELEMENTS(pval_flags1_desc) + 1];
 
 } pval_info_type;
@@ -940,22 +882,22 @@ typedef struct
        pval_info_type pval_info;
 
        /* A list of an object's slaying preferences */
-       cptr slays[N_ELEMENTS(slay_flags_desc) + 1];
+       concptr slays[N_ELEMENTS(slay_flags_desc) + 1];
 
        /* A list if an object's elemental brands */
-       cptr brands[N_ELEMENTS(brand_flags_desc) + 1];
+       concptr brands[N_ELEMENTS(brand_flags_desc) + 1];
 
        /* A list of immunities granted by an object */
-       cptr immunities[N_ELEMENTS(immune_flags_desc) + 1];
+       concptr immunities[N_ELEMENTS(immune_flags_desc) + 1];
 
        /* A list of resistances granted by an object */
-       cptr resistances[N_ELEMENTS(resist_flags_desc) + 1];
+       concptr resistances[N_ELEMENTS(resist_flags_desc) + 1];
 
        /* A list of stats sustained by an object */
-       cptr sustains[N_ELEMENTS(sustain_flags_desc)  - 1 + 1];
+       concptr sustains[N_ELEMENTS(sustain_flags_desc)  - 1 + 1];
 
        /* A list of various magical qualities an object may have */
-       cptr misc_magic[N_ELEMENTS(misc_flags2_desc) + N_ELEMENTS(misc_flags3_desc)
+       concptr misc_magic[N_ELEMENTS(misc_flags2_desc) + N_ELEMENTS(misc_flags3_desc)
                        + 1       /* Permanent Light */
                        + 1       /* TY curse */
                        + 1       /* type of curse */
@@ -965,7 +907,7 @@ typedef struct
        char addition[80];
 
        /* A string describing an artifact's activation */
-       cptr activation;
+       concptr activation;
 
        /* "Level 20, Rarity 30, 3.0 lbs, 20000 Gold" */
        char misc_desc[80];
@@ -1003,7 +945,7 @@ static void spoiler_blanklines(int n)
  * @param str 出力したい文字列
  * @return なし
  */
-static void spoiler_underline(cptr str)
+static void spoiler_underline(concptr str)
 {
        fprintf(fff, "%s\n", str);
        spoiler_out_n_chars(strlen(str), '-');
@@ -1031,9 +973,9 @@ static void spoiler_underline(cptr str)
  * The possibly updated description pointer is returned.
  * </pre>
  */
-static cptr *spoiler_flag_aux(const u32b art_flags[TR_FLAG_SIZE],
+static concptr *spoiler_flag_aux(const BIT_FLAGS art_flags[TR_FLAG_SIZE],
                              const flag_desc *flag_ptr,
-                             cptr *desc_ptr, const int n_elmnts)
+                             concptr *desc_ptr, const int n_elmnts)
 {
        int i;
 
@@ -1073,9 +1015,9 @@ static void analyze_general(object_type *o_ptr, char *desc_ptr)
  */
 static void analyze_pval(object_type *o_ptr, pval_info_type *pi_ptr)
 {
-       u32b flgs[TR_FLAG_SIZE];
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
 
-       cptr *affects_list;
+       concptr *affects_list;
 
        /* If pval == 0, there is nothing to do. */
        if (!o_ptr->pval)
@@ -1084,8 +1026,6 @@ static void analyze_pval(object_type *o_ptr, pval_info_type *pi_ptr)
                pi_ptr->pval_desc[0] = '\0';
                return;
        }
-
-       /* Extract the flags */
        object_flags(o_ptr, flgs);
 
        affects_list = pi_ptr->pval_affects;
@@ -1127,9 +1067,9 @@ static void analyze_pval(object_type *o_ptr, pval_info_type *pi_ptr)
  * @param slay_list 種族スレイ構造体の参照ポインタ
  * @return なし
  */
-static void analyze_slay(object_type *o_ptr, cptr *slay_list)
+static void analyze_slay(object_type *o_ptr, concptr *slay_list)
 {
-       u32b flgs[TR_FLAG_SIZE];
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
 
        object_flags(o_ptr, flgs);
 
@@ -1148,9 +1088,9 @@ static void analyze_slay(object_type *o_ptr, cptr *slay_list)
  * @param brand_list 属性ブランド構造体の参照ポインタ
  * @return なし
  */
-static void analyze_brand(object_type *o_ptr, cptr *brand_list)
+static void analyze_brand(object_type *o_ptr, concptr *brand_list)
 {
-       u32b flgs[TR_FLAG_SIZE];
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
 
        object_flags(o_ptr, flgs);
 
@@ -1169,9 +1109,9 @@ static void analyze_brand(object_type *o_ptr, cptr *brand_list)
  * @param resist_list 通常耐性構造体の参照ポインタ
  * @return なし
  */
-static void analyze_resist(object_type *o_ptr, cptr *resist_list)
+static void analyze_resist(object_type *o_ptr, concptr *resist_list)
 {
-       u32b flgs[TR_FLAG_SIZE];
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
 
        object_flags(o_ptr, flgs);
 
@@ -1190,9 +1130,9 @@ static void analyze_resist(object_type *o_ptr, cptr *resist_list)
  * @param immune_list 免疫構造体の参照ポインタ
  * @return なし
  */
-static void analyze_immune(object_type *o_ptr, cptr *immune_list)
+static void analyze_immune(object_type *o_ptr, concptr *immune_list)
 {
-       u32b flgs[TR_FLAG_SIZE];
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
 
        object_flags(o_ptr, flgs);
 
@@ -1211,9 +1151,9 @@ static void analyze_immune(object_type *o_ptr, cptr *immune_list)
  * @param sustain_list 維持特性構造体の参照ポインタ
  * @return なし
  */
-static void analyze_sustains(object_type *o_ptr, cptr *sustain_list)
+static void analyze_sustains(object_type *o_ptr, concptr *sustain_list)
 {
-       u32b flgs[TR_FLAG_SIZE];
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
 
        object_flags(o_ptr, flgs);
 
@@ -1248,10 +1188,10 @@ static void analyze_sustains(object_type *o_ptr, cptr *sustain_list)
  * @param misc_list その他の特性構造体の参照ポインタ
  * @return なし
  */
-static void analyze_misc_magic(object_type *o_ptr, cptr *misc_list)
+static void analyze_misc_magic(object_type *o_ptr, concptr *misc_list)
 {
-       u32b flgs[TR_FLAG_SIZE];
-       int rad;
+       BIT_FLAGS flgs[TR_FLAG_SIZE];
+       POSITION rad;
        char desc[256];
 
        object_flags(o_ptr, flgs);
@@ -1259,8 +1199,7 @@ static void analyze_misc_magic(object_type *o_ptr, cptr *misc_list)
        misc_list = spoiler_flag_aux(flgs, misc_flags2_desc, misc_list,
                                     N_ELEMENTS(misc_flags2_desc));
 
-       misc_list = spoiler_flag_aux(flgs, misc_flags3_desc, misc_list,
-                                    N_ELEMENTS(misc_flags3_desc));
+       misc_list = spoiler_flag_aux(flgs, misc_flags3_desc, misc_list, N_ELEMENTS(misc_flags3_desc));
 
        /*
         * Glowing artifacts -- small radius light.
@@ -1277,12 +1216,12 @@ static void analyze_misc_magic(object_type *o_ptr, cptr *misc_list)
 
        if (have_flag(flgs, TR_LITE_FUEL))
        {
-               if(rad > 0) sprintf(desc, _("それは燃料補給によって明かり(半径 %d)を授ける。", "It provides light (radius %d) when fueled."), rad);        
+               if(rad > 0) sprintf(desc, _("それは燃料補給によって明かり(半径 %d)を授ける。", "It provides light (radius %d) when fueled."), (int)rad);   
        }
        else
        {
-               if(rad > 0) sprintf(desc, _("永久光源(半径 %d)", "Permanent Light(radius %d)"), rad);     
-               if(rad < 0) sprintf(desc, _("永久光源(半径-%d)。", "Permanent Light(radius -%d)"), -rad);
+               if(rad > 0) sprintf(desc, _("永久光源(半径 %d)", "Permanent Light(radius %d)"), (int)rad);        
+               if(rad < 0) sprintf(desc, _("永久光源(半径-%d)。", "Permanent Light(radius -%d)"), (int)-rad);
        }
 
        if(rad != 0) *misc_list++ = quark_str(quark_add(desc));
@@ -1341,33 +1280,18 @@ static void analyze_addition(object_type *o_ptr, char *addition)
        /* Init */
        strcpy(addition, "");
 
-#ifdef JP
-       if ((a_ptr->gen_flags & TRG_XTRA_POWER) && (a_ptr->gen_flags & TRG_XTRA_H_RES)) strcat(addition, "能力and耐性");
+       if ((a_ptr->gen_flags & TRG_XTRA_POWER) && (a_ptr->gen_flags & TRG_XTRA_H_RES)) strcat(addition, _("能力and耐性", "Ability and Resistance"));
        else if (a_ptr->gen_flags & TRG_XTRA_POWER)
        {
-               strcat(addition, "能力");
-               if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "(1/2でand耐性)");
+               strcat(addition, _("能力", "Ability"));
+               if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, _("(1/2でand耐性)", "(plus Resistance about 1/2)"));
        }
        else if (a_ptr->gen_flags & TRG_XTRA_H_RES)
        {
-               strcat(addition, "耐性");
-               if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "(1/2でand能力)");
+               strcat(addition, _("耐性", "Resistance"));
+               if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, _("(1/2でand能力)", "(plus Ability about 1/2)"));
        }
-       else if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "能力or耐性");
-#else
-       if ((a_ptr->gen_flags & TRG_XTRA_POWER) && (a_ptr->gen_flags & TRG_XTRA_H_RES)) strcat(addition, "Ability and Resistance");
-       else if (a_ptr->gen_flags & TRG_XTRA_POWER)
-       {
-               strcat(addition, "Ability");
-               if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "(plus Resistance about 1/2)");
-       }
-       else if (a_ptr->gen_flags & TRG_XTRA_H_RES)
-       {
-               strcat(addition, "Resistance");
-               if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "(plus Ability about 1/2)");
-       }
-       else if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, "Ability or Resistance");
-#endif
+       else if (a_ptr->gen_flags & TRG_XTRA_RES_OR_POWER) strcat(addition, _("能力or耐性", "Ability or Resistance"));
 }
 
 
@@ -1383,13 +1307,10 @@ static void analyze_misc(object_type *o_ptr, char *misc_desc)
 {
        artifact_type *a_ptr = &a_info[o_ptr->name1];
 
+       sprintf(misc_desc, _("レベル %d, 希少度 %u, %d.%d kg, $%ld", "Level %d, Rarity %u, %d.%d lbs, %ld Gold"), (int)a_ptr->level, a_ptr->rarity,
 #ifdef JP
-       sprintf(misc_desc, "レベル %u, 希少度 %u, %d.%d kg, $%ld",
-               a_ptr->level, a_ptr->rarity,
                lbtokg1(a_ptr->weight), lbtokg2(a_ptr->weight), (long int)a_ptr->cost);
 #else
-       sprintf(misc_desc, "Level %u, Rarity %u, %d.%d lbs, %ld Gold",
-               a_ptr->level, a_ptr->rarity,
                a_ptr->weight / 10, a_ptr->weight % 10, a_ptr->cost);
 #endif
 }
@@ -1427,8 +1348,7 @@ static void print_header(void)
 {
        char buf[80];
 
-       sprintf(buf, "Artifact Spoilers for Hengband Version %d.%d.%d",
-               FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+       sprintf(buf, "Artifact Spoilers for Hengband Version %d.%d.%d",FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
        spoiler_underline(buf);
 }
 
@@ -1481,7 +1401,7 @@ static void print_header(void)
  * @param separator フラグ表示の区切り記号
  * @return なし
  */
-static void spoiler_outlist(cptr header, cptr *list, char separator)
+static void spoiler_outlist(concptr header, concptr *list, char separator)
 {
        int line_len, buf_len;
        char line[MAX_LINE_LEN+1], buf[80];
@@ -1581,7 +1501,6 @@ static void spoiler_outlist(cptr header, cptr *list, char separator)
 static void spoiler_print_art(obj_desc_list *art_ptr)
 {
        pval_info_type *pval_ptr = &art_ptr->pval_info;
-
        char buf[80];
 
        /* Don't indent the first line */
@@ -1596,20 +1515,11 @@ static void spoiler_print_art(obj_desc_list *art_ptr)
        }
 
        /* Now deal with the description lists */
-
-#ifdef JP
-       spoiler_outlist("対:", art_ptr->slays, ITEM_SEP);
-       spoiler_outlist("武器属性:", art_ptr->brands, LIST_SEP);
-       spoiler_outlist("免疫:", art_ptr->immunities, ITEM_SEP);
-       spoiler_outlist("耐性:", art_ptr->resistances, ITEM_SEP);
-       spoiler_outlist("維持:", art_ptr->sustains, ITEM_SEP);
-#else
-       spoiler_outlist("Slay", art_ptr->slays, ITEM_SEP);
-       spoiler_outlist("", art_ptr->brands, LIST_SEP);
-       spoiler_outlist("Immunity to", art_ptr->immunities, ITEM_SEP);
-       spoiler_outlist("Resist", art_ptr->resistances, ITEM_SEP);
-       spoiler_outlist("Sustain", art_ptr->sustains, ITEM_SEP);
-#endif
+       spoiler_outlist(_("対:", "Slay"), art_ptr->slays, ITEM_SEP);
+       spoiler_outlist(_("武器属性:", ""), art_ptr->brands, LIST_SEP);
+       spoiler_outlist(_("免疫:", "Immunity to"), art_ptr->immunities, ITEM_SEP);
+       spoiler_outlist(_("耐性:", "Resist"), art_ptr->resistances, ITEM_SEP);
+       spoiler_outlist(_("維持:", "Sustain"), art_ptr->sustains, ITEM_SEP);
        spoiler_outlist("", art_ptr->misc_magic, LIST_SEP);
 
        if (art_ptr->addition[0])
@@ -1635,20 +1545,17 @@ static void spoiler_print_art(obj_desc_list *art_ptr)
  * @param name1 生成するアーティファクトID
  * @return 生成が成功した場合TRUEを返す
  */
-static bool make_fake_artifact(object_type *o_ptr, int name1)
+static bool make_fake_artifact(object_type *o_ptr, IDX name1)
 {
-       int i;
-
+       OBJECT_IDX i;
        artifact_type *a_ptr = &a_info[name1];
 
-
        /* Ignore "empty" artifacts */
        if (!a_ptr->name) return FALSE;
 
        /* Acquire the "kind" index */
        i = lookup_kind(a_ptr->tval, a_ptr->sval);
 
-       /* Oops */
        if (!i) return (FALSE);
 
        /* Create the artifact */
@@ -1678,18 +1585,16 @@ static bool make_fake_artifact(object_type *o_ptr, int name1)
  * @param fname 生成ファイル名
  * @return なし
  */
-static void spoil_artifact(cptr fname)
+static void spoil_artifact(concptr fname)
 {
-       int i, j;
+       int i;
+       IDX j;
 
        object_type forge;
        object_type *q_ptr;
-
        obj_desc_list artifact;
-
        char buf[1024];
 
-
        /* Build the filename */
        path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname);
 
@@ -1699,7 +1604,6 @@ static void spoil_artifact(cptr fname)
        /* Open the file */
        fff = my_fopen(buf, "w");
 
-       /* Oops */
        if (!fff)
        {
                msg_print("Cannot create spoiler file.");
@@ -1727,11 +1631,7 @@ static void spoil_artifact(cptr fname)
 
                        /* We only want objects in the current group */
                        if (a_ptr->tval != group_artifact[i].tval) continue;
-
-                       /* Get local object */
                        q_ptr = &forge;
-
-                       /* Wipe the object */
                        object_wipe(q_ptr);
 
                        /* Attempt to "forge" the artifact */
@@ -1752,7 +1652,6 @@ static void spoil_artifact(cptr fname)
                return;
        }
 
-       /* Message */
        msg_print("Successfully created a spoiler file.");
 }
 
@@ -1763,12 +1662,12 @@ static void spoil_artifact(cptr fname)
  * @param fname 生成ファイル名
  * @return なし
  */
-static void spoil_mon_desc(cptr fname)
+static void spoil_mon_desc(concptr fname)
 {
        int i, n = 0;
 
        u16b why = 2;
-       s16b *who;
+       MONRACE_IDX *who;
 
        char buf[1024];
 
@@ -1789,7 +1688,6 @@ static void spoil_mon_desc(cptr fname)
        /* Open the file */
        fff = my_fopen(buf, "w");
 
-       /* Oops */
        if (!fff)
        {
                msg_print("Cannot create spoiler file.");
@@ -1797,7 +1695,7 @@ static void spoil_mon_desc(cptr fname)
        }
 
        /* Allocate the "who" array */
-       C_MAKE(who, max_r_idx, s16b);
+       C_MAKE(who, max_r_idx, MONRACE_IDX);
 
        /* Dump the header */
        fprintf(fff, "Monster Spoilers for Hengband Version %d.%d.%d\n",
@@ -1832,14 +1730,14 @@ static void spoil_mon_desc(cptr fname)
        {
                monster_race *r_ptr = &r_info[who[i]];
 
-               cptr name = (r_name + r_ptr->name);
+               concptr name = (r_name + r_ptr->name);
                if (r_ptr->flags7 & (RF7_KAGE)) continue;
 
                /* Get the "name" */
                /*
-               else if (r_ptr->flags1 & (RF1_QUESTOR))
+               else if (r_ptr->flags3 & (RF3_NO_CONF))
                {
-                       sprintf(nam, "[Q] %s", name);
+                       sprintf(nam, "[*] %s", name);
                }
                */
                else if (r_ptr->flags1 & (RF1_UNIQUE))
@@ -1853,10 +1751,10 @@ static void spoil_mon_desc(cptr fname)
 
 
                /* Level */
-               sprintf(lev, "%d", r_ptr->level);
+               sprintf(lev, "%d", (int)r_ptr->level);
 
                /* Rarity */
-               sprintf(rar, "%d", r_ptr->rarity);
+               sprintf(rar, "%d", (int)r_ptr->rarity);
 
                /* Speed */
                if (r_ptr->speed >= 110)
@@ -1929,9 +1827,9 @@ static void spoil_mon_desc(cptr fname)
  * @param str 文字列参照ポインタ
  * @return なし
  */
-static void spoil_out(cptr str)
+static void spoil_out(concptr str)
 {
-       cptr r;
+       concptr r;
 
        /* Line buffer */
        static char roff_buf[256];
@@ -2015,9 +1913,9 @@ static void spoil_out(cptr str)
 #ifdef JP
                                bool k_flag_local;
                                bool iskanji_flag_local = FALSE;
-                               cptr tail = str + (k_flag ? 2 : 1);
+                               concptr tail = str + (k_flag ? 2 : 1);
 #else
-                               cptr tail = str + 1;
+                               concptr tail = str + 1;
 #endif
 
                                for (; *tail; tail++)
@@ -2097,7 +1995,7 @@ static void spoil_out(cptr str)
  * @param str 文字列参照ポインタ
  * @return なし
  */
-static void roff_func(byte attr, cptr str)
+static void roff_func(TERM_COLOR attr, concptr str)
 {
        /* Unused */
        (void)attr;
@@ -2112,14 +2010,14 @@ static void roff_func(byte attr, cptr str)
  * @param fname ファイル名
  * @return なし
  */
-static void spoil_mon_info(cptr fname)
+static void spoil_mon_info(concptr fname)
 {
        char buf[1024];
        int i, l, n = 0;
-       u32b flags1;
+       BIT_FLAGS flags1;
 
        u16b why = 2;
-       s16b *who;
+       MONRACE_IDX *who;
 
        /* Build the filename */
        path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname);
@@ -2130,7 +2028,6 @@ static void spoil_mon_info(cptr fname)
        /* Open the file */
        fff = my_fopen(buf, "w");
 
-       /* Oops */
        if (!fff)
        {
                msg_print("Cannot create spoiler file.");
@@ -2146,7 +2043,7 @@ static void spoil_mon_info(cptr fname)
        spoil_out("------------------------------------------\n\n");
 
        /* Allocate the "who" array */
-       C_MAKE(who, max_r_idx, s16b);
+       C_MAKE(who, max_r_idx, MONRACE_IDX);
 
        /* Scan the monsters */
        for (i = 1; i < max_r_idx; i++)
@@ -2171,8 +2068,6 @@ static void spoil_mon_info(cptr fname)
        for (l = 0; l < n; l++)
        {
                monster_race *r_ptr = &r_info[who[l]];
-
-               /* Extract the flags */
                flags1 = r_ptr->flags1;
 
                /* Prefix */
@@ -2216,7 +2111,7 @@ static void spoil_mon_info(cptr fname)
                spoil_out(buf);
 
                /* Level */
-               sprintf(buf, "Lev:%d  ", r_ptr->level);
+               sprintf(buf, "Lev:%d  ", (int)r_ptr->level);
                spoil_out(buf);
 
                /* Rarity */
@@ -2393,7 +2288,7 @@ static void ang_sort_swap_evol_tree(vptr u, vptr v, int a, int b)
  * @param fname 出力ファイル名
  * @return なし
  */
-static void spoil_mon_evol(cptr fname)
+static void spoil_mon_evol(concptr fname)
 {
        char buf[1024];
        monster_race *r_ptr;
@@ -2409,7 +2304,6 @@ static void spoil_mon_evol(cptr fname)
        /* Open the file */
        fff = my_fopen(buf, "w");
 
-       /* Oops */
        if (!fff)
        {
                msg_print("Cannot create spoiler file.");
@@ -2491,25 +2385,16 @@ static void spoil_mon_evol(cptr fname)
 
                /* Trace the evolution tree */
                r_ptr = &r_info[r_idx];
-#ifdef JP
-               fprintf(fff, "[%d]: %s (レベル%d, '%c')\n", r_idx,
-                       r_name + r_ptr->name, r_ptr->level, r_ptr->d_char);
-#else
-               fprintf(fff, "[%d]: %s (Level %d, '%c')\n", r_idx,
-                       r_name + r_ptr->name, r_ptr->level, r_ptr->d_char);
-#endif
+               fprintf(fff, _("[%d]: %s (レベル%d, '%c')\n", "[%d]: %s (Level %d, '%c')\n"),
+                       r_idx, r_name + r_ptr->name, (int)r_ptr->level, r_ptr->d_char);
+
                for (n = 1; r_ptr->next_exp; n++)
                {
                        fprintf(fff, "%*s-(%ld)-> ", n * 2, "", (long int)r_ptr->next_exp);
                        fprintf(fff, "[%d]: ", r_ptr->next_r_idx);
                        r_ptr = &r_info[r_ptr->next_r_idx];
-#ifdef JP
-                       fprintf(fff, "%s (レベル%d, '%c')\n",
-                               r_name + r_ptr->name, r_ptr->level, r_ptr->d_char);
-#else
-                       fprintf(fff, "%s (Level %d, '%c')\n",
-                               r_name + r_ptr->name, r_ptr->level, r_ptr->d_char);
-#endif
+                       fprintf(fff, _("%s (レベル%d, '%c')\n", "%s (Level %d, '%c')\n"),
+                               r_name + r_ptr->name, (int)r_ptr->level, r_ptr->d_char);
                }
 
                /* End of evolution tree */
@@ -2527,7 +2412,6 @@ static void spoil_mon_evol(cptr fname)
                return;
        }
 
-       /* Message */
        msg_print("Successfully created a spoiler file.");
 }
 
@@ -2545,13 +2429,11 @@ extern void do_cmd_spoilers(void);
  */
 void do_cmd_spoilers(void)
 {
-       /* Save the screen */
        screen_save();
 
        /* Interact */
        while (1)
        {
-               /* Clear screen */
                Term_clear();
 
                /* Info */
@@ -2572,7 +2454,6 @@ void do_cmd_spoilers(void)
                {
                /* Escape */
                case ESCAPE:
-                       /* Restore the screen */
                        screen_load();
                        return;
 
@@ -2601,14 +2482,12 @@ void do_cmd_spoilers(void)
                        spoil_mon_evol("mon-evol.txt");
                        break;
 
-               /* Oops */
                default:
                        bell();
                        break;
                }
 
-               /* Flush messages */
-               msg_print(NULL);
+               msg_erase();
        }
 }
 
@@ -2672,19 +2551,11 @@ static void spoiler_print_randart(object_type *o_ptr, obj_desc_list *art_ptr)
 
                /* Now deal with the description lists */
 
-#ifdef JP
-               spoiler_outlist("対:", art_ptr->slays, ITEM_SEP);
-               spoiler_outlist("武器属性:", art_ptr->brands, LIST_SEP);
-               spoiler_outlist("免疫:", art_ptr->immunities, ITEM_SEP);
-               spoiler_outlist("耐性:", art_ptr->resistances, ITEM_SEP);
-               spoiler_outlist("維持:", art_ptr->sustains, ITEM_SEP);
-#else
-               spoiler_outlist("Slay", art_ptr->slays, ITEM_SEP);
-               spoiler_outlist("", art_ptr->brands, LIST_SEP);
-               spoiler_outlist("Immunity to", art_ptr->immunities, ITEM_SEP);
-               spoiler_outlist("Resist", art_ptr->resistances, ITEM_SEP);
-               spoiler_outlist("Sustain", art_ptr->sustains, ITEM_SEP);
-#endif
+               spoiler_outlist(_("対:", "Slay"), art_ptr->slays, ITEM_SEP);
+               spoiler_outlist(_("武器属性:", ""), art_ptr->brands, LIST_SEP);
+               spoiler_outlist(_("免疫:", "Immunity to"), art_ptr->immunities, ITEM_SEP);
+               spoiler_outlist(_("耐性:", "Resist"), art_ptr->resistances, ITEM_SEP);
+               spoiler_outlist(_("維持:", "Sustain"), art_ptr->sustains, ITEM_SEP);
                spoiler_outlist("", art_ptr->misc_magic, LIST_SEP);
 
                /* Write out the possible activation at the primary indention level */
@@ -2725,7 +2596,7 @@ static void spoil_random_artifact_aux(object_type *o_ptr, int i)
  * @param fname 出力ファイル名
  * @return なし
  */
-void spoil_random_artifact(cptr fname)
+void spoil_random_artifact(concptr fname)
 {
        int i,j;
 
@@ -2734,7 +2605,6 @@ void spoil_random_artifact(cptr fname)
 
        char buf[1024];
 
-
        /* Build the filename */
        path_build(buf, sizeof(buf), ANGBAND_DIR_USER, fname);
 
@@ -2744,7 +2614,6 @@ void spoil_random_artifact(cptr fname)
        /* Open the file */
        fff = my_fopen(buf, "w");
 
-       /* Oops */
        if (!fff)
        {
                msg_print("Cannot create list file.");
@@ -2796,7 +2665,6 @@ void spoil_random_artifact(cptr fname)
                return;
        }
 
-       /* Message */
        msg_print("Successfully created a list file.");
 }