OSDN Git Service

[Refactor] #40467 Separated player-info-loader.c/h from load.c
authorHourier <hourier@users.sourceforge.jp>
Sun, 5 Jul 2020 05:28:48 +0000 (14:28 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sun, 5 Jul 2020 05:28:48 +0000 (14:28 +0900)
Hengband/Hengband/Hengband.vcxproj
Hengband/Hengband/Hengband.vcxproj.filters
src/Makefile.am
src/savedata/extra-loader.c
src/savedata/load.c
src/savedata/player-info-loader.c [new file with mode: 0644]
src/savedata/player-info-loader.h [new file with mode: 0644]

index d14a270..484f685 100644 (file)
     <ClCompile Include="..\..\src\savedata\lore-loader.c" />\r
     <ClCompile Include="..\..\src\savedata\monster-loader.c" />\r
     <ClCompile Include="..\..\src\savedata\option-loader.c" />\r
+    <ClCompile Include="..\..\src\savedata\player-info-loader.c" />\r
     <ClCompile Include="..\..\src\savedata\store-loader.c" />\r
     <ClCompile Include="..\..\src\specific-object\death-crimson.c" />\r
     <ClCompile Include="..\..\src\spell-kind\blood-curse.c" />\r
     <ClInclude Include="..\..\src\savedata\monster-loader.h" />\r
     <ClInclude Include="..\..\src\savedata\old-feature-types.h" />\r
     <ClInclude Include="..\..\src\savedata\option-loader.h" />\r
+    <ClInclude Include="..\..\src\savedata\player-info-loader.h" />\r
     <ClInclude Include="..\..\src\savedata\savedata-flag-types.h" />\r
     <ClInclude Include="..\..\src\savedata\store-loader.h" />\r
     <ClInclude Include="..\..\src\specific-object\death-crimson.h" />\r
index 45a7668..297c737 100644 (file)
     <ClCompile Include="..\..\src\savedata\load-v1-7-0.c">
       <Filter>savedata</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\savedata\player-info-loader.c">
+      <Filter>savedata</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\cmd\cmd-basic.h">
     <ClInclude Include="..\..\src\savedata\load-v1-7-0.h">
       <Filter>savedata</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\savedata\player-info-loader.h">
+      <Filter>savedata</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\..\src\wall.bmp" />
index 5591583..aaf7670 100644 (file)
@@ -532,6 +532,7 @@ hengband_SOURCES = \
        savedata/load.c savedata/load.h \
        savedata/lore-loader.c savedata/lore-loader.h \
        savedata/option-loader.c savedata/option-loader.h \
+       savedata/player-info-loader.c savedata/player-info-loader.h \
        savedata/savedata-flag-types.h \
        savedata/save.c savedata/save.h \
        savedata/store-loader.c savedata/store-loader.h \
index 3538231..8081d83 100644 (file)
@@ -205,52 +205,6 @@ static void rd_dummy_monsters(player_type *creature_ptr)
     }
 }
 
