OSDN Git Service

[Refactor] #40467 Separated item-loader.c/h from load.c/h
authorHourier <hourier@users.sourceforge.jp>
Sat, 4 Jul 2020 11:35:07 +0000 (20:35 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sat, 4 Jul 2020 11:35:07 +0000 (20:35 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/savedata/item-loader.c [new file with mode: 0644]
src/savedata/item-loader.h [new file with mode: 0644]
src/savedata/load.c
src/savedata/load.h
src/savedata/save.c
src/savedata/savedata-flag-types.h [new file with mode: 0644]

index 893a9d2..5e731ef 100644 (file)
     <ClCompile Include="..\..\src\object-hook\hook-armor.c" />\r
     <ClCompile Include="..\..\src\object-potion\quaff-execution.c" />\r
     <ClCompile Include="..\..\src\savedata\angband-version-comparer.c" />\r
+    <ClCompile Include="..\..\src\savedata\item-loader.c" />\r
     <ClCompile Include="..\..\src\savedata\load-util.c" />\r
     <ClCompile Include="..\..\src\savedata\load-v1-5-0.c" />\r
     <ClCompile Include="..\..\src\specific-object\death-crimson.c" />\r
     <ClInclude Include="..\..\src\object-hook\hook-weapon.h" />\r
     <ClInclude Include="..\..\src\object-potion\quaff-execution.h" />\r
     <ClInclude Include="..\..\src\savedata\angband-version-comparer.h" />\r
+    <ClInclude Include="..\..\src\savedata\item-loader.h" />\r
     <ClInclude Include="..\..\src\savedata\load-util.h" />\r
     <ClInclude Include="..\..\src\savedata\load-v1-5-0.h" />\r
     <ClInclude Include="..\..\src\savedata\old-feature-types.h" />\r
+    <ClInclude Include="..\..\src\savedata\savedata-flag-types.h" />\r
     <ClInclude Include="..\..\src\specific-object\death-crimson.h" />\r
     <ClInclude Include="..\..\src\spell-kind\blood-curse.h" />\r
     <ClInclude Include="..\..\src\spell-kind\spells-enchant.h" />\r
index f834a7c..5f59802 100644 (file)
     <ClCompile Include="..\..\src\savedata\load-v1-5-0.c">
       <Filter>savedata</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\savedata\item-loader.c">
+      <Filter>savedata</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\cmd\cmd-basic.h">
     <ClInclude Include="..\..\src\savedata\load-v1-5-0.h">
       <Filter>savedata</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\savedata\item-loader.h">
+      <Filter>savedata</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\savedata\savedata-flag-types.h">
+      <Filter>savedata</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
index d3ff19b..6ebbd92 100644 (file)
@@ -520,6 +520,7 @@ hengband_SOURCES = \
        room/pit-nest-kinds-table.c room/pit-nest-kinds-table.h \
        \
        savedata/angband-version-comparer.c savedata/angband-version-comparer.h \
+       savedata/item-loader.c savedata/item-loader.h \
        savedata/old-feature-types.h \
        savedata/load-util.c savedata/load-util.h \
        savedata/load-v1-5-0.c savedata/load-v1-5-0.h \
diff --git a/src/savedata/item-loader.c b/src/savedata/item-loader.c
new file mode 100644 (file)
index 0000000..61c9abf
--- /dev/null
@@ -0,0 +1,260 @@
+#include "savedata/item-loader.h"
+#include "art-definition/art-accessory-types.h"
+#include "object-enchant/object-ego.h"
+#include "object-enchant/tr-types.h"
+#include "object-hook/hook-enchant.h"
+#include "object/object-flags.h"
+#include "object/object-kind.h"
+#include "savedata/angband-version-comparer.h"
+#include "savedata/load-v1-5-0.h"
+#include "savedata/load-util.h"
+#include "savedata/savedata-flag-types.h"
+#include "sv-definition/sv-lite-types.h"
+#include "system/object-type-definition.h"
+#include "util/bit-flags-calculator.h"
+#include "util/quarks.h"
+
+/*!
+ * @brief アイテムオブジェクトを読み込む(現版) / Read an object (New method)
+ * @param o_ptr アイテムオブジェクト保存先ポインタ
+ * @return なし
+ */
+void rd_item(player_type *player_ptr, object_type *o_ptr)
+{
+    if (h_older_than(1, 5, 0, 0)) {
+        rd_item_old(player_ptr, o_ptr);
+        return;
+    }
+
+    BIT_FLAGS flags;
+    rd_u32b(&flags);
+    rd_s16b(&o_ptr->k_idx);
+
+    byte tmp8u;
+    rd_byte(&tmp8u);
+    o_ptr->iy = (POSITION)tmp8u;
+    rd_byte(&tmp8u);
+    o_ptr->ix = (POSITION)tmp8u;
+
+    object_kind *k_ptr;
+    k_ptr = &k_info[o_ptr->k_idx];
+    o_ptr->tval = k_ptr->tval;
+    o_ptr->sval = k_ptr->sval;
+
+    if (flags & SAVE_ITEM_PVAL)
+        rd_s16b(&o_ptr->pval);
+    else
+        o_ptr->pval = 0;
+
+    if (flags & SAVE_ITEM_DISCOUNT)
+        rd_byte(&o_ptr->discount);
+    else
+        o_ptr->discount = 0;
+    if (flags & SAVE_ITEM_NUMBER) {
+        rd_byte(&tmp8u);
+        o_ptr->number = tmp8u;
+    } else
+        o_ptr->number = 1;
+
+    s16b tmp16s;
+    rd_s16b(&tmp16s);
+    o_ptr->weight = tmp16s;
+
+    if (flags & SAVE_ITEM_NAME1) {
+        rd_byte(&tmp8u);
+        o_ptr->name1 = tmp8u;
+    } else
+        o_ptr->name1 = 0;
+
+    if (flags & SAVE_ITEM_NAME2) {
+        rd_byte(&tmp8u);
+        o_ptr->name2 = tmp8u;
+    } else
+        o_ptr->name2 = 0;
+
+    if (flags & SAVE_ITEM_TIMEOUT)
+        rd_s16b(&o_ptr->timeout);
+    else
+        o_ptr->timeout = 0;
+
+    if (flags & SAVE_ITEM_TO_H)
+        rd_s16b(&o_ptr->to_h);
+    else
+        o_ptr->to_h = 0;
+
+    if (flags & SAVE_ITEM_TO_D) {
+        rd_s16b(&tmp16s);
+        o_ptr->to_d = tmp16s;
+    } else
+        o_ptr->to_d = 0;
+
+    if (flags & SAVE_ITEM_TO_A)
+        rd_s16b(&o_ptr->to_a);
+    else
+        o_ptr->to_a = 0;
+
+    if (flags & SAVE_ITEM_AC)
+        rd_s16b(&o_ptr->ac);
+    else
+        o_ptr->ac = 0;
+
+    if (flags & SAVE_ITEM_DD) {
+        rd_byte(&tmp8u);
+        o_ptr->dd = tmp8u;
+    } else
+        o_ptr->dd = 0;
+
+    if (flags & SAVE_ITEM_DS) {
+        rd_byte(&tmp8u);
+        o_ptr->ds = tmp8u;
+    } else
+        o_ptr->ds = 0;
+
+    if (flags & SAVE_ITEM_IDENT)
+        rd_byte(&o_ptr->ident);
+    else
+        o_ptr->ident = 0;
+
+    if (flags & SAVE_ITEM_MARKED)
+        rd_byte(&o_ptr->marked);
+    else
+        o_ptr->marked = 0;
+
+    /* Object flags */
+    if (flags & SAVE_ITEM_ART_FLAGS0)
+        rd_u32b(&o_ptr->art_flags[0]);
+    else
+        o_ptr->art_flags[0] = 0;
+
+    if (flags & SAVE_ITEM_ART_FLAGS1)
+        rd_u32b(&o_ptr->art_flags[1]);
+    else
+        o_ptr->art_flags[1] = 0;
+
+    if (flags & SAVE_ITEM_ART_FLAGS2)
+        rd_u32b(&o_ptr->art_flags[2]);
+    else
+        o_ptr->art_flags[2] = 0;
+
+    if (flags & SAVE_ITEM_ART_FLAGS3)
+        rd_u32b(&o_ptr->art_flags[3]);
+    else
+        o_ptr->art_flags[3] = 0;
+
+    if (flags & SAVE_ITEM_ART_FLAGS4)
+        rd_u32b(&o_ptr->art_flags[4]);
+    else
+        o_ptr->art_flags[4] = 0;
+
+    if (flags & SAVE_ITEM_CURSE_FLAGS)
+        rd_u32b(&o_ptr->curse_flags);
+    else
+        o_ptr->curse_flags = 0;
+
+    /* Monster holding object */
+    if (flags & SAVE_ITEM_HELD_M_IDX)
+        rd_s16b(&o_ptr->held_m_idx);
+    else
+        o_ptr->held_m_idx = 0;
+
+    /* Special powers */
+    if (flags & SAVE_ITEM_XTRA1)
+        rd_byte(&o_ptr->xtra1);
+    else
+        o_ptr->xtra1 = 0;
+
+    if (flags & SAVE_ITEM_XTRA2)
+        rd_byte(&o_ptr->xtra2);
+    else
+        o_ptr->xtra2 = 0;
+
+    if (flags & SAVE_ITEM_XTRA3)
+        rd_byte(&o_ptr->xtra3);
+    else
+        o_ptr->xtra3 = 0;
+
+    if (flags & SAVE_ITEM_XTRA4)
+        rd_s16b(&o_ptr->xtra4);
+    else
+        o_ptr->xtra4 = 0;
+
+    if (flags & SAVE_ITEM_XTRA5)
+        rd_s16b(&o_ptr->xtra5);
+    else
+        o_ptr->xtra5 = 0;
+
+    if (flags & SAVE_ITEM_FEELING)
+        rd_byte(&o_ptr->feeling);
+    else
+        o_ptr->feeling = 0;
+
+    if (flags & SAVE_ITEM_INSCRIPTION) {
+        char buf[128];
+        rd_string(buf, sizeof(buf));
+        o_ptr->inscription = quark_add(buf);
+    } else
+        o_ptr->inscription = 0;
+
+    if (flags & SAVE_ITEM_ART_NAME) {
+        char buf[128];
+        rd_string(buf, sizeof(buf));
+        o_ptr->art_name = quark_add(buf);
+    } else {
+        o_ptr->art_name = 0;
+    }
+
+    if (!h_older_than(2, 1, 2, 4))
+        return;
+
+    BIT_FLAGS flgs[TR_FLAG_SIZE];
+    object_flags(player_ptr, o_ptr, flgs);
+
+    if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name2 == EGO_ANCIENT_CURSE) || (o_ptr->name1 == ART_NIGHT)) {
+        add_flag(o_ptr->art_flags, TR_LITE_M1);
+        remove_flag(o_ptr->art_flags, TR_LITE_1);
+        remove_flag(o_ptr->art_flags, TR_LITE_2);
+        remove_flag(o_ptr->art_flags, TR_LITE_3);
+        return;
+    }
+
+    if (o_ptr->name2 == EGO_LITE_DARKNESS) {
+        if (o_ptr->tval != TV_LITE) {
+            add_flag(o_ptr->art_flags, TR_LITE_M1);
+            return;
+        }
+
+        if (o_ptr->sval == SV_LITE_TORCH) {
+            add_flag(o_ptr->art_flags, TR_LITE_M1);
+        } else if (o_ptr->sval == SV_LITE_LANTERN) {
+            add_flag(o_ptr->art_flags, TR_LITE_M2);
+        } else if (o_ptr->sval == SV_LITE_FEANOR) {
+            add_flag(o_ptr->art_flags, TR_LITE_M3);
+        }
+
+        return;
+    }
+
+    if (o_ptr->tval == TV_LITE) {
+        if (object_is_fixed_artifact(o_ptr)) {
+            add_flag(o_ptr->art_flags, TR_LITE_3);
+            return;
+        }
+
+        if (o_ptr->sval == SV_LITE_TORCH) {
+            add_flag(o_ptr->art_flags, TR_LITE_1);
+            add_flag(o_ptr->art_flags, TR_LITE_FUEL);
+            return;
+        }
+
+        if (o_ptr->sval == SV_LITE_LANTERN) {
+            add_flag(o_ptr->art_flags, TR_LITE_2);
+            add_flag(o_ptr->art_flags, TR_LITE_FUEL);
+            return;
+        }
+
+        if (o_ptr->sval == SV_LITE_FEANOR) {
+            add_flag(o_ptr->art_flags, TR_LITE_2);
+            return;
+        }
+    }
+}
diff --git a/src/savedata/item-loader.h b/src/savedata/item-loader.h
new file mode 100644 (file)
index 0000000..2bbe17b
--- /dev/null
@@ -0,0 +1,5 @@
+#pragma once
+
+#include "system/angband.h"
+
+void rd_item(player_type *player_ptr, object_type *o_ptr);
index 33c5494..fe7efe5 100644 (file)
 #include "player/race-info-table.h"
 #include "player/special-defense-types.h"
 #include "savedata/angband-version-comparer.h"
