OSDN Git Service

[modify] #37914 (2.2.1.3) ブレス処理をfire_ball()からfire_breath()に分離。 / Separate fire_breath...
[hengband/hengband.git] / src / load.c
index 7384020..e24e9d9 100644 (file)
@@ -2478,6 +2478,7 @@ static void rd_messages(void)
 {
        int i;
        char buf[128];
+       int message_max;
 
 
        if (h_older_than(2, 2, 0, 75))
@@ -2485,9 +2486,10 @@ static void rd_messages(void)
                u16b num;
                /* Total */
                rd_u16b(&num);
+               message_max = (int)num;
 
                /* Read the messages */
-               for (i = 0; i < num; i++)
+               for (i = 0; i < message_max; i++)
                {
                        /* Read the message */
                        rd_string(buf, sizeof(buf));
@@ -2501,9 +2503,10 @@ static void rd_messages(void)
                u32b num;
                /* Total */
                rd_u32b(&num);
+               message_max = (int)num;
 
                /* Read the messages */
-               for (i = 0; i < num; i++)
+               for (i = 0; i < message_max; i++)
                {
                        /* Read the message */
                        rd_string(buf, sizeof(buf));
@@ -3063,7 +3066,8 @@ static errr rd_saved_floor(saved_floor_type *sf_ptr)
                cave_template_type *ct_ptr = &templates[i];
 
                /* Read it */
-               rd_u16b(&ct_ptr->info);
+               rd_u16b(&tmp16u);
+               ct_ptr->info = (BIT_FLAGS)tmp16u;
                if (h_older_than(1, 7, 0, 2))
                {
                        rd_byte(&tmp8u);
@@ -3324,7 +3328,8 @@ static errr rd_dungeon(void)
                        saved_floor_type *sf_ptr = &saved_floors[i];
 
                        rd_s16b(&sf_ptr->floor_id);
-                       rd_byte(&sf_ptr->savefile_id);
+                       rd_byte(&tmp8u);
+                       sf_ptr->savefile_id = (s16b)tmp8u;
 
                        rd_s16b(&tmp16s);
                        sf_ptr->dun_level = (DEPTH)tmp16s;
@@ -3578,7 +3583,7 @@ static errr rd_savefile_new_aux(void)
                }
 
                /* Incompatible save files */
-               if (max_quests_load > max_quests)
+               if (max_quests_load > max_q_idx)
                {
                        note(format(_("クエストが多すぎる(%u)!", "Too many (%u) quests!"), max_quests_load));
                        return (23);
@@ -3586,7 +3591,7 @@ static errr rd_savefile_new_aux(void)
 
                for (i = 0; i < max_quests_load; i++)
                {
-                       if (i < max_quests)
+                       if (i < max_q_idx)
                        {
                                quest_type* const q_ptr = &quest[i];
                                
@@ -3918,7 +3923,7 @@ static errr rd_savefile_new_aux(void)
 
        if (!z_older_than(11, 0, 9))
        {
-               char buf[SCREEN_BUF_SIZE];
+               char buf[SCREEN_BUF_MAX_SIZE];
                rd_string(buf, sizeof(buf));
                if (buf[0]) screen_dump = string_make(buf);
        }