-static void rd_base_info(player_type *creature_ptr)
-{
-    rd_string(creature_ptr->name, sizeof(creature_ptr->name));
-    rd_string(creature_ptr->died_from, sizeof(creature_ptr->died_from));
-    if (!h_older_than(1, 7, 0, 1)) {
-        char buf[1024];
-        rd_string(buf, sizeof buf);
-        if (buf[0])
-            creature_ptr->last_message = string_make(buf);
-    }
-
-    load_quick_start();
-    const int max_history_lines = 4;
-    for (int i = 0; i < max_history_lines; i++)
-        rd_string(creature_ptr->history[i], sizeof(creature_ptr->history[i]));
-
-    byte tmp8u;
-    rd_byte(&tmp8u);
-    creature_ptr->prace = (player_race_type)tmp8u;
-
-    rd_byte(&tmp8u);
-    creature_ptr->pclass = (player_class_type)tmp8u;
-
-    rd_byte(&tmp8u);
-    creature_ptr->pseikaku = (player_personality_type)tmp8u;
-
-    rd_byte(&creature_ptr->psex);
-    rd_byte(&tmp8u);
-    creature_ptr->realm1 = (REALM_IDX)tmp8u;
-
-    rd_byte(&tmp8u);
-    creature_ptr->realm2 = (REALM_IDX)tmp8u;
-
-    rd_byte(&tmp8u);
-    if (z_older_than(10, 4, 4))
-        set_zangband_realm(creature_ptr);
-
-    rd_byte(&tmp8u);
-    creature_ptr->hitdie = (DICE_SID)tmp8u;
-    rd_u16b(&creature_ptr->expfact);
-
-    rd_s16b(&creature_ptr->age);
-    rd_s16b(&creature_ptr->ht);
-    rd_s16b(&creature_ptr->wt);
-}
-
 /*!
  * @brief その他の情報を読み込む / Read the "extra" information
  * @param creature_ptr プレーヤーへの参照ポインタ
@@ -258,7 +212,6 @@ static void rd_base_info(player_type *creature_ptr)
  */
 void rd_extra(player_type *creature_ptr)
 {
-    rd_base_info(creature_ptr);
     rd_base_status(creature_ptr);
     strip_bytes(24);
     rd_s32b(&creature_ptr->au);
index 9e92f59..b6a40d9 100644 (file)
@@ -84,6 +84,7 @@
 #include "savedata/monster-loader.h"
 #include "savedata/old-feature-types.h"
 #include "savedata/option-loader.h"
+#include "savedata/player-info-loader.h"
 #include "savedata/save.h"
 #include "savedata/savedata-flag-types.h"
 #include "savedata/store-loader.h"
@@ -1051,6 +1052,7 @@ static errr rd_savefile_new_aux(player_type *creature_ptr)
     if (arg_fiddle)
         load_note(_("伝説のアイテムをロードしました", "Loaded Artifacts"));
 
+    rd_base_info(creature_ptr);
     rd_extra(creature_ptr);
     if (creature_ptr->energy_need < -999)
         creature_ptr->timewalk = TRUE;
diff --git a/src/savedata/player-info-loader.c b/src/savedata/player-info-loader.c
new file mode 100644 (file)
index 0000000..6542b70
--- /dev/null
@@ -0,0 +1,51 @@
+#include "savedata/player-info-loader.h"
+#include "savedata/angband-version-comparer.h"
+#include "savedata/birth-loader.h"
+#include "savedata/load-util.h"
+#include "savedata/load-zangband.h"
+
+void rd_base_info(player_type *creature_ptr)
+{
+    rd_string(creature_ptr->name, sizeof(creature_ptr->name));
+    rd_string(creature_ptr->died_from, sizeof(creature_ptr->died_from));
+    if (!h_older_than(1, 7, 0, 1)) {
+        char buf[1024];
+        rd_string(buf, sizeof buf);
+        if (buf[0])
+            creature_ptr->last_message = string_make(buf);
+    }
+
+    load_quick_start();
+    const int max_history_lines = 4;
+    for (int i = 0; i < max_history_lines; i++)
+        rd_string(creature_ptr->history[i], sizeof(creature_ptr->history[i]));
+
+    byte tmp8u;
+    rd_byte(&tmp8u);
+    creature_ptr->prace = (player_race_type)tmp8u;
+
+    rd_byte(&tmp8u);
+    creature_ptr->pclass = (player_class_type)tmp8u;
+
+    rd_byte(&tmp8u);
+    creature_ptr->pseikaku = (player_personality_type)tmp8u;
+
+    rd_byte(&creature_ptr->psex);
+    rd_byte(&tmp8u);
+    creature_ptr->realm1 = (REALM_IDX)tmp8u;
+
+    rd_byte(&tmp8u);
+    creature_ptr->realm2 = (REALM_IDX)tmp8u;
+
+    rd_byte(&tmp8u);
+    if (z_older_than(10, 4, 4))
+        set_zangband_realm(creature_ptr);
+
+    rd_byte(&tmp8u);
+    creature_ptr->hitdie = (DICE_SID)tmp8u;
+    rd_u16b(&creature_ptr->expfact);
+
+    rd_s16b(&creature_ptr->age);
+    rd_s16b(&creature_ptr->ht);
+    rd_s16b(&creature_ptr->wt);
+}
diff --git a/src/savedata/player-info-loader.h b/src/savedata/player-info-loader.h
new file mode 100644 (file)
index 0000000..9aca681
--- /dev/null
@@ -0,0 +1,5 @@
+#pragma once
+
+#include "system/angband.h"
+
+void rd_base_info(player_type *creature_ptr);