+#include "savedata/item-loader.h"
 #include "savedata/load-util.h"
-#include "savedata/load-v1-5-0.h"
 #include "savedata/old-feature-types.h"
+#include "savedata/savedata-flag-types.h"
 #include "savedata/save.h"
 #include "spell/spells-status.h"
 #include "store/store-util.h"
@@ -102,251 +103,6 @@ static const int QUEST_OLD_CASTLE = 27; // 古い城.
 static const int QUEST_ROYAL_CRYPT = 28; // 王家の墓.
 
 /*!
- * @brief アイテムオブジェクトを読み込む(現版) / Read an object (New method)
- * @param o_ptr アイテムオブジェクト保存先ポインタ
- * @return なし
- */
-static void rd_item(player_type *player_ptr, object_type *o_ptr)
-{
-    if (h_older_than(1, 5, 0, 0)) {
-        rd_item_old(player_ptr, o_ptr);
-        return;
-    }
-
-    BIT_FLAGS flags;
-    rd_u32b(&flags);
-    rd_s16b(&o_ptr->k_idx);
-
-    byte tmp8u;
-    rd_byte(&tmp8u);
-    o_ptr->iy = (POSITION)tmp8u;
-    rd_byte(&tmp8u);
-    o_ptr->ix = (POSITION)tmp8u;
-
-    object_kind *k_ptr;
-    k_ptr = &k_info[o_ptr->k_idx];
-    o_ptr->tval = k_ptr->tval;
-    o_ptr->sval = k_ptr->sval;
-
-    if (flags & SAVE_ITEM_PVAL)
-        rd_s16b(&o_ptr->pval);
-    else
-        o_ptr->pval = 0;
-
-    if (flags & SAVE_ITEM_DISCOUNT)
-        rd_byte(&o_ptr->discount);
-    else
-        o_ptr->discount = 0;
-    if (flags & SAVE_ITEM_NUMBER) {
-        rd_byte(&tmp8u);
-        o_ptr->number = tmp8u;
-    } else
-        o_ptr->number = 1;
-
-    s16b tmp16s;
-    rd_s16b(&tmp16s);
-    o_ptr->weight = tmp16s;
-
-    if (flags & SAVE_ITEM_NAME1) {
-        rd_byte(&tmp8u);
-        o_ptr->name1 = tmp8u;
-    } else
-        o_ptr->name1 = 0;
-
-    if (flags & SAVE_ITEM_NAME2) {
-        rd_byte(&tmp8u);
-        o_ptr->name2 = tmp8u;
-    } else
-        o_ptr->name2 = 0;
-
-    if (flags & SAVE_ITEM_TIMEOUT)
-        rd_s16b(&o_ptr->timeout);
-    else
-        o_ptr->timeout = 0;
-
-    if (flags & SAVE_ITEM_TO_H)
-        rd_s16b(&o_ptr->to_h);
-    else
-        o_ptr->to_h = 0;
-
-    if (flags & SAVE_ITEM_TO_D) {
-        rd_s16b(&tmp16s);
-        o_ptr->to_d = tmp16s;
-    } else
-        o_ptr->to_d = 0;
-
-    if (flags & SAVE_ITEM_TO_A)
-        rd_s16b(&o_ptr->to_a);
-    else
-        o_ptr->to_a = 0;
-
-    if (flags & SAVE_ITEM_AC)
-        rd_s16b(&o_ptr->ac);
-    else
-        o_ptr->ac = 0;
-
-    if (flags & SAVE_ITEM_DD) {
-        rd_byte(&tmp8u);
-        o_ptr->dd = tmp8u;
-    } else
-        o_ptr->dd = 0;
-
-    if (flags & SAVE_ITEM_DS) {
-        rd_byte(&tmp8u);
-        o_ptr->ds = tmp8u;
-    } else
-        o_ptr->ds = 0;
-
-    if (flags & SAVE_ITEM_IDENT)
-        rd_byte(&o_ptr->ident);
-    else
-        o_ptr->ident = 0;
-
-    if (flags & SAVE_ITEM_MARKED)
-        rd_byte(&o_ptr->marked);
-    else
-        o_ptr->marked = 0;
-
-    /* Object flags */
-    if (flags & SAVE_ITEM_ART_FLAGS0)
-        rd_u32b(&o_ptr->art_flags[0]);
-    else
-        o_ptr->art_flags[0] = 0;
-
-    if (flags & SAVE_ITEM_ART_FLAGS1)
-        rd_u32b(&o_ptr->art_flags[1]);
-    else
-        o_ptr->art_flags[1] = 0;
-
-    if (flags & SAVE_ITEM_ART_FLAGS2)
-        rd_u32b(&o_ptr->art_flags[2]);
-    else
-        o_ptr->art_flags[2] = 0;
-
-    if (flags & SAVE_ITEM_ART_FLAGS3)
-        rd_u32b(&o_ptr->art_flags[3]);
-    else
-        o_ptr->art_flags[3] = 0;
-
-    if (flags & SAVE_ITEM_ART_FLAGS4)
-        rd_u32b(&o_ptr->art_flags[4]);
-    else
-        o_ptr->art_flags[4] = 0;
-
-    if (flags & SAVE_ITEM_CURSE_FLAGS)
-        rd_u32b(&o_ptr->curse_flags);
-    else
-        o_ptr->curse_flags = 0;
-
-    /* Monster holding object */
-    if (flags & SAVE_ITEM_HELD_M_IDX)
-        rd_s16b(&o_ptr->held_m_idx);
-    else
-        o_ptr->held_m_idx = 0;
-
-    /* Special powers */
-    if (flags & SAVE_ITEM_XTRA1)
-        rd_byte(&o_ptr->xtra1);
-    else
-        o_ptr->xtra1 = 0;
-
-    if (flags & SAVE_ITEM_XTRA2)
-        rd_byte(&o_ptr->xtra2);
-    else
-        o_ptr->xtra2 = 0;
-
-    if (flags & SAVE_ITEM_XTRA3)
-        rd_byte(&o_ptr->xtra3);
-    else
-        o_ptr->xtra3 = 0;
-
-    if (flags & SAVE_ITEM_XTRA4)
-        rd_s16b(&o_ptr->xtra4);
-    else
-        o_ptr->xtra4 = 0;
-
-    if (flags & SAVE_ITEM_XTRA5)
-        rd_s16b(&o_ptr->xtra5);
-    else
-        o_ptr->xtra5 = 0;
-
-    if (flags & SAVE_ITEM_FEELING)
-        rd_byte(&o_ptr->feeling);
-    else
-        o_ptr->feeling = 0;
-
-    if (flags & SAVE_ITEM_INSCRIPTION) {
-        char buf[128];
-        rd_string(buf, sizeof(buf));
-        o_ptr->inscription = quark_add(buf);
-    } else
-        o_ptr->inscription = 0;
-
-    if (flags & SAVE_ITEM_ART_NAME) {
-        char buf[128];
-        rd_string(buf, sizeof(buf));
-        o_ptr->art_name = quark_add(buf);
-    } else {
-        o_ptr->art_name = 0;
-    }
-
-    if (!h_older_than(2, 1, 2, 4))
-        return;
-
-    BIT_FLAGS flgs[TR_FLAG_SIZE];
-    object_flags(player_ptr, o_ptr, flgs);
-
-    if ((o_ptr->name2 == EGO_DARK) || (o_ptr->name2 == EGO_ANCIENT_CURSE) || (o_ptr->name1 == ART_NIGHT)) {
-        add_flag(o_ptr->art_flags, TR_LITE_M1);
-        remove_flag(o_ptr->art_flags, TR_LITE_1);
-        remove_flag(o_ptr->art_flags, TR_LITE_2);
-        remove_flag(o_ptr->art_flags, TR_LITE_3);
-        return;
-    }
-
-    if (o_ptr->name2 == EGO_LITE_DARKNESS) {
-        if (o_ptr->tval != TV_LITE) {
-            add_flag(o_ptr->art_flags, TR_LITE_M1);
-            return;
-        }
-
-        if (o_ptr->sval == SV_LITE_TORCH) {
-            add_flag(o_ptr->art_flags, TR_LITE_M1);
-        } else if (o_ptr->sval == SV_LITE_LANTERN) {
-            add_flag(o_ptr->art_flags, TR_LITE_M2);
-        } else if (o_ptr->sval == SV_LITE_FEANOR) {
-            add_flag(o_ptr->art_flags, TR_LITE_M3);
-        }
-
-        return;
-    }
-
-    if (o_ptr->tval == TV_LITE) {
-        if (object_is_fixed_artifact(o_ptr)) {
-            add_flag(o_ptr->art_flags, TR_LITE_3);
-            return;
-        }
-
-        if (o_ptr->sval == SV_LITE_TORCH) {
-            add_flag(o_ptr->art_flags, TR_LITE_1);
-            add_flag(o_ptr->art_flags, TR_LITE_FUEL);
-            return;
-        }
-
-        if (o_ptr->sval == SV_LITE_LANTERN) {
-            add_flag(o_ptr->art_flags, TR_LITE_2);
-            add_flag(o_ptr->art_flags, TR_LITE_FUEL);
-            return;
-        }
-
-        if (o_ptr->sval == SV_LITE_FEANOR) {
-            add_flag(o_ptr->art_flags, TR_LITE_2);
-            return;
-        }
-    }
-}
-
-/*!
  * @brief モンスターを読み込む(現版) / Read a monster (New method)
  * @param player_ptr プレーヤーへの参照ポインタ
  * @param m_ptr モンスター保存先ポインタ
index 0aba2ad..ac98a23 100644 (file)
@@ -3,59 +3,5 @@
 #include "floor/floor-save.h"
 #include "system/angband.h"
 
-/*
- * Flags for wr_item()/rd_item()
- */
-#define SAVE_ITEM_PVAL         0x00000001
-#define SAVE_ITEM_DISCOUNT     0x00000002
-#define SAVE_ITEM_NUMBER       0x00000004
-#define SAVE_ITEM_NAME1        0x00000008
-#define SAVE_ITEM_NAME2        0x00000010
-#define SAVE_ITEM_TIMEOUT      0x00000020
-#define SAVE_ITEM_TO_H         0x00000040
-#define SAVE_ITEM_TO_D         0x00000080
-#define SAVE_ITEM_TO_A         0x00000100
-#define SAVE_ITEM_AC           0x00000200
-#define SAVE_ITEM_DD           0x00000400
-#define SAVE_ITEM_DS           0x00000800
-#define SAVE_ITEM_IDENT        0x00001000
-#define SAVE_ITEM_MARKED       0x00002000
-#define SAVE_ITEM_ART_FLAGS0   0x00004000
-#define SAVE_ITEM_ART_FLAGS1   0x00008000
-#define SAVE_ITEM_ART_FLAGS2   0x00010000
-#define SAVE_ITEM_ART_FLAGS3   0x00020000
-#define SAVE_ITEM_CURSE_FLAGS  0x00040000
-#define SAVE_ITEM_HELD_M_IDX   0x00080000
-#define SAVE_ITEM_XTRA1        0x00100000
-#define SAVE_ITEM_XTRA2        0x00200000
-#define SAVE_ITEM_XTRA3        0x00400000
-#define SAVE_ITEM_XTRA4        0x00800000
-#define SAVE_ITEM_XTRA5        0x01000000
-#define SAVE_ITEM_FEELING      0x02000000
-#define SAVE_ITEM_INSCRIPTION  0x04000000
-#define SAVE_ITEM_ART_NAME     0x08000000
-#define SAVE_ITEM_ART_FLAGS4   0x10000000
-
- /*
-  * Flags for wr_monster()/rd_monster()
-  */
-#define SAVE_MON_AP_R_IDX     0x00000001
-#define SAVE_MON_SUB_ALIGN    0x00000002
-#define SAVE_MON_CSLEEP       0x00000004
-#define SAVE_MON_FAST         0x00000008
-#define SAVE_MON_SLOW         0x00000010
-#define SAVE_MON_STUNNED      0x00000020
-#define SAVE_MON_CONFUSED     0x00000040
-#define SAVE_MON_MONFEAR      0x00000080
-#define SAVE_MON_TARGET_Y     0x00000100
-#define SAVE_MON_TARGET_X     0x00000200
-#define SAVE_MON_INVULNER     0x00000400
-#define SAVE_MON_SMART        0x00000800
-#define SAVE_MON_EXP          0x00001000
-#define SAVE_MON_MFLAG2       0x00002000
-#define SAVE_MON_NICKNAME     0x00004000
-#define SAVE_MON_PARENT       0x00008000
-
-/* load.c */
-extern errr rd_savefile_new(player_type *player_ptr);
-extern bool load_floor(player_type *player_ptr, saved_floor_type *sf_ptr, BIT_FLAGS mode);
+errr rd_savefile_new(player_type *player_ptr);
+bool load_floor(player_type *player_ptr, saved_floor_type *sf_ptr, BIT_FLAGS mode);
index cf91a19..576e5dd 100644 (file)
@@ -38,6 +38,7 @@
 #include "object-enchant/artifact.h"
 #include "object/object-kind.h"
 #include "savedata/load.h"
