OSDN Git Service

[Fix] #1787 オーラフラグのマイグレーションコードがデータ読み込み前に行われていた不具合を修正した
authorHourier <66951241+Hourier@users.noreply.github.com>
Sat, 16 Oct 2021 01:56:06 +0000 (10:56 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sat, 16 Oct 2021 02:43:19 +0000 (11:43 +0900)
src/load/lore-loader.cpp

index ce9677e..f306cc9 100644 (file)
@@ -8,9 +8,8 @@
 #include "system/monster-race-definition.h"
 #include "util/bit-flags-calculator.h"
 
-static void rd_r_flags2(monster_race *r_ptr)
+static void migrate_old_aura_flags(monster_race *r_ptr)
 {
-    r_ptr->r_flags2 = rd_u32b();
     if (loading_savefile_version_is_older_than(10)) {
         if (any_bits(r_ptr->r_flags2, SavedataLoreOlderThan10FlagType::AURA_FIRE_OLD)) {
             r_ptr->r_aura_flags.set(MonsterAuraType::FIRE);
@@ -75,8 +74,9 @@ void rd_lore(monster_race *r_ptr, MONRACE_IDX r_idx)
     r_ptr->r_blows[3] = rd_byte();
 
     r_ptr->r_flags1 = rd_u32b();
-    rd_r_flags2(r_ptr);
+    r_ptr->r_flags2 = rd_u32b();
     r_ptr->r_flags3 = rd_u32b();
+    migrate_old_aura_flags(r_ptr);
     if (loading_savefile_version_is_older_than(3)) {
         uint32_t f4 = rd_u32b();
         uint32_t f5 = rd_u32b();