OSDN Git Service

[Refactor] #40532 Separated write_monster_flags() from wr_monster()
authorHourier <hourier@users.sourceforge.jp>
Sat, 18 Jul 2020 06:21:15 +0000 (15:21 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sat, 18 Jul 2020 06:21:27 +0000 (15:21 +0900)
src/save/monster-writer.c

index f6f71f3..ffc68f1 100644 (file)
@@ -7,64 +7,68 @@
 #include "system/monster-type-definition.h"
 #include "util/quarks.h"
 
-/*!
- * @brief モンスター情報を書き込む / Write a "monster" record
- * @param m_ptr モンスター情報保存元ポインタ
- * @return なし
- */
-void wr_monster(monster_type *m_ptr)
+static void write_monster_flags(monster_type *m_ptr, BIT_FLAGS *flags)
 {
-    BIT_FLAGS flags = 0x00000000;
     if (!is_original_ap(m_ptr))
-        flags |= SAVE_MON_AP_R_IDX;
+        *flags |= SAVE_MON_AP_R_IDX;
 
     if (m_ptr->sub_align)
-        flags |= SAVE_MON_SUB_ALIGN;
+        *flags |= SAVE_MON_SUB_ALIGN;
 
     if (monster_csleep_remaining(m_ptr))
-        flags |= SAVE_MON_CSLEEP;
+        *flags |= SAVE_MON_CSLEEP;
 
     if (monster_fast_remaining(m_ptr))
-        flags |= SAVE_MON_FAST;
+        *flags |= SAVE_MON_FAST;
 
     if (monster_slow_remaining(m_ptr))
-        flags |= SAVE_MON_SLOW;
+        *flags |= SAVE_MON_SLOW;
 
     if (monster_stunned_remaining(m_ptr))
-        flags |= SAVE_MON_STUNNED;
+        *flags |= SAVE_MON_STUNNED;
 
     if (monster_confused_remaining(m_ptr))
-        flags |= SAVE_MON_CONFUSED;
+        *flags |= SAVE_MON_CONFUSED;
 
     if (monster_fear_remaining(m_ptr))
-        flags |= SAVE_MON_MONFEAR;
+        *flags |= SAVE_MON_MONFEAR;
 
     if (m_ptr->target_y)
-        flags |= SAVE_MON_TARGET_Y;
+        *flags |= SAVE_MON_TARGET_Y;
 
     if (m_ptr->target_x)
-        flags |= SAVE_MON_TARGET_X;
+        *flags |= SAVE_MON_TARGET_X;
 
     if (monster_invulner_remaining(m_ptr))
-        flags |= SAVE_MON_INVULNER;
+        *flags |= SAVE_MON_INVULNER;
 
     if (m_ptr->smart)
-        flags |= SAVE_MON_SMART;
+        *flags |= SAVE_MON_SMART;
 
     if (m_ptr->exp)
-        flags |= SAVE_MON_EXP;
+        *flags |= SAVE_MON_EXP;
 
     if (m_ptr->mflag2)
-        flags |= SAVE_MON_MFLAG2;
+        *flags |= SAVE_MON_MFLAG2;
 
     if (m_ptr->nickname)
-        flags |= SAVE_MON_NICKNAME;
+        *flags |= SAVE_MON_NICKNAME;
 
     if (m_ptr->parent_m_idx)
-        flags |= SAVE_MON_PARENT;
+        *flags |= SAVE_MON_PARENT;
+
+    wr_u32b(*flags);
+}
 
-    /*** Monster save flags ***/
-    wr_u32b(flags);
+/*!
+ * @brief モンスター情報を書き込む / Write a "monster" record
+ * @param m_ptr モンスター情報保存元ポインタ
+ * @return なし
+ */
+void wr_monster(monster_type *m_ptr)
+{
+    BIT_FLAGS flags = 0x00000000;
+    write_monster_flags();
 
     /*** Write only un-obvious elements ***/
     wr_s16b(m_ptr->r_idx);