+#include "savedata/savedata-flag-types.h"
 #include "store/store-util.h"
 #include "store/store.h"
 #include "system/angband-version.h"
diff --git a/src/savedata/savedata-flag-types.h b/src/savedata/savedata-flag-types.h
new file mode 100644 (file)
index 0000000..b47c3e0
--- /dev/null
@@ -0,0 +1,52 @@
+#pragma once
+
+typedef enum savedata_item_flag_type {
+       SAVE_ITEM_PVAL = 0x00000001,
+       SAVE_ITEM_DISCOUNT = 0x00000002,
+       SAVE_ITEM_NUMBER = 0x00000004,
+       SAVE_ITEM_NAME1 = 0x00000008,
+       SAVE_ITEM_NAME2 = 0x00000010,
+       SAVE_ITEM_TIMEOUT = 0x00000020,
+       SAVE_ITEM_TO_H = 0x00000040,
+       SAVE_ITEM_TO_D = 0x00000080,
+       SAVE_ITEM_TO_A = 0x00000100,
+       SAVE_ITEM_AC = 0x00000200,
+       SAVE_ITEM_DD = 0x00000400,
+       SAVE_ITEM_DS = 0x00000800,
+       SAVE_ITEM_IDENT = 0x00001000,
+       SAVE_ITEM_MARKED = 0x00002000,
+       SAVE_ITEM_ART_FLAGS0 = 0x00004000,
+       SAVE_ITEM_ART_FLAGS1 = 0x00008000,
+       SAVE_ITEM_ART_FLAGS2 = 0x00010000,
+       SAVE_ITEM_ART_FLAGS3 = 0x00020000,
+       SAVE_ITEM_CURSE_FLAGS = 0x00040000,
+       SAVE_ITEM_HELD_M_IDX = 0x00080000,
+       SAVE_ITEM_XTRA1 = 0x00100000,
+       SAVE_ITEM_XTRA2 = 0x00200000,
+       SAVE_ITEM_XTRA3 = 0x00400000,
+       SAVE_ITEM_XTRA4 = 0x00800000,
+       SAVE_ITEM_XTRA5 = 0x01000000,
+       SAVE_ITEM_FEELING = 0x02000000,
+       SAVE_ITEM_INSCRIPTION = 0x04000000,
+       SAVE_ITEM_ART_NAME = 0x08000000,
+       SAVE_ITEM_ART_FLAGS4 = 0x10000000,
+} savedata_item_flag_type;
+
+typedef enum savedata_monster_flag_type {
+       SAVE_MON_AP_R_IDX = 0x00000001,
+       SAVE_MON_SUB_ALIGN = 0x00000002,
+       SAVE_MON_CSLEEP = 0x00000004,
+       SAVE_MON_FAST = 0x00000008,
+       SAVE_MON_SLOW = 0x00000010,
+       SAVE_MON_STUNNED = 0x00000020,
+       SAVE_MON_CONFUSED = 0x00000040,
+       SAVE_MON_MONFEAR = 0x00000080,
+       SAVE_MON_TARGET_Y = 0x00000100,
+       SAVE_MON_TARGET_X = 0x00000200,
+       SAVE_MON_INVULNER = 0x00000400,
+       SAVE_MON_SMART = 0x00000800,
+       SAVE_MON_EXP = 0x00001000,
+       SAVE_MON_MFLAG2 = 0x00002000,
+       SAVE_MON_NICKNAME = 0x00004000,
+       SAVE_MON_PARENT = 0x00008000,
+} savedata_monster_flag_type;