OSDN Git Service

[Fix] #38923 メッセージの未定義変数参照バグ修正。 / Fix reference of undefined value.
[hengband/hengband.git] / src / init1.c
index 793193d..a105956 100644 (file)
@@ -48,6 +48,8 @@
 
 #include "angband.h"
 #include "trap.h"
+#include "monster.h"
+#include "artifact.h"
 
 
 
@@ -62,7 +64,7 @@
  * モンスターの打撃手段トークンの定義 /
  * Monster Blow Methods
  */
-static cptr r_info_blow_method[] =
+static concptr r_info_blow_method[] =
 {
        "",
        "HIT",
@@ -98,7 +100,7 @@ static cptr r_info_blow_method[] =
  * モンスターの打撃属性トークンの定義 /
  * Monster Blow Effects
  */
-static cptr r_info_blow_effect[] =
+static concptr r_info_blow_effect[] =
 {
        "",
        "HURT",
@@ -143,7 +145,7 @@ static cptr r_info_blow_effect[] =
  * 地形属性トークンの定義 /
  * Feature info flags
  */
-static cptr f_info_flags[] =
+static concptr f_info_flags[] =
 {
        "LOS",
        "PROJECT",
@@ -268,7 +270,7 @@ static cptr f_info_flags[] =
  * モンスター特性トークンの定義1 /
  * Monster race flags
  */
-static cptr r_info_flags1[] =
+static concptr r_info_flags1[] =
 {
        "UNIQUE",
        "QUESTOR",
@@ -308,7 +310,7 @@ static cptr r_info_flags1[] =
  * モンスター特性トークンの定義2 /
  * Monster race flags
  */
-static cptr r_info_flags2[] =
+static concptr r_info_flags2[] =
 {
        "STUPID",
        "SMART",
@@ -348,7 +350,7 @@ static cptr r_info_flags2[] =
  * モンスター特性トークンの定義3 /
  * Monster race flags
  */
-static cptr r_info_flags3[] =
+static concptr r_info_flags3[] =
 {
        "ORC",
        "TROLL",
@@ -388,7 +390,7 @@ static cptr r_info_flags3[] =
  * モンスター特性トークンの定義4 /
  * Monster race flags
  */
-static cptr r_info_flags4[] =
+static concptr r_info_flags4[] =
 {
        "SHRIEK",
        "XXX1",
@@ -428,7 +430,7 @@ static cptr r_info_flags4[] =
  * モンスター特性トークン(発動型能力1) /
  * Monster race flags
  */
-static cptr r_a_ability_flags1[] =
+static concptr r_a_ability_flags1[] =
 {
        "BA_ACID",
        "BA_ELEC",
@@ -468,7 +470,7 @@ static cptr r_a_ability_flags1[] =
  * モンスター特性トークン(発動型能力2) /
  * Monster race flags
  */
-static cptr r_a_ability_flags2[] =
+static concptr r_a_ability_flags2[] =
 {
        "HASTE",
        "HAND_DOOM",
@@ -509,7 +511,7 @@ static cptr r_a_ability_flags2[] =
  * モンスター特性トークン(発動型能力3) /
  * Monster race flags
  */
-static cptr r_a_ability_flags3[] =
+static concptr r_a_ability_flags3[] =
 {
        "XXXA3X00",
        "XXXA3X01",
@@ -551,7 +553,7 @@ static cptr r_a_ability_flags3[] =
  * モンスター特性トークン(発動型能力4) /
  * Monster race flags
  */
-static cptr r_a_ability_flags4[] =
+static concptr r_a_ability_flags4[] =
 {
        "XXXA4X00",
        "XXXA4X01",
@@ -593,7 +595,7 @@ static cptr r_a_ability_flags4[] =
  * モンスター特性トークンの定義7 /
  * Monster race flags
  */
-static cptr r_info_flags7[] =
+static concptr r_info_flags7[] =
 {
        "AQUATIC",
        "CAN_SWIM",
@@ -633,7 +635,7 @@ static cptr r_info_flags7[] =
  * モンスター特性トークンの定義8 /
  * Monster race flags
  */
-static cptr r_info_flags8[] =
+static concptr r_info_flags8[] =
 {
        "WILD_ONLY",
        "WILD_TOWN",
@@ -674,7 +676,7 @@ static cptr r_info_flags8[] =
  * モンスター特性トークンの定義9 /
  * Monster race flags
  */
-static cptr r_info_flags9[] =
+static concptr r_info_flags9[] =
 {
        "DROP_CORPSE",
        "DROP_SKELETON",
@@ -716,7 +718,7 @@ static cptr r_info_flags9[] =
  * モンスター特性トークンの定義R(耐性) /
  * Monster race flags
  */
-static cptr r_info_flagsr[] =
+static concptr r_info_flagsr[] =
 {
        "IM_ACID",
        "IM_ELEC",
@@ -757,7 +759,7 @@ static cptr r_info_flagsr[] =
  * オブジェクト基本特性トークンの定義 /
  * Object flags
  */
-static cptr k_info_flags[] =
+static concptr k_info_flags[] =
 {
        "STR",
        "INT",
@@ -908,7 +910,7 @@ static cptr k_info_flags[] =
  * オブジェクト生成特性トークンの定義 /
  * Object flags
  */
-static cptr k_info_gen_flags[] =
+static concptr k_info_gen_flags[] =
 {
        "INSTA_ART",
        "QUESTITEM",
@@ -948,7 +950,7 @@ static cptr k_info_gen_flags[] =
  * ダンジョン特性トークンの定義 /
  * Dungeon flags
  */
-static cptr d_info_flags1[] =
+static concptr d_info_flags1[] =
 {
        "WINNER",
        "MAZE",
@@ -963,8 +965,8 @@ static cptr d_info_flags1[] =
        "CAVE",
        "CAVERN",
        "ARCADE",
-       "XXX",
-       "XXX",
+       "LAKE_ACID",
+       "LAKE_POISONOUS",
        "XXX",
        "FORGET",
        "LAKE_WATER",
@@ -980,8 +982,8 @@ static cptr d_info_flags1[] =
        "NO_MELEE",
        "CHAMELEON",
        "DARKNESS",
-       "XXX",
-       "XXX"
+       "ACID_RIVER",
+       "POISONOUS_RIVER"
 };
 
 
@@ -997,7 +999,7 @@ static cptr d_info_flags1[] =
  * Returns FALSE when there isn't enough space available to store
  * the text.
  */
-static bool add_text(u32b *offset, header *head, cptr buf, bool normal_text)
+static bool add_text(u32b *offset, header *head, concptr buf, bool normal_text)
 {
        /* Hack -- Verify space */
        if (head->text_size + strlen(buf) + 8 > FAKE_TEXT_SIZE)
@@ -1059,7 +1061,7 @@ static bool add_text(u32b *offset, header *head, cptr buf, bool normal_text)
  * Returns FALSE when there isn't enough space available to store
  * the text.
  */
-static bool add_name(u32b *offset, header *head, cptr buf)
+static bool add_name(u32b *offset, header *head, concptr buf)
 {
        /* Hack -- Verify space */
        if (head->name_size + strlen(buf) + 8 > FAKE_NAME_SIZE)
@@ -1094,7 +1096,7 @@ static bool add_name(u32b *offset, header *head, cptr buf)
  * Returns FALSE when there isn't enough space available to store
  * the text.
  */
-static bool add_tag(STR_OFFSET *offset, header *head, cptr buf)
+static bool add_tag(STR_OFFSET *offset, header *head, concptr buf)
 {
        u32b i;
 
@@ -1177,8 +1179,7 @@ byte color_char_to_attr(char c)
  * @param parse_info_txt_line パース関数
  * @return エラーコード
  */
-errr init_info_txt(FILE *fp, char *buf, header *head,
-                  parse_info_txt_func parse_info_txt_line)
+errr init_info_txt(FILE *fp, char *buf, header *head, parse_info_txt_func parse_info_txt_line)
 {
        errr err;
 
@@ -1318,7 +1319,6 @@ errr parse_v_info(char *buf, header *head)
                v_ptr->wid = (POSITION)wid;
        }
 
-       /* Oops */
        else    return (6);
 
        /* Success */
@@ -1403,7 +1403,6 @@ errr parse_s_info(char *buf, header *head)
        }
 
 
-       /* Oops */
        else return (6);
 
        /* Success */
@@ -1535,7 +1534,6 @@ errr parse_m_info(char *buf, header *head)
        }
 
 
-       /* Oops */
        else return (6);
 
        /* Success */
@@ -1551,7 +1549,7 @@ errr parse_m_info(char *buf, header *head)
  * @param what 参照元の文字列ポインタ
  * @return エラーコード
  */
-static errr grab_one_flag(u32b *flags, cptr names[], cptr what)
+static errr grab_one_flag(u32b *flags, concptr names[], concptr what)
 {
        int i;
 
@@ -1576,7 +1574,7 @@ static errr grab_one_flag(u32b *flags, cptr names[], cptr what)
  * @param what 参照元の文字列ポインタ
  * @return エラーコード
  */
-static errr grab_one_feat_flag(feature_type *f_ptr, cptr what)
+static errr grab_one_feat_flag(feature_type *f_ptr, concptr what)
 {
        int i;
 
@@ -1590,7 +1588,6 @@ static errr grab_one_feat_flag(feature_type *f_ptr, cptr what)
                }
        }
 
-       /* Oops */
        msg_format(_("未知の地形フラグ '%s'。", "Unknown feature flag '%s'."), what);
 
        /* Error */
@@ -1606,7 +1603,7 @@ static errr grab_one_feat_flag(feature_type *f_ptr, cptr what)
  * @param count ステートの保存先ID
  * @return エラーコード
  */
-static errr grab_one_feat_action(feature_type *f_ptr, cptr what, int count)
+static errr grab_one_feat_action(feature_type *f_ptr, concptr what, int count)
 {
        FF_FLAGS_IDX i;
 
@@ -1620,7 +1617,6 @@ static errr grab_one_feat_action(feature_type *f_ptr, cptr what, int count)
                }
        }
 
-       /* Oops */
        msg_format(_("未知の地形アクション '%s'。", "Unknown feature action '%s'."), what);
 
        /* Error */
@@ -1822,7 +1818,7 @@ errr parse_f_info(char *buf, header *head)
                                while (*t == ' ' || *t == '|') t++;
                        }
 
-                       /* XXX XXX XXX Hack -- Read feature subtype */
+                       /* Hack -- Read feature subtype */
                        if (1 == sscanf(s, "SUBTYPE_%d", &i))
                        {
                                /* Extract a "subtype" */
@@ -1831,11 +1827,10 @@ errr parse_f_info(char *buf, header *head)
                                /* Start at next entry */
                                s = t;
 
-                               /* Continue */
                                continue;
                        }
 
-                       /* XXX XXX XXX Hack -- Read feature power */
+                       /* Hack -- Read feature power */
                        if (1 == sscanf(s, "POWER_%d", &i))
                        {
                                /* Extract a "power" */
@@ -1843,8 +1838,6 @@ errr parse_f_info(char *buf, header *head)
 
                                /* Start at next entry */
                                s = t;
-
-                               /* Continue */
                                continue;
                        }
 
@@ -1908,7 +1901,6 @@ errr parse_f_info(char *buf, header *head)
                }
        }
 
-       /* Oops */
        else return (6);
 
        /* Success */
@@ -1922,7 +1914,7 @@ errr parse_f_info(char *buf, header *head)
  * @param str タグ文字列
  * @return 地形ID
  */
-s16b f_tag_to_index(cptr str)
+s16b f_tag_to_index(concptr str)
 {
        u16b i;
 
@@ -2009,7 +2001,7 @@ void retouch_f_info(header *head)
  * @param what 参照元の文字列ポインタ
  * @return エラーコード
  */
-static errr grab_one_kind_flag(object_kind *k_ptr, cptr what)
+static errr grab_one_kind_flag(object_kind *k_ptr, concptr what)
 {
        int i;
 
@@ -2026,7 +2018,6 @@ static errr grab_one_kind_flag(object_kind *k_ptr, cptr what)
        if (grab_one_flag(&k_ptr->gen_flags, k_info_gen_flags, what) == 0)
                return 0;
 
-       /* Oops */
        msg_format(_("未知のアイテム・フラグ '%s'。", "Unknown object flag '%s'."), what);
 
        /* Error */
@@ -2039,7 +2030,7 @@ static errr grab_one_kind_flag(object_kind *k_ptr, cptr what)
  * @param what 参照元の文字列ポインタ
  * @return 発動能力ID
  */
-static byte grab_one_activation_flag(cptr what)
+static byte grab_one_activation_flag(concptr what)
 {
        int i;
 
@@ -2059,7 +2050,6 @@ static byte grab_one_activation_flag(cptr what)
                 return ((byte) i);
         }
 
-       /* Oops */
        msg_format(_("未知の発動・フラグ '%s'。", "Unknown activation flag '%s'."), what);
 
        /* Error */
@@ -2255,7 +2245,7 @@ errr parse_k_info(char *buf, header *head)
        else if (buf[0] == 'A')
        {
 
-               /* XXX XXX XXX Simply read each number following a colon */
+               /* Simply read each number following a colon */
                for (i = 0, s = buf+1; s && (s[0] == ':') && s[1]; ++i)
                {
                                /* Default chance */
@@ -2336,7 +2326,6 @@ errr parse_k_info(char *buf, header *head)
        }
 
 
-       /* Oops */
        else return (6);
 
 
@@ -2351,7 +2340,7 @@ errr parse_k_info(char *buf, header *head)
  * @param what 参照元の文字列ポインタ
  * @return エラーがあった場合1、エラーがない場合0を返す
  */
-static errr grab_one_artifact_flag(artifact_type *a_ptr, cptr what)
+static errr grab_one_artifact_flag(artifact_type *a_ptr, concptr what)
 {
        int i;
 
@@ -2368,7 +2357,6 @@ static errr grab_one_artifact_flag(artifact_type *a_ptr, cptr what)
        if (grab_one_flag(&a_ptr->gen_flags, k_info_gen_flags, what) == 0)
                return 0;
 
-       /* Oops */
        msg_format(_("未知の伝説のアイテム・フラグ '%s'。", "Unknown artifact flag '%s'."), what);
 
        /* Error */
@@ -2565,7 +2553,6 @@ errr parse_a_info(char *buf, header *head)
        }
 
 
-       /* Oops */
        else return (6);
 
 
@@ -2581,7 +2568,7 @@ errr parse_a_info(char *buf, header *head)
  * @param what 参照元の文字列ポインタ
  * @return エラーがあった場合1、エラーがない場合0を返す
  */
-static bool grab_one_ego_item_flag(ego_item_type *e_ptr, cptr what)
+static bool grab_one_ego_item_flag(ego_item_type *e_ptr, concptr what)
 {
        int i;
 
@@ -2598,7 +2585,6 @@ static bool grab_one_ego_item_flag(ego_item_type *e_ptr, cptr what)
        if (grab_one_flag(&e_ptr->gen_flags, k_info_gen_flags, what) == 0)
                return 0;
 
-       /* Oops */
        msg_format(_("未知の名のあるアイテム・フラグ '%s'。", "Unknown ego-item flag '%s'."), what);
 
        /* Error */
@@ -2616,27 +2602,24 @@ static bool grab_one_ego_item_flag(ego_item_type *e_ptr, cptr what)
 errr parse_e_info(char *buf, header *head)
 {
        int i;
-
        char *s, *t;
 
        /* Current entry */
        static ego_item_type *e_ptr = NULL;
 
-
        /* Just before the first record */
        error_idx = -1;
 
        /* Just before the first line */
        error_line = -1;
 
-
        /* Process 'N' for "New/Number/Name" */
        if (buf[0] == 'N')
        {
                /* Find the colon before the name */
                s = my_strchr(buf+2, ':');
 
-                       /* Verify that colon */
+               /* Verify that colon */
                if (!s) return (1);
 
                /* Nuke the colon, advance to the name */
@@ -2785,7 +2768,6 @@ errr parse_e_info(char *buf, header *head)
                }
        }
 
-       /* Oops */
        else return (6);
 
        /* Success */
@@ -2800,7 +2782,7 @@ errr parse_e_info(char *buf, header *head)
  * @param what 参照元の文字列ポインタ
  * @return エラーコード
  */
-static errr grab_one_basic_flag(monster_race *r_ptr, cptr what)
+static errr grab_one_basic_flag(monster_race *r_ptr, concptr what)
 {
        if (grab_one_flag(&r_ptr->flags1, r_info_flags1, what) == 0)
                return 0;
@@ -2823,7 +2805,6 @@ static errr grab_one_basic_flag(monster_race *r_ptr, cptr what)
        if (grab_one_flag(&r_ptr->flagsr, r_info_flagsr, what) == 0)
                return 0;
 
-       /* Oops */
        msg_format(_("未知のモンスター・フラグ '%s'。", "Unknown monster flag '%s'."), what);
 
        /* Failure */
@@ -2838,7 +2819,7 @@ static errr grab_one_basic_flag(monster_race *r_ptr, cptr what)
  * @param what 参照元の文字列ポインタ
  * @return エラーコード
  */
-static errr grab_one_spell_flag(monster_race *r_ptr, cptr what)
+static errr grab_one_spell_flag(monster_race *r_ptr, concptr what)
 {
        if (grab_one_flag(&r_ptr->flags4, r_info_flags4, what) == 0)
                return 0;
@@ -2849,7 +2830,6 @@ static errr grab_one_spell_flag(monster_race *r_ptr, cptr what)
        if (grab_one_flag(&r_ptr->a_ability_flags2, r_a_ability_flags2, what) == 0)
                return 0;
 
-       /* Oops */
        msg_format(_("未知のモンスター・フラグ '%s'。", "Unknown monster flag '%s'."), what);
 
        /* Failure */
@@ -2867,7 +2847,6 @@ static errr grab_one_spell_flag(monster_race *r_ptr, cptr what)
 errr parse_r_info(char *buf, header *head)
 {
        int i;
-
        char *s, *t;
 
        /* Current entry */
@@ -3023,7 +3002,7 @@ errr parse_r_info(char *buf, header *head)
        {
                int id, ds, dd;
                /* Find the next empty blow slot (if any) */
-               for (i = 0; i < 6; i++) if (r_ptr->reinforce_id[i] == 0) break;
+               for (i = 0; i < A_MAX; i++) if (r_ptr->reinforce_id[i] == 0) break;
 
                /* Oops, no more slots */
                if (i == 6) return (1);
@@ -3133,7 +3112,7 @@ errr parse_r_info(char *buf, header *head)
                                while ((*t == ' ') || (*t == '|')) t++;
                        }
 
-                               /* XXX XXX XXX Hack -- Read spell frequency */
+                               /* Hack -- Read spell frequency */
                        if (1 == sscanf(s, "1_IN_%d", &i))
                        {
                                /* Extract a "frequency" */
@@ -3141,8 +3120,6 @@ errr parse_r_info(char *buf, header *head)
 
                                        /* Start at next entry */
                                s = t;
-
-                               /* Continue */
                                continue;
                        }
 
@@ -3179,7 +3156,6 @@ errr parse_r_info(char *buf, header *head)
                r_ptr->arena_ratio = (PERCENTAGE)val;
        }
 
-       /* Oops */
        else return (6);
 
 
@@ -3195,12 +3171,11 @@ errr parse_r_info(char *buf, header *head)
  * @param what 参照元の文字列ポインタ
  * @return エラーコード
  */
-static errr grab_one_dungeon_flag(dungeon_info_type *d_ptr, cptr what)
+static errr grab_one_dungeon_flag(dungeon_info_type *d_ptr, concptr what)
 {
        if (grab_one_flag(&d_ptr->flags1, d_info_flags1, what) == 0)
                return 0;
 
-       /* Oops */
        msg_format(_("未知のダンジョン・フラグ '%s'。", "Unknown dungeon type flag '%s'."), what);
 
        /* Failure */
@@ -3214,7 +3189,7 @@ static errr grab_one_dungeon_flag(dungeon_info_type *d_ptr, cptr what)
  * @param what 参照元の文字列ポインタ
  * @return エラーコード
  */
-static errr grab_one_basic_monster_flag(dungeon_info_type *d_ptr, cptr what)
+static errr grab_one_basic_monster_flag(dungeon_info_type *d_ptr, concptr what)
 {
        if (grab_one_flag(&d_ptr->mflags1, r_info_flags1, what) == 0)
                return 0;
@@ -3237,7 +3212,6 @@ static errr grab_one_basic_monster_flag(dungeon_info_type *d_ptr, cptr what)
        if (grab_one_flag(&d_ptr->mflagsr, r_info_flagsr, what) == 0)
                return 0;
 
-       /* Oops */
        msg_format(_("未知のモンスター・フラグ '%s'。", "Unknown monster flag '%s'."), what);
        /* Failure */
        return (1);
@@ -3251,7 +3225,7 @@ static errr grab_one_basic_monster_flag(dungeon_info_type *d_ptr, cptr what)
  * @param what 参照元の文字列ポインタ
  * @return エラーコード
  */
-static errr grab_one_spell_monster_flag(dungeon_info_type *d_ptr, cptr what)
+static errr grab_one_spell_monster_flag(dungeon_info_type *d_ptr, concptr what)
 {
        if (grab_one_flag(&d_ptr->mflags4, r_info_flags4, what) == 0)
                return 0;
@@ -3262,7 +3236,6 @@ static errr grab_one_spell_monster_flag(dungeon_info_type *d_ptr, cptr what)
        if (grab_one_flag(&d_ptr->m_a_ability_flags2, r_a_ability_flags2, what) == 0)
                return 0;
 
-       /* Oops */
        msg_format(_("未知のモンスター・フラグ '%s'。", "Unknown monster flag '%s'."), what);
 
        /* Failure */
@@ -3279,13 +3252,11 @@ static errr grab_one_spell_monster_flag(dungeon_info_type *d_ptr, cptr what)
 errr parse_d_info(char *buf, header *head)
 {
        int i;
-
        char *s, *t;
 
        /* Current entry */
        static dungeon_info_type *d_ptr = NULL;
 
-
        /* Process 'N' for "New/Number/Name" */
        if (buf[0] == 'N')
        {
@@ -3459,7 +3430,7 @@ errr parse_d_info(char *buf, header *head)
                                while (*t == ' ' || *t == '|') t++;
                        }
 
-                       /* XXX XXX XXX Hack -- Read Final Artifact */
+                       /* Hack -- Read Final Artifact */
                        if (1 == sscanf(s, "FINAL_ARTIFACT_%d", &artif))
                        {
                                /* Extract a "Final Artifact" */
@@ -3467,12 +3438,10 @@ errr parse_d_info(char *buf, header *head)
 
                                /* Start at next entry */
                                s = t;
-
-                               /* Continue */
                                continue;
                        }
 
-                       /* XXX XXX XXX Hack -- Read Final Object */
+                       /* Hack -- Read Final Object */
                        if (1 == sscanf(s, "FINAL_OBJECT_%d", &artif))
                        {
                                /* Extract a "Final Artifact" */
@@ -3480,12 +3449,10 @@ errr parse_d_info(char *buf, header *head)
 
                                /* Start at next entry */
                                s = t;
-
-                               /* Continue */
                                continue;
                        }
 
-                       /* XXX XXX XXX Hack -- Read Artifact Guardian */
+                       /* Hack -- Read Artifact Guardian */
                        if (1 == sscanf(s, "FINAL_GUARDIAN_%d", &monst))
                        {
                                /* Extract a "Artifact Guardian" */
@@ -3493,12 +3460,10 @@ errr parse_d_info(char *buf, header *head)
 
                                /* Start at next entry */
                                s = t;
-
-                               /* Continue */
                                continue;
                        }
 
-                       /* XXX XXX XXX Hack -- Read Special Percentage */
+                       /* Hack -- Read Special Percentage */
                        if (1 == sscanf(s, "MONSTER_DIV_%d", &monst))
                        {
                                /* Extract a "Special %" */
@@ -3506,8 +3471,6 @@ errr parse_d_info(char *buf, header *head)
 
                                /* Start at next entry */
                                s = t;
-
-                               /* Continue */
                                continue;
                        }
 
@@ -3546,8 +3509,6 @@ errr parse_d_info(char *buf, header *head)
 
                                /* Start at next entry */
                                s = t;
-
-                               /* Continue */
                                continue;
                        }
 
@@ -3575,13 +3536,11 @@ errr parse_d_info(char *buf, header *head)
                                while ((*t == ' ') || (*t == '|')) t++;
                        }
 
-                               /* XXX XXX XXX Hack -- Read spell frequency */
+                               /* Hack -- Read spell frequency */
                        if (1 == sscanf(s, "1_IN_%d", &i))
                        {
                                /* Start at next entry */
                                s = t;
-
-                                       /* Continue */
                                continue;
                        }
 
@@ -3593,7 +3552,6 @@ errr parse_d_info(char *buf, header *head)
                }
        }
 
-       /* Oops */
        else return (6);
 
        /* Success */
@@ -3632,7 +3590,7 @@ struct dungeon_grid
        IDX trap;                       /* Trap */
        BIT_FLAGS cave_info;            /* Flags for CAVE_MARK, CAVE_GLOW, CAVE_ICKY, CAVE_ROOM */
        s16b special; /* Reserved for special terrain info */
-       int             random;                 /* Number of the random effect */
+       int random;                     /* Number of the random effect */
 };
 
 
@@ -3650,7 +3608,6 @@ static errr parse_line_feature(char *buf)
        int num;
        char *zz[9];
 
-
        if (init_flags & INIT_ONLY_BUILDINGS) return (0);
 
        /* Tokenize the line */
@@ -3797,7 +3754,7 @@ static errr parse_line_feature(char *buf)
 static errr parse_line_building(char *buf)
 {
        int i;
-       char *zz[37];
+       char *zz[1000];
        int index;
        char *s;
 
@@ -3883,49 +3840,37 @@ static errr parse_line_building(char *buf)
                /* Building Classes */
                case 'C':
                {
-                       if (tokenize(s + 2, MAX_CLASS, zz, 0) == MAX_CLASS)
-                       {
-                               for (i = 0; i < MAX_CLASS; i++)
-                               {
-                                       building[index].member_class[i] = (CLASS_IDX)atoi(zz[i]);
-                               }
-
-                               break;
+                       int n;
+                       n = tokenize(s + 2, MAX_CLASS, zz, 0);
+                       for (i = 0; i < MAX_CLASS; i++)
+                       {       
+                               building[index].member_class[i] = ((i < n) ? (CLASS_IDX)atoi(zz[i]) : 1);
                        }
-
-                       return (PARSE_ERROR_TOO_FEW_ARGUMENTS);
+                       break;
                }
 
                /* Building Races */
                case 'R':
                {
-                       if (tokenize(s+2, MAX_RACES, zz, 0) == MAX_RACES)
+                       int n;
+                       n = tokenize(s + 2, MAX_RACES, zz, 0);
+                       for (i = 0; i < MAX_RACES; i++)
                        {
-                               for (i = 0; i < MAX_RACES; i++)
-                               {
-                                       building[index].member_race[i] = (RACE_IDX)atoi(zz[i]);
-                               }
-
-                               break;
+                               building[index].member_race[i] = ((i < n) ? (RACE_IDX)atoi(zz[i]) : 1);
                        }
-
-                       return (PARSE_ERROR_TOO_FEW_ARGUMENTS);
+                       break;
                }
 
                /* Building Realms */
                case 'M':
                {
-                       if (tokenize(s+2, MAX_MAGIC, zz, 0) == MAX_MAGIC)
+                       int n;
+                       n = tokenize(s + 2, MAX_MAGIC, zz, 0);
+                       for (i = 0; i < MAX_MAGIC; i++)
                        {
-                               for (i = 0; i < MAX_MAGIC; i++)
-                               {
-                                       building[index].member_realm[i+1] = (REALM_IDX)atoi(zz[i]);
-                               }
-
-                               break;
+                               building[index].member_realm[i+1] = ((i < n) ? (REALM_IDX)atoi(zz[i]) : 1);
                        }
-
-                       return (PARSE_ERROR_TOO_FEW_ARGUMENTS);
+                       break;
                }
 
                case 'Z':
@@ -3957,7 +3902,6 @@ static void drop_here(object_type *j_ptr, POSITION y, POSITION x)
        cave_type *c_ptr = &cave[y][x];
        object_type *o_ptr;
 
-       /* Get new object */
        OBJECT_IDX o_idx = o_pop();
 
        /* Access new object */
@@ -3966,7 +3910,6 @@ static void drop_here(object_type *j_ptr, POSITION y, POSITION x)
        /* Structure copy */
        object_copy(o_ptr, j_ptr);
 
-
        /* Locate */
        o_ptr->iy = y;
        o_ptr->ix = x;
@@ -3997,10 +3940,8 @@ static void drop_here(object_type *j_ptr, POSITION y, POSITION x)
 static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, int xmax, int *y, int *x)
 {
        int i;
-
        char *zz[33];
 
-
        /* Skip "empty" lines */
        if (!buf[0]) return (0);
 
@@ -4042,15 +3983,14 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in
 
                for (*x = xmin, i = 0; ((*x < xmax) && (i < len)); (*x)++, s++, i++)
                {
-                       /* Access the grid */
                        cave_type *c_ptr = &cave[*y][*x];
 
                        int idx = s[0];
 
-                       IDX object_index = letter[idx].object;
-                       IDX monster_index = letter[idx].monster;
+                       OBJECT_IDX object_index = letter[idx].object;
+                       MONSTER_IDX monster_index = letter[idx].monster;
                        int random = letter[idx].random;
-                       IDX artifact_index = letter[idx].artifact;
+                       ARTIFACT_IDX artifact_index = letter[idx].artifact;
 
                        /* Lay down a floor */
                        c_ptr->feat = conv_dungeon_feat(letter[idx].feature);
@@ -4160,10 +4100,7 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in
                        }
                        else if (object_index)
                        {
-                               /* Get local object */
                                object_type *o_ptr = &object_type_body;
-
-                               /* Create the item */
                                object_prep(o_ptr, object_index);
 
                                if (o_ptr->tval == TV_GOLD)
@@ -4189,8 +4126,6 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in
                                        object_type *q_ptr = &forge;
 
                                        object_prep(q_ptr, k_idx);
-
-                                       /* Drop it in the dungeon */
                                        drop_here(q_ptr, *y, *x);
                                }
                                else
@@ -4349,7 +4284,7 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in
                                /* Place player in a quest level */
                                if (p_ptr->inside_quest)
                                {
-                                       int py, px;
+                                       POSITION py, px;
 
                                        /* Delete the monster (if any) */
                                        delete_monster(p_ptr->y, p_ptr->x);
@@ -4471,7 +4406,7 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in
 
 
 static char tmp[8];
-static cptr variant = "ZANGBAND";
+static concptr variant = "ZANGBAND";
 
 
 /*!
@@ -4481,9 +4416,9 @@ static cptr variant = "ZANGBAND";
  * @param fp
  * @return エラーコード
  */
-static cptr process_dungeon_file_expr(char **sp, char *fp)
+static concptr process_dungeon_file_expr(char **sp, char *fp)
 {
-       cptr v;
+       concptr v;
 
        char *b;
        char *s;
@@ -4508,8 +4443,8 @@ static cptr process_dungeon_file_expr(char **sp, char *fp)
        /* Analyze */
        if (*s == b1)
        {
-               const char *p;
-               const char *t;
+               concptr p;
+               concptr t;
 
                /* Skip b1 */
                s++;
@@ -4517,7 +4452,6 @@ static cptr process_dungeon_file_expr(char **sp, char *fp)
                /* First */
                t = process_dungeon_file_expr(&s, &f);
 
-               /* Oops */
                if (!*t)
                {
                        /* Nothing */
@@ -4605,7 +4539,6 @@ static cptr process_dungeon_file_expr(char **sp, char *fp)
                        }
                }
 
-               /* Oops */
                else
                {
                        while (*s && (f != b2))
@@ -4786,11 +4719,7 @@ static cptr process_dungeon_file_expr(char **sp, char *fp)
 
        /* Save */
        (*fp) = f;
-
-       /* Save */
        (*sp) = s;
-
-       /* Result */
        return (v);
 }
 
@@ -4805,7 +4734,7 @@ static cptr process_dungeon_file_expr(char **sp, char *fp)
  * @param xmax 詳細不明
  * @return エラーコード
  */
-errr process_dungeon_file(cptr name, int ymin, int xmin, int ymax, int xmax)
+errr process_dungeon_file(concptr name, int ymin, int xmin, int ymax, int xmax)
 {
        FILE *fp;
        char buf[1024];
@@ -4846,7 +4775,7 @@ errr process_dungeon_file(cptr name, int ymin, int xmin, int ymax, int xmax)
                if ((buf[0] == '?') && (buf[1] == ':'))
                {
                        char f;
-                       cptr v;
+                       concptr v;
                        char *s;
 
                        /* Start */
@@ -4857,8 +4786,6 @@ errr process_dungeon_file(cptr name, int ymin, int xmin, int ymax, int xmax)
 
                        /* Set flag */
                        bypass = (streq(v, "0") ? TRUE : FALSE);
-
-                       /* Continue */
                        continue;
                }
 
@@ -4868,30 +4795,24 @@ errr process_dungeon_file(cptr name, int ymin, int xmin, int ymax, int xmax)
                /* Process the line */
                err = process_dungeon_file_aux(buf, ymin, xmin, ymax, xmax, &y, &x);
 
-               /* Oops */
                if (err) break;
        }
 
        /* Errors */
        if (err)
        {
-               cptr oops;
+               concptr oops;
 
                /* Error string */
                oops = (((err > 0) && (err < PARSE_ERROR_MAX)) ? err_str[err] : "unknown");
 
-               /* Oops */
                msg_format("Error %d (%s) at line %d of '%s'.", err, oops, num, name);
                msg_format(_("'%s'を解析中。", "Parsing '%s'."), buf);
 
                msg_print(NULL);
        }
 
-
-       /* Close the file */
        my_fclose(fp);
-
-       /* Result */
        return (err);
 }
 
@@ -4903,10 +4824,10 @@ void write_r_info_txt(void)
        int i, j, z, fc, bc;
        int dlen;
 
-       cptr flags[32 * 10];
+       concptr flags[32 * 10];
 
        u32b f_ptr[10];
-       cptr *n_ptr[10];
+       concptr *n_ptr[10];
 
        monster_race *r_ptr;
 
@@ -4914,7 +4835,7 @@ void write_r_info_txt(void)
 
        FILE *fff = fopen("output.txt", "wt");
 
-       cptr desc;
+       concptr desc;
 
        BIT_FLAGS mode = -1;
 
@@ -5000,8 +4921,6 @@ void write_r_info_txt(void)
                                                                                                          r_info_blow_effect[b_ptr->effect],
                                                                                                          b_ptr->d_dice, b_ptr->d_side);
                }
-
-               /* Extract the flags */
                for (fc = 0, j = 0; j < 32 * 3; j++)
                {
                        /* Check this flag */
@@ -5111,7 +5030,6 @@ void write_r_info_txt(void)
                fprintf(fff, "\n");
        }
 
-       /* Done */
        fclose(fff);
 }