OSDN Git Service

#37287 (2.2.0.89) C4706警告にエンバグを修正しつつ対応。 / Fix C4706 warning with correcting new bug.
[hengband/hengband.git] / src / load.c
index 910d685..f2396f6 100644 (file)
@@ -816,6 +816,7 @@ static void rd_monster_old(monster_type *m_ptr)
 {
        byte tmp8u;
        s16b tmp16s;
+       u32b tmp32u;
        char buf[128];
 
        /* Read the monster race */
@@ -925,7 +926,8 @@ static void rd_monster_old(monster_type *m_ptr)
        if (z_older_than(10, 4, 5))
                m_ptr->exp = 0;
        else
-               rd_u32b(&m_ptr->exp);
+               rd_u32b(&tmp32u);
+               m_ptr->exp = tmp32u;
 
        if (z_older_than(10, 2, 2))
        {
@@ -971,6 +973,7 @@ static void rd_monster(monster_type *m_ptr)
        char buf[128];
        byte tmp8u;
        s16b tmp16s;
+       u32b tmp32u;
 
        if (h_older_than(1, 5, 0, 0))
        {
@@ -1076,7 +1079,11 @@ static void rd_monster(monster_type *m_ptr)
        if (flags & SAVE_MON_SMART) rd_u32b(&m_ptr->smart);
        else m_ptr->smart = 0;
 
-       if (flags & SAVE_MON_EXP) rd_u32b(&m_ptr->exp);
+       if (flags & SAVE_MON_EXP)
+       {
+               rd_u32b(&tmp32u);
+               m_ptr->exp = (EXP)tmp32u;
+       }
        else m_ptr->exp = 0;
 
        m_ptr->mflag = 0; /* Not saved */
@@ -1145,7 +1152,7 @@ static void rd_monster(monster_type *m_ptr)
  * @param r_idx 読み込み先モンスターID
  * @return なし
  */
-static void rd_lore(IDX r_idx)
+static void rd_lore(MONRACE_IDX r_idx)
 {
        byte tmp8u;
 
@@ -1641,6 +1648,7 @@ static void rd_ghost(void)
 static void load_quick_start(void)
 {
        byte tmp8u;
+       s16b tmp16s;
        int i;
 
        if (z_older_than(11, 0, 13))
@@ -1653,8 +1661,10 @@ static void load_quick_start(void)
        rd_byte(&previous_char.prace);
        rd_byte(&previous_char.pclass);
        rd_byte(&previous_char.pseikaku);
-       rd_byte(&previous_char.realm1);
-       rd_byte(&previous_char.realm2);
+       rd_byte(&tmp8u);
+       previous_char.realm1 = (REALM_IDX)tmp8u;
+       rd_byte(&tmp8u);
+       previous_char.realm2 = (REALM_IDX)tmp8u;
 
        rd_s16b(&previous_char.age);
        rd_s16b(&previous_char.ht);
@@ -1665,7 +1675,11 @@ static void load_quick_start(void)
        for (i = 0; i < 6; i++) rd_s16b(&previous_char.stat_max[i]);
        for (i = 0; i < 6; i++) rd_s16b(&previous_char.stat_max_max[i]);
 
-       for (i = 0; i < PY_MAX_LEVEL; i++) rd_s16b(&previous_char.player_hp[i]);
+       for (i = 0; i < PY_MAX_LEVEL; i++)
+       {
+               rd_s16b(&tmp16s);
+               previous_char.player_hp[i] = (HIT_POINT)tmp16s;
+       }
 
        rd_s16b(&previous_char.chaos_patron);
 
@@ -1718,8 +1732,10 @@ static void rd_extra(void)
        rd_byte(&p_ptr->pclass);
        rd_byte(&p_ptr->pseikaku);
        rd_byte(&p_ptr->psex);
-       rd_byte(&p_ptr->realm1);
-       rd_byte(&p_ptr->realm2);
+       rd_byte(&tmp8u);
+       p_ptr->realm1 = (REALM_IDX)tmp8u;
+       rd_byte(&tmp8u);
+       p_ptr->realm2 = (REALM_IDX)tmp8u;
        rd_byte(&tmp8u); /* oops */
 
        if (z_older_than(10, 4, 4))
@@ -1848,8 +1864,10 @@ static void rd_extra(void)
        {
                for (i = 0; i < MAX_MANE; i++)
                {
-                       rd_s16b(&p_ptr->mane_spell[i]);
-                       rd_s16b(&p_ptr->mane_dam[i]);
+                       rd_s16b(&tmp16s);
+                       p_ptr->mane_spell[i] = (SPELL_IDX)tmp16s;
+                       rd_s16b(&tmp16s);
+                       p_ptr->mane_dam[i] = (SPELL_IDX)tmp16s;
                }
                rd_s16b(&p_ptr->mane_num);
        }
@@ -2323,7 +2341,6 @@ static void rd_extra(void)
        }
        else if (z_older_than(10, 3, 10))
        {
-               s32b tmp32s;
                rd_s32b(&tmp32s);
                p_ptr->visit = 1L;
        }
@@ -2543,9 +2560,9 @@ static errr rd_dungeon_old(void)
 
        rd_s16b(&num_repro);
        rd_s16b(&tmp16s);
-       p_ptr->y = (int)tmp16s;
+       p_ptr->y = (POSITION)tmp16s;
        rd_s16b(&tmp16s);
-       p_ptr->x = (int)tmp16s;
+       p_ptr->x = (POSITION)tmp16s;
        if (z_older_than(10, 3, 13) && !dun_level && !p_ptr->inside_arena) {p_ptr->y = 33;p_ptr->x = 131;}
        rd_s16b(&tmp16s);
        cur_hgt = (POSITION)tmp16s;
@@ -2883,7 +2900,7 @@ static errr rd_dungeon_old(void)
        /* Read the monsters */
        for (i = 1; i < limit; i++)
        {
-               IDX m_idx;
+               MONSTER_IDX m_idx;
                monster_type *m_ptr;
 
                /* Get a new record */
@@ -3191,7 +3208,7 @@ static errr rd_saved_floor(saved_floor_type *sf_ptr)
        for (i = 1; i < limit; i++)
        {
                cave_type *c_ptr;
-               IDX m_idx;
+               MONSTER_IDX m_idx;
                monster_type *m_ptr;
 
                /* Get a new record */
@@ -3234,6 +3251,7 @@ static errr rd_dungeon(void)
 {
        errr err = 0;
        s16b tmp16s;
+       byte_hack tmp8u;
        byte num;
        int i;
 
@@ -3262,8 +3280,8 @@ static errr rd_dungeon(void)
        rd_s16b(&max_floor_id);
 
        /* Current dungeon type */
-       rd_byte(&dungeon_type);
-
+       rd_byte(&tmp8u);
+       dungeon_type = (DUNGEON_IDX)tmp8u;
 
        /* Number of the saved_floors array elements */
        rd_byte(&num);
@@ -3301,7 +3319,6 @@ static errr rd_dungeon(void)
                for (i = 0; i < num; i++)
                {
                        saved_floor_type *sf_ptr = &saved_floors[i];
-                       byte tmp8u;
 
                        /* Unused element */
                        if (!sf_ptr->floor_id) continue;
@@ -3483,7 +3500,7 @@ static errr rd_savefile_new_aux(void)
        for (i = 0; i < tmp16u; i++)
        {
                /* Read the lore */
-               rd_lore(i);
+               rd_lore((MONRACE_IDX)i);
        }
 
        if (arg_fiddle) note(_("モンスターの思い出をロードしました", "Loaded Monster Memory"));
@@ -3562,7 +3579,8 @@ static errr rd_savefile_new_aux(void)
                                }
                                else
                                {
-                                       rd_byte(&q_ptr->complev);
+                                       rd_byte(&tmp8u);
+                                       q_ptr->complev = tmp8u;
                                }
                                if(h_older_than(2, 1, 2, 2))
                                {
@@ -3578,8 +3596,10 @@ static errr rd_savefile_new_aux(void)
                                    (!z_older_than(10, 3, 14) && (q_ptr->status == QUEST_STATUS_COMPLETED)) ||
                                    (!z_older_than(11, 0, 7) && (i >= MIN_RANDOM_QUEST) && (i <= (MIN_RANDOM_QUEST + max_rquests_load))))
                                {
-                                       rd_s16b(&q_ptr->cur_num);
-                                       rd_s16b(&q_ptr->max_num);
+                                       rd_s16b(&tmp16s);
+                                       q_ptr->cur_num = (MONSTER_NUMBER)tmp16s;
+                                       rd_s16b(&tmp16s);
+                                       q_ptr->max_num = (MONSTER_NUMBER)tmp16s;
                                        rd_s16b(&q_ptr->type);
 
                                        /* Load quest monster index */
@@ -3596,7 +3616,8 @@ static errr rd_savefile_new_aux(void)
                                        if (q_ptr->k_idx)
                                                a_info[q_ptr->k_idx].gen_flags |= TRG_QUESTITEM;
 
-                                       rd_byte(&q_ptr->flags);
+                                       rd_byte(&tmp8u);
+                                       q_ptr->flags = tmp8u;
 
                                        if (z_older_than(10, 3, 11))
                                        {
@@ -3607,7 +3628,7 @@ static errr rd_savefile_new_aux(void)
                                                else
                                                {
                                                        init_flags = INIT_ASSIGN;
-                                                       p_ptr->inside_quest = i;
+                                                       p_ptr->inside_quest = (QUEST_IDX)i;
 
                                                        process_dungeon_file("q_info.txt", 0, 0, 0, 0);
                                                        p_ptr->inside_quest = old_inside_quest;
@@ -3615,7 +3636,8 @@ static errr rd_savefile_new_aux(void)
                                        }
                                        else
                                        {
-                                               rd_byte(&q_ptr->dungeon);
+                                               rd_byte(&tmp8u);
+                                               q_ptr->dungeon = tmp8u;
                                        }
                                        /* Mark uniques */
                                        if (q_ptr->status == QUEST_STATUS_TAKEN || q_ptr->status == QUEST_STATUS_UNTAKEN)
@@ -3736,7 +3758,8 @@ static errr rd_savefile_new_aux(void)
        /* Read the player_hp array */
        for (i = 0; i < tmp16u; i++)
        {
-               rd_s16b(&p_ptr->player_hp[i]);
+               rd_s16b(&tmp16s);
+               p_ptr->player_hp[i] = (HIT_POINT)tmp16s;
        }
 
        /* Important -- Initialize the sex */
@@ -3805,7 +3828,8 @@ static errr rd_savefile_new_aux(void)
 
        for (i = 0; i < 64; i++)
        {
-               rd_byte(&p_ptr->spell_order[i]);
+               rd_byte(&tmp8u);
+               p_ptr->spell_order[i] = (SPELL_IDX)tmp8u;
        }