OSDN Git Service

[Refactor] lore_loader.cpp のrace-flags#.h への依存を解消
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 18 Feb 2024 15:10:18 +0000 (00:10 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 18 Feb 2024 16:01:16 +0000 (01:01 +0900)
src/load/lore-loader.cpp
src/load/savedata-old-flag-types.h

index 545f8bb..7096d50 100644 (file)
@@ -5,10 +5,6 @@
 #include "load/old/load-v1-5-0.h"
 #include "load/savedata-old-flag-types.h"
 #include "monster-race/monster-race.h"
-#include "monster-race/race-flags1.h"
-#include "monster-race/race-flags2.h"
-#include "monster-race/race-flags3.h"
-#include "monster-race/race-flags7.h"
 #include "system/angband.h"
 #include "system/monster-race-info.h"
 #include "system/system-variables.h"
@@ -237,32 +233,32 @@ static void migrate_old_kind_flags(MonsterRaceInfo *r_ptr, BIT_FLAGS old_flags1,
     }
 
     struct flag_list_ver12 {
-        BIT_FLAGS check_flag;
+        SavedataLoreOlderThan12FlagType check_flag;
         MonsterKindType flag;
     };
 
     const std::vector<flag_list_ver12> flag1 = {
-        { RF1_UNIQUE, MonsterKindType::UNIQUE },
+        { SavedataLoreOlderThan12FlagType::RF1_UNIQUE, MonsterKindType::UNIQUE },
     };
 
     const std::vector<flag_list_ver12> flag2 = {
-        { static_cast<BIT_FLAGS>(RF2_HUMAN), MonsterKindType::HUMAN },
-        { static_cast<BIT_FLAGS>(RF2_QUANTUM), MonsterKindType::QUANTUM },
+        { SavedataLoreOlderThan12FlagType::RF2_HUMAN, MonsterKindType::HUMAN },
+        { SavedataLoreOlderThan12FlagType::RF2_QUANTUM, MonsterKindType::QUANTUM },
     };
 
     const std::vector<flag_list_ver12> flag3 = {
-        { RF3_ORC, MonsterKindType::ORC },
-        { RF3_TROLL, MonsterKindType::TROLL },
-        { RF3_GIANT, MonsterKindType::GIANT },
-        { RF3_DRAGON, MonsterKindType::DRAGON },
-        { RF3_DEMON, MonsterKindType::DEMON },
-        { RF3_AMBERITE, MonsterKindType::AMBERITE },
-        { RF3_ANGEL, MonsterKindType::ANGEL },
-        { RF3_DRAGON, MonsterKindType::DRAGON },
-        { RF3_EVIL, MonsterKindType::EVIL },
-        { RF3_GOOD, MonsterKindType::GOOD },
-        { RF3_ANIMAL, MonsterKindType::ANIMAL },
-        { RF3_UNDEAD, MonsterKindType::UNDEAD },
+        { SavedataLoreOlderThan12FlagType::RF3_ORC, MonsterKindType::ORC },
+        { SavedataLoreOlderThan12FlagType::RF3_TROLL, MonsterKindType::TROLL },
+        { SavedataLoreOlderThan12FlagType::RF3_GIANT, MonsterKindType::GIANT },
+        { SavedataLoreOlderThan12FlagType::RF3_DRAGON, MonsterKindType::DRAGON },
+        { SavedataLoreOlderThan12FlagType::RF3_DEMON, MonsterKindType::DEMON },
+        { SavedataLoreOlderThan12FlagType::RF3_AMBERITE, MonsterKindType::AMBERITE },
+        { SavedataLoreOlderThan12FlagType::RF3_ANGEL, MonsterKindType::ANGEL },
+        { SavedataLoreOlderThan12FlagType::RF3_DRAGON, MonsterKindType::DRAGON },
+        { SavedataLoreOlderThan12FlagType::RF3_EVIL, MonsterKindType::EVIL },
+        { SavedataLoreOlderThan12FlagType::RF3_GOOD, MonsterKindType::GOOD },
+        { SavedataLoreOlderThan12FlagType::RF3_ANIMAL, MonsterKindType::ANIMAL },
+        { SavedataLoreOlderThan12FlagType::RF3_UNDEAD, MonsterKindType::UNDEAD },
 
     };
 
@@ -293,26 +289,26 @@ static void migrate_old_behavior_flags(MonsterRaceInfo *r_ptr, BIT_FLAGS old_fla
     }
 
     struct flag_list_ver11 {
-        BIT_FLAGS check_flag;
+        SavedataLoreOlderThan11FlagType check_flag;
         MonsterBehaviorType flag;
     };
 
     const std::vector<flag_list_ver11> flag1 = {
-        { RF1_NEVER_BLOW, MonsterBehaviorType::NEVER_BLOW },
-        { RF1_NEVER_MOVE, MonsterBehaviorType::NEVER_MOVE },
-        { RF1_RAND_25, MonsterBehaviorType::RAND_MOVE_25 },
-        { RF1_RAND_50, MonsterBehaviorType::RAND_MOVE_50 },
+        { SavedataLoreOlderThan11FlagType::RF1_NEVER_BLOW, MonsterBehaviorType::NEVER_BLOW },
+        { SavedataLoreOlderThan11FlagType::RF1_NEVER_MOVE, MonsterBehaviorType::NEVER_MOVE },
+        { SavedataLoreOlderThan11FlagType::RF1_RAND_25, MonsterBehaviorType::RAND_MOVE_25 },
+        { SavedataLoreOlderThan11FlagType::RF1_RAND_50, MonsterBehaviorType::RAND_MOVE_50 },
     };
 
     const std::vector<flag_list_ver11> flag2 = {
-        { RF2_OPEN_DOOR, MonsterBehaviorType::OPEN_DOOR },
-        { RF2_BASH_DOOR, MonsterBehaviorType::BASH_DOOR },
-        { RF2_MOVE_BODY, MonsterBehaviorType::MOVE_BODY },
-        { RF2_KILL_BODY, MonsterBehaviorType::KILL_BODY },
-        { RF2_TAKE_ITEM, MonsterBehaviorType::TAKE_ITEM },
-        { RF2_KILL_ITEM, MonsterBehaviorType::KILL_ITEM },
-        { RF2_STUPID, MonsterBehaviorType::STUPID },
-        { RF2_SMART, MonsterBehaviorType::SMART },
+        { SavedataLoreOlderThan11FlagType::RF2_OPEN_DOOR, MonsterBehaviorType::OPEN_DOOR },
+        { SavedataLoreOlderThan11FlagType::RF2_BASH_DOOR, MonsterBehaviorType::BASH_DOOR },
+        { SavedataLoreOlderThan11FlagType::RF2_MOVE_BODY, MonsterBehaviorType::MOVE_BODY },
+        { SavedataLoreOlderThan11FlagType::RF2_KILL_BODY, MonsterBehaviorType::KILL_BODY },
+        { SavedataLoreOlderThan11FlagType::RF2_TAKE_ITEM, MonsterBehaviorType::TAKE_ITEM },
+        { SavedataLoreOlderThan11FlagType::RF2_KILL_ITEM, MonsterBehaviorType::KILL_ITEM },
+        { SavedataLoreOlderThan11FlagType::RF2_STUPID, MonsterBehaviorType::STUPID },
+        { SavedataLoreOlderThan11FlagType::RF2_SMART, MonsterBehaviorType::SMART },
     };
 
     for (const auto &f : flag1) {
index 9725d90..993667f 100644 (file)
@@ -29,6 +29,41 @@ enum class SavedataLoreOlderThan10FlagType {
     AURA_ELEC_OLD = 0x00008000,
 };
 
+enum class SavedataLoreOlderThan11FlagType : uint32_t {
+    RF1_NEVER_BLOW = 0x00010000, /*!< モンスター特性: 打撃を一切行わない / Never make physical blow */
+    RF1_NEVER_MOVE = 0x00020000, /*!< モンスター特性: 移動を一切行わない / Never make physical move */
+    RF1_RAND_25 = 0x00040000, /*!< モンスター特性: ランダムに移動する確率+25%/ Moves randomly (25%) */
+    RF1_RAND_50 = 0x00080000, /*!< モンスター特性: ランダムに移動する確率+50%/ Moves randomly (50%) */
+    RF2_STUPID = 0x00000001, /*!< モンスター特性: 愚かな行動を取る / Monster is stupid */
+    RF2_SMART = 0x00000002, /*!< モンスター特性: 賢い行動を取る / Monster is smart */
+    RF2_OPEN_DOOR = 0x00010000, /*!< モンスター特性: ドアを開けることができる / Monster can open doors */
+    RF2_BASH_DOOR = 0x00020000, /*!< モンスター特性: ドアを破壊することができる / Monster can bash doors */
+    RF2_PASS_WALL = 0x00040000, /*!< モンスター特性: 壁を抜けることができる / Monster can pass walls */
+    RF2_KILL_WALL = 0x00080000, /*!< モンスター特性: 壁を破壊して進む / Monster can destroy walls */
+    RF2_MOVE_BODY = 0x00100000, /*!< モンスター特性: 道中の弱いモンスターを押しのけることができる / Monster can move monsters */
+    RF2_KILL_BODY = 0x00200000, /*!< モンスター特性: 道中の弱いモンスターを殺して進む / Monster can kill monsters */
+    RF2_TAKE_ITEM = 0x00400000, /*!< モンスター特性: 道中のアイテムを拾う / Monster can pick up items */
+    RF2_KILL_ITEM = 0x00800000, /*!< モンスター特性: 道中のアイテムを破壊する / Monster can crush items */
+};
+
+enum class SavedataLoreOlderThan12FlagType : uint32_t {
+    RF1_UNIQUE = 0x00000001, /*!< モンスター特性: ユニーク / Unique Monster */
+    RF1_QUESTOR = 0x00000002, /*!< モンスター特性: クエストモンスター / Quest Monster */
+    RF2_HUMAN = 0x40000000, /*!< モンスター特性: 人間 / Human */
+    RF2_QUANTUM = 0x80000000, /*!< モンスター特性: 量子的な振る舞いをする / Monster has quantum behavior */
+    RF3_ORC = 0x00000001, /*!< モンスター特性: オーク / Orc */
+    RF3_TROLL = 0x00000002, /*!< モンスター特性: トロル / Troll */
+    RF3_GIANT = 0x00000004, /*!< モンスター特性: 巨人 / Giant */
+    RF3_DRAGON = 0x00000008, /*!< モンスター特性: ドラゴン / Dragon */
+    RF3_DEMON = 0x00000010, /*!< モンスター特性: 悪魔 / Demon */
+    RF3_UNDEAD = 0x00000020, /*!< モンスター特性: アンデッド / Undead */
+    RF3_EVIL = 0x00000040, /*!< モンスター特性: 邪悪 / Evil */
+    RF3_ANIMAL = 0x00000080, /*!< モンスター特性: 動物 / Animal */
+    RF3_AMBERITE = 0x00000100, /*!< モンスター特性: アンバーの血族 / TY: Amberite */
+    RF3_GOOD = 0x00000200, /*!< モンスター特性: 善良 / Good */
+    RF3_ANGEL = 0x00010000, /*!< モンスター特性: 天使 / ANGEL */
+};
+
 enum class SavedataLoreOlderThan14FlagType {
     RFR_IM_ACID = 0x00000001, /* Immunity acid */
     RFR_IM_ELEC = 0x00000002, /* Immunity elec */