OSDN Git Service

[Refactor] #40532 Separated save-util.c/h from save.c
authorHourier <hourier@users.sourceforge.jp>
Sat, 18 Jul 2020 05:59:55 +0000 (14:59 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sat, 18 Jul 2020 05:59:55 +0000 (14:59 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/save/save-util.c [new file with mode: 0644]
src/save/save-util.h [new file with mode: 0644]
src/save/save.c

index 3712e75..d08950f 100644 (file)
     <ClCompile Include="..\..\src\load\player-info-loader.c" />\r
     <ClCompile Include="..\..\src\load\store-loader.c" />\r
     <ClCompile Include="..\..\src\load\world-loader.c" />\r
+    <ClCompile Include="..\..\src\save\save-util.c" />\r
     <ClCompile Include="..\..\src\specific-object\death-crimson.c" />\r
     <ClCompile Include="..\..\src\spell-kind\blood-curse.c" />\r
     <ClCompile Include="..\..\src\spell-kind\spells-enchant.c" />\r
     <ClInclude Include="..\..\src\load\savedata-flag-types.h" />\r
     <ClInclude Include="..\..\src\load\store-loader.h" />\r
     <ClInclude Include="..\..\src\load\world-loader.h" />\r
+    <ClInclude Include="..\..\src\save\save-util.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 d7b013a..3204f84 100644 (file)
     <ClCompile Include="..\..\src\save\save.c">
       <Filter>save</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\save\save-util.c">
+      <Filter>save</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\combat\shoot.h">
     <ClInclude Include="..\..\src\save\save.h">
       <Filter>save</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\save\save-util.h">
+      <Filter>save</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
index 5e58b25..e493d3c 100644 (file)
@@ -587,6 +587,7 @@ hengband_SOURCES = \
        room/pit-nest-kinds-table.c room/pit-nest-kinds-table.h \
        \
        save/save.c save/save.h \
+       save/save-util.c save/save-util.h \
        \
        specific-object/bow.c specific-object/bow.h \
        specific-object/chest.c specific-object/chest.h \
diff --git a/src/save/save-util.c b/src/save/save-util.c
new file mode 100644 (file)
index 0000000..9165125
--- /dev/null
@@ -0,0 +1,81 @@
+#include "save/save-util.h"
+
+FILE *saving_savefile; /* Current save "file" */
+byte save_xor_byte; /* Simple encryption */
+u32b v_stamp = 0L; /* A simple "checksum" on the actual values */
+u32b x_stamp = 0L; /* A simple "checksum" on the encoded bytes */
+
+/*!
+ * @brief 1バイトをファイルに書き込む / These functions place information into a savefile a byte at a time
+ * @param v 書き込むバイト値
+ * @return なし
+ */
+static void sf_put(byte v)
+{
+    /* Encode the value, write a character */
+    save_xor_byte ^= v;
+    (void)putc((int)save_xor_byte, saving_savefile);
+
+    /* Maintain the checksum info */
+    v_stamp += v;
+    x_stamp += save_xor_byte;
+}
+
+/*!
+ * @brief 1バイトをファイルに書き込む(sf_put()の糖衣)
+ * @param v 書き込むバイト
+ * @return なし
+ */
+void wr_byte(byte v) { sf_put(v); }
+
+/*!
+ * @brief 符号なし16ビットをファイルに書き込む
+ * @param v 書き込む符号なし16bit値
+ * @return なし
+ */
+void wr_u16b(u16b v)
+{
+    wr_byte((byte)(v & 0xFF));
+    wr_byte((byte)((v >> 8) & 0xFF));
+}
+
+/*!
+ * @brief 符号あり16ビットをファイルに書き込む
+ * @param v 書き込む符号あり16bit値
+ * @return なし
+ */
+void wr_s16b(s16b v) { wr_u16b((u16b)v); }
+
+/*!
+ * @brief 符号なし32ビットをファイルに書き込む
+ * @param v 書き込む符号なし32bit値
+ * @return なし
+ */
+void wr_u32b(u32b v)
+{
+    wr_byte((byte)(v & 0xFF));
+    wr_byte((byte)((v >> 8) & 0xFF));
+    wr_byte((byte)((v >> 16) & 0xFF));
+    wr_byte((byte)((v >> 24) & 0xFF));
+}
+
+/*!
+ * @brief 符号あり32ビットをファイルに書き込む
+ * @param v 書き込む符号あり32bit値
+ * @return なし
+ */
+void wr_s32b(s32b v) { wr_u32b((u32b)v); }
+
+/*!
+ * @brief 文字列をファイルに書き込む
+ * @param str 書き込む文字列
+ * @return なし
+ */
+void wr_string(concptr str)
+{
+    while (*str) {
+        wr_byte(*str);
+        str++;
+    }
+    wr_byte(*str);
+}
diff --git a/src/save/save-util.h b/src/save/save-util.h
new file mode 100644 (file)
index 0000000..542fb66
--- /dev/null
@@ -0,0 +1,15 @@
+#pragma once
+
+#include "system/angband.h"
+
+FILE *saving_savefile;
+byte save_xor_byte;
+u32b v_stamp;
+u32b x_stamp;
+
+void wr_byte(byte v);
+void wr_u16b(u16b v);
+void wr_s16b(s16b v);
+void wr_u32b(u32b v);
+void wr_s32b(s32b v);
+void wr_string(concptr str);
index a0302df..a0e1310 100644 (file)
@@ -40,6 +40,7 @@
 #include "monster/monster-info.h"
 #include "monster/monster-status.h"
 #include "object/object-kind.h"
+#include "save/save-util.h"
 #include "store/store-util.h"
 #include "store/store.h"
 #include "system/angband-version.h"
 #include "world/world.h"
 
 /*
- * Some "local" parameters, used to help write savefiles
- */
-
-static FILE *saving_savefile; /* Current save "file" */
-static byte save_xor_byte; /* Simple encryption */
-static u32b v_stamp = 0L; /* A simple "checksum" on the actual values */
-static u32b x_stamp = 0L; /* A simple "checksum" on the encoded bytes */
-
-/*!
- * @brief 1バイトをファイルに書き込む / These functions place information into a savefile a byte at a time
- * @param v 書き込むバイト値
- * @return なし
- */
-static void sf_put(byte v)
-{
-    /* Encode the value, write a character */
-    save_xor_byte ^= v;
-    (void)putc((int)save_xor_byte, saving_savefile);
-
-    /* Maintain the checksum info */
-    v_stamp += v;
-    x_stamp += save_xor_byte;
-}
-
-/*!
- * @brief 1バイトをファイルに書き込む(sf_put()の糖衣)
- * @param v 書き込むバイト
- * @return なし
- */
-static void wr_byte(byte v) { sf_put(v); }
-
-/*!
- * @brief 符号なし16ビットをファイルに書き込む
- * @param v 書き込む符号なし16bit値
- * @return なし
- */
-static void wr_u16b(u16b v)
-{
-    sf_put((byte)(v & 0xFF));
-    sf_put((byte)((v >> 8) & 0xFF));
-}
-
-/*!
- * @brief 符号あり16ビットをファイルに書き込む
- * @param v 書き込む符号あり16bit値
- * @return なし
- */
-static void wr_s16b(s16b v) { wr_u16b((u16b)v); }
-
-/*!
- * @brief 符号なし32ビットをファイルに書き込む
- * @param v 書き込む符号なし32bit値
- * @return なし
- */
-static void wr_u32b(u32b v)
-{
-    sf_put((byte)(v & 0xFF));
-    sf_put((byte)((v >> 8) & 0xFF));
-    sf_put((byte)((v >> 16) & 0xFF));
-    sf_put((byte)((v >> 24) & 0xFF));
-}
-
-/*!
- * @brief 符号あり32ビットをファイルに書き込む
- * @param v 書き込む符号あり32bit値
- * @return なし
- */
-static void wr_s32b(s32b v) { wr_u32b((u32b)v); }
-
-/*!
- * @brief 文字列をファイルに書き込む
- * @param str 書き込む文字列
- * @return なし
- */
-static void wr_string(concptr str)
-{
-    while (*str) {
-        wr_byte(*str);
-        str++;
-    }
-    wr_byte(*str);
-}
-
-/*
  * These functions write info in larger logical records
  */