OSDN Git Service

[Refactor] トークン定義を明かり・闇フラグに合わせる
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 11 Dec 2022 08:29:24 +0000 (17:29 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Mon, 12 Dec 2022 15:42:18 +0000 (00:42 +0900)
src/info-reader/dungeon-reader.cpp
src/info-reader/race-info-tokens-table.cpp
src/info-reader/race-info-tokens-table.h
src/info-reader/race-reader.cpp

index d9b90c7..a2fdc72 100644 (file)
@@ -93,6 +93,10 @@ static bool grab_one_basic_monster_flag(dungeon_type *d_ptr, std::string_view wh
         return true;
     }
 
+    if (EnumClassFlagGroup<MonsterBrightnessType>::grab_one_flag(d_ptr->mon_brightness_flags, r_info_brightness_flags, what)) {
+        return true;
+    }
+
     msg_format(_("未知のモンスター・フラグ '%s'。", "Unknown monster flag '%s'."), what.data());
     return false;
 }
index 32f9447..aac612e 100644 (file)
@@ -2,6 +2,7 @@
 #include "monster-attack/monster-attack-effect.h"
 #include "monster-attack/monster-attack-table.h"
 #include "monster-race/race-ability-flags.h"
+#include "monster-race/race-brightness-flags.h"
 #include "monster-race/race-drop-flags.h"
 #include "monster-race/race-feature-flags.h"
 #include "monster-race/race-kind-flags.h"
@@ -255,16 +256,8 @@ const std::unordered_map<std::string_view, race_flags7> r_info_flags7 = {
     { "UNIQUE2", RF7_UNIQUE2 },
     { "RIDING", RF7_RIDING },
     { "KAGE", RF7_KAGE },
-    { "HAS_LITE_1", RF7_HAS_LITE_1 },
-    { "SELF_LITE_1", RF7_SELF_LITE_1 },
-    { "HAS_LITE_2", RF7_HAS_LITE_2 },
-    { "SELF_LITE_2", RF7_SELF_LITE_2 },
     { "CHAMELEON", RF7_CHAMELEON },
     { "TANUKI", RF7_TANUKI },
-    { "HAS_DARK_1", RF7_HAS_DARK_1 },
-    { "SELF_DARK_1", RF7_SELF_DARK_1 },
-    { "HAS_DARK_2", RF7_HAS_DARK_2 },
-    { "SELF_DARK_2", RF7_SELF_DARK_2 },
 };
 
 /*!
@@ -453,3 +446,14 @@ const std::unordered_map<std::string_view, MonsterSpeakType> r_info_speak_flags
     { "SPEAK_DEATH", MonsterSpeakType::SPEAK_DEATH },
     { "SPEAK_SPAWN", MonsterSpeakType::SPEAK_SPAWN },
 };
+
+const std::unordered_map<std::string_view, MonsterBrightnessType> r_info_brightness_flags = {
+    { "HAS_LITE_1", MonsterBrightnessType::HAS_LITE_1 },
+    { "SELF_LITE_1", MonsterBrightnessType::SELF_LITE_1 },
+    { "HAS_LITE_2", MonsterBrightnessType::HAS_LITE_2 },
+    { "SELF_LITE_2", MonsterBrightnessType::SELF_LITE_2 },
+    { "HAS_DARK_1", MonsterBrightnessType::HAS_DARK_1 },
+    { "SELF_DARK_1", MonsterBrightnessType::SELF_DARK_1 },
+    { "HAS_DARK_2", MonsterBrightnessType::HAS_DARK_2 },
+    { "SELF_DARK_2", MonsterBrightnessType::SELF_DARK_2 },
+};
index 508fc63..21256e4 100644 (file)
@@ -5,6 +5,7 @@
 #include "monster-race/monster-aura-types.h"
 #include "monster-race/race-ability-flags.h"
 #include "monster-race/race-behavior-flags.h"
+#include "monster-race/race-brightness-flags.h"
 #include "monster-race/race-drop-flags.h"
 #include "monster-race/race-feature-flags.h"
 #include "monster-race/race-flags-resistance.h"
@@ -43,3 +44,4 @@ extern const std::unordered_map<std::string_view, MonsterWildernessType> r_info_
 extern const std::unordered_map<std::string_view, MonsterFeatureType> r_info_feature_flags;
 extern const std::unordered_map<std::string_view, MonsterPopulationType> r_info_population_flags;
 extern const std::unordered_map<std::string_view, MonsterSpeakType> r_info_speak_flags;
+extern const std::unordered_map<std::string_view, MonsterBrightnessType> r_info_brightness_flags;
index 201cbc9..c9e04b7 100644 (file)
@@ -80,6 +80,10 @@ static bool grab_one_basic_flag(MonsterRaceInfo *r_ptr, std::string_view what)
         return true;
     }
 
+    if (EnumClassFlagGroup<MonsterBrightnessType>::grab_one_flag(r_ptr->brightness_flags, r_info_brightness_flags, what)) {
+        return true;
+    }
+
     msg_format(_("未知のモンスター・フラグ '%s'。", "Unknown monster flag '%s'."), what.data());
     return false;
 }