OSDN Git Service

[Refactor] XTRA1が再利用できない潜在不具合を解消した
authorHourier <66951241+Hourier@users.noreply.github.com>
Tue, 15 Feb 2022 13:46:32 +0000 (22:46 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Tue, 15 Feb 2022 13:46:32 +0000 (22:46 +0900)
src/load/old/item-loader-savefile50.cpp
src/load/savedata-old-flag-types.h

index 6c29562..648273a 100644 (file)
@@ -98,8 +98,10 @@ void ItemLoader50::rd_item(ObjectType *o_ptr)
     }
 
     o_ptr->held_m_idx = any_bits(flags, SaveDataItemFlagType::HELD_M_IDX) ? rd_s16b() : 0;
-    if (any_bits(flags, SavedataItemOlderThan0FlagType::XTRA1)) {
-        strip_bytes(1);
+    if (loading_savefile_version_is_older_than(12)) {
+        if (any_bits(flags, SavedataItemOlderThan12FlagType::XTRA1)) {
+            strip_bytes(1);
+        }
     }
 
     if (any_bits(flags, SaveDataItemFlagType::ACTIVATION_ID)) {
index 0bfb7f7..c306312 100644 (file)
@@ -5,11 +5,6 @@
 
 #pragma once
 
-// 太古のどこかで使われなくなったフラグ。セーブバージョンは便宜的に0とする.
-enum class SavedataItemOlderThan0FlagType {
-    XTRA1 = 0x00100000,
-};
-
 //! セーブデータバージョン7でart_flagsをFlagGroupクラスに移行する前のセーブデータ有無フラグ
 enum class SavedataItemOlderThan7FlagType {
        ART_FLAGS0 = 0x00004000,
@@ -20,6 +15,7 @@ enum class SavedataItemOlderThan7FlagType {
 };
 
 enum class SavedataItemOlderThan12FlagType {
+    XTRA1 = 0x00100000,
     XTRA3 = 0x00400000,
 };