<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
<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" />
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 \
--- /dev/null
+#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);
+}
--- /dev/null
+#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);
#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
*/