OSDN Git Service

Weaponsmiths can drain lite essence according to lite radius of draining objects
[hengband/hengband.git] / src / save.c
index e5f72a1..6f5f77d 100644 (file)
@@ -112,6 +112,7 @@ static void wr_item(object_type *o_ptr)
        if (o_ptr->art_flags[1]) flags |= SAVE_ITEM_ART_FLAGS1;
        if (o_ptr->art_flags[2]) flags |= SAVE_ITEM_ART_FLAGS2;
        if (o_ptr->art_flags[3]) flags |= SAVE_ITEM_ART_FLAGS3;
+       if (o_ptr->art_flags[4]) flags |= SAVE_ITEM_ART_FLAGS4;
        if (o_ptr->curse_flags) flags |= SAVE_ITEM_CURSE_FLAGS;
        if (o_ptr->held_m_idx) flags |= SAVE_ITEM_HELD_M_IDX;
        if (o_ptr->xtra1) flags |= SAVE_ITEM_XTRA1;
@@ -159,6 +160,7 @@ static void wr_item(object_type *o_ptr)
        if (flags & SAVE_ITEM_ART_FLAGS1) wr_u32b(o_ptr->art_flags[1]);
        if (flags & SAVE_ITEM_ART_FLAGS2) wr_u32b(o_ptr->art_flags[2]);
        if (flags & SAVE_ITEM_ART_FLAGS3) wr_u32b(o_ptr->art_flags[3]);
+       if (flags & SAVE_ITEM_ART_FLAGS4) wr_u32b(o_ptr->art_flags[4]);
 
        if (flags & SAVE_ITEM_CURSE_FLAGS) wr_u32b(o_ptr->curse_flags);
 
@@ -1335,26 +1337,28 @@ static bool wr_savefile_new(void)
 
        for (i = 0; i < max_quests; i++)
        {
+               quest_type* const q_ptr = &quest[i];
+
                /* Save status for every quest */
-               wr_s16b(quest[i].status);
+               wr_s16b(q_ptr->status);
 
                /* And the dungeon level too */
                /* (prevents problems with multi-level quests) */
-               wr_s16b(quest[i].level);
+               wr_s16b(q_ptr->level);
 
-               wr_byte(quest[i].complev);
-               wr_u32b(quest[i].comptime);
+               wr_byte(q_ptr->complev);
+               wr_u32b(q_ptr->comptime);
 
                /* Save quest status if quest is running */
-               if (quest[i].status == QUEST_STATUS_TAKEN || quest[i].status == QUEST_STATUS_COMPLETED || !is_fixed_quest_idx(i))
+               if (q_ptr->status == QUEST_STATUS_TAKEN || q_ptr->status == QUEST_STATUS_COMPLETED || !is_fixed_quest_idx(i))
                {
-                       wr_s16b(quest[i].cur_num);
-                       wr_s16b(quest[i].max_num);
-                       wr_s16b(quest[i].type);
-                       wr_s16b(quest[i].r_idx);
-                       wr_s16b(quest[i].k_idx);
-                       wr_byte(quest[i].flags);
-                       wr_byte(quest[i].dungeon);
+                       wr_s16b(q_ptr->cur_num);
+                       wr_s16b(q_ptr->max_num);
+                       wr_s16b(q_ptr->type);
+                       wr_s16b(q_ptr->r_idx);
+                       wr_s16b(q_ptr->k_idx);
+                       wr_byte(q_ptr->flags);
+                       wr_byte(q_ptr->dungeon);
                }
        }