OSDN Git Service

[Refactor] 明かり・闇フラグの定義に合わせる
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 11 Dec 2022 08:09:44 +0000 (17:09 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Mon, 12 Dec 2022 15:42:15 +0000 (00:42 +0900)
21 files changed:
src/effect/effect-monster-resist-hurt.cpp
src/lore/lore-util.cpp
src/lore/magic-types-setter.cpp
src/melee/melee-spell-flags-checker.cpp
src/mind/mind-elementalist.cpp
src/mind/mind-force-trainer.cpp
src/monster-floor/monster-death.cpp
src/monster-floor/monster-lite.cpp
src/monster-floor/monster-remover.cpp
src/monster-floor/one-monster-placer.cpp
src/monster-race/race-brightness-mask.cpp
src/monster-race/race-brightness-mask.h
src/monster/monster-list.cpp
src/monster/monster-status-setter.cpp
src/monster/monster-update.cpp
src/mspell/mspell-floor.cpp
src/mspell/mspell-lite.cpp
src/realm/realm-hissatsu.cpp
src/spell-kind/spells-fetcher.cpp
src/spell-kind/spells-teleport.cpp
src/view/display-lore-status.cpp

index 7f160be..48fc693 100644 (file)
@@ -1,6 +1,7 @@
 #include "effect/effect-monster-resist-hurt.h"
 #include "effect/effect-monster-util.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-flags.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-flags2.h"
@@ -727,9 +728,9 @@ ProcessResult effect_monster_abyss(PlayerType *player_ptr, effect_monster_type *
         em_ptr->obvious = true;
     }
 
-    BIT_FLAGS dark = RF7_SELF_DARK_1 | RF7_SELF_DARK_2 | RF7_HAS_DARK_1 | RF7_HAS_DARK_2;
+    auto dark = { MonsterBrightnessType::SELF_DARK_1, MonsterBrightnessType::SELF_DARK_2, MonsterBrightnessType::HAS_DARK_1, MonsterBrightnessType::HAS_DARK_2 };
 
-    if (any_bits(em_ptr->r_ptr->flags7, dark)) {
+    if (em_ptr->r_ptr->brightness_flags.has_any_of(dark)) {
         em_ptr->note = _("には耐性がある!", " resists!");
         em_ptr->dam *= 3;
         em_ptr->dam /= (randint1(6) + 6);
index 4de3cff..a18d963 100644 (file)
@@ -51,6 +51,7 @@ lore_type *initialize_lore_type(lore_type *lore_ptr, MonsterRaceId r_idx, monste
     lore_ptr->flags7 = (lore_ptr->r_ptr->flags7 & lore_ptr->r_ptr->flags7);
     lore_ptr->resistance_flags = (lore_ptr->r_ptr->resistance_flags & lore_ptr->r_ptr->r_resistance_flags);
     lore_ptr->feature_flags = (lore_ptr->r_ptr->feature_flags & lore_ptr->r_ptr->r_feature_flags);
+    lore_ptr->brightness_flags = lore_ptr->r_ptr->brightness_flags;
     lore_ptr->reinforce = false;
     lore_ptr->know_everything = false;
     lore_ptr->mode = mode;
index 4c2ad71..b2316ff 100644 (file)
@@ -1,6 +1,7 @@
 #include "lore/magic-types-setter.h"
 #include "lore/lore-calculator.h"
 #include "lore/lore-util.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags3.h"
 #include "monster-race/race-flags7.h"
 #include "player-base/player-class.h"
@@ -462,7 +463,7 @@ void set_teleport_types(lore_type *lore_ptr)
 void set_floor_types(PlayerType *player_ptr, lore_type *lore_ptr)
 {
     if (lore_ptr->ability_flags.has(MonsterAbilityType::DARKNESS)) {
-        if (!PlayerClass(player_ptr).equals(PlayerClassType::NINJA) || lore_ptr->r_ptr->kind_flags.has_not(MonsterKindType::UNDEAD) || lore_ptr->r_ptr->resistance_flags.has(MonsterResistanceType::HURT_LITE) || (lore_ptr->r_ptr->flags7 & RF7_DARK_MASK)) {
+        if (!PlayerClass(player_ptr).equals(PlayerClassType::NINJA) || lore_ptr->r_ptr->kind_flags.has_not(MonsterKindType::UNDEAD) || lore_ptr->r_ptr->resistance_flags.has(MonsterResistanceType::HURT_LITE) || (lore_ptr->r_ptr->brightness_flags.has_any_of(dark_mask))) {
             lore_ptr->vp[lore_ptr->vn] = _("暗闇", "create darkness");
             lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
         } else {
index b7c86e1..768124f 100644 (file)
@@ -7,6 +7,7 @@
 #include "monster-floor/monster-move.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-ability-mask.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags2.h"
 #include "monster-race/race-flags3.h"
 #include "monster-race/race-flags7.h"
@@ -117,7 +118,7 @@ static void check_darkness(PlayerType *player_ptr, melee_spell_type *ms_ptr)
     }
 
     bool vs_ninja = PlayerClass(player_ptr).equals(PlayerClassType::NINJA) && !ms_ptr->t_ptr->is_hostile();
-    bool can_use_lite_area = vs_ninja && ms_ptr->r_ptr->kind_flags.has_not(MonsterKindType::UNDEAD) && ms_ptr->r_ptr->resistance_flags.has_not(MonsterResistanceType::HURT_LITE) && !(ms_ptr->r_ptr->flags7 & RF7_DARK_MASK);
+    bool can_use_lite_area = vs_ninja && ms_ptr->r_ptr->kind_flags.has_not(MonsterKindType::UNDEAD) && ms_ptr->r_ptr->resistance_flags.has_not(MonsterResistanceType::HURT_LITE) && ms_ptr->r_ptr->brightness_flags.has_none_of(dark_mask);
     if (ms_ptr->r_ptr->behavior_flags.has(MonsterBehaviorType::STUPID)) {
         return;
     }
index 3ef3e3f..0f96a6e 100644 (file)
@@ -33,6 +33,7 @@
 #include "mind/mind-explanations-table.h"
 #include "mind/mind-mindcrafter.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-flags.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-flags3.h"
 #include "monster-race/race-flags7.h"
@@ -1463,16 +1464,16 @@ static bool is_target_grid_dark(FloorType *f_ptr, POSITION y, POSITION x)
 
             POSITION d = distance(dy, dx, y, x);
             auto *r_ptr = &monraces_info[f_ptr->m_list[m_idx].r_idx];
-            if (d <= 1 && any_bits(r_ptr->flags7, RF7_HAS_LITE_1 | RF7_SELF_LITE_1)) {
+            if (d <= 1 && r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_LITE_1, MonsterBrightnessType::SELF_LITE_1 })) {
                 return false;
             }
-            if (d <= 2 && any_bits(r_ptr->flags7, RF7_HAS_LITE_2 | RF7_SELF_LITE_2)) {
+            if (d <= 2 && r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_LITE_2, MonsterBrightnessType::SELF_LITE_2 })) {
                 return false;
             }
-            if (d <= 1 && any_bits(r_ptr->flags7, RF7_HAS_DARK_1 | RF7_SELF_DARK_1)) {
+            if (d <= 1 && r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_DARK_1, MonsterBrightnessType::SELF_DARK_1 })) {
                 is_dark = true;
             }
-            if (d <= 2 && any_bits(r_ptr->flags7, RF7_HAS_DARK_2 | RF7_SELF_DARK_2)) {
+            if (d <= 2 && r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_DARK_2, MonsterBrightnessType::SELF_DARK_2 })) {
                 is_dark = true;
             }
         }
index 38b3268..8aeafa3 100644 (file)
@@ -15,6 +15,7 @@
 #include "monster-floor/monster-summon.h"
 #include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags7.h"
 #include "monster/monster-describer.h"
 #include "monster/monster-status.h"
@@ -255,7 +256,7 @@ bool shock_power(PlayerType *player_ptr)
     lite_spot(player_ptr, oy, ox);
     lite_spot(player_ptr, ty, tx);
 
-    if (r_ptr->flags7 & (RF7_LITE_MASK | RF7_DARK_MASK)) {
+    if (r_ptr->brightness_flags.has_any_of(ld_mask)) {
         player_ptr->update |= (PU_MON_LITE);
     }
 
index 49e0b80..8bed47e 100644 (file)
@@ -20,6 +20,7 @@
 #include "monster-floor/special-death-switcher.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-flags2.h"
 #include "monster-race/race-flags7.h"
@@ -399,7 +400,7 @@ void monster_death(PlayerType *player_ptr, MONSTER_IDX m_idx, bool drop_item, At
         md_ptr->r_ptr->defeat_level = player_ptr->lev;
     }
 
-    if (md_ptr->r_ptr->flags7 & (RF7_LITE_MASK | RF7_DARK_MASK)) {
+    if (md_ptr->r_ptr->brightness_flags.has_any_of(ld_mask)) {
         player_ptr->update |= PU_MON_LITE;
     }
 
index 6cfec08..68902a4 100644 (file)
@@ -6,6 +6,7 @@
 #include "grid/grid.h"
 #include "monster-floor/monster-lite-util.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-flags.h"
 #include "monster-race/race-flags7.h"
 #include "monster/monster-status.h"
 #include "player-base/player-class.h"
@@ -171,19 +172,19 @@ void update_mon_lite(PlayerType *player_ptr)
             }
 
             int rad = 0;
-            if (r_ptr->flags7 & (RF7_HAS_LITE_1 | RF7_SELF_LITE_1)) {
+            if (r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_LITE_1, MonsterBrightnessType::SELF_LITE_1 })) {
                 rad++;
             }
 
-            if (r_ptr->flags7 & (RF7_HAS_LITE_2 | RF7_SELF_LITE_2)) {
+            if (r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_LITE_2, MonsterBrightnessType::SELF_LITE_2 })) {
                 rad += 2;
             }
 
-            if (r_ptr->flags7 & (RF7_HAS_DARK_1 | RF7_SELF_DARK_1)) {
+            if (r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_DARK_1, MonsterBrightnessType::SELF_DARK_1 })) {
                 rad--;
             }
 
-            if (r_ptr->flags7 & (RF7_HAS_DARK_2 | RF7_SELF_DARK_2)) {
+            if (r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_DARK_2, MonsterBrightnessType::SELF_DARK_2 })) {
                 rad -= 2;
             }
 
@@ -193,7 +194,7 @@ void update_mon_lite(PlayerType *player_ptr)
 
             TerrainCharacteristics f_flag;
             if (rad > 0) {
-                if (!(r_ptr->flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) && (m_ptr->is_asleep() || (!floor_ptr->dun_level && is_daytime()) || player_ptr->phase_out)) {
+                if (r_ptr->brightness_flags.has_none_of({ MonsterBrightnessType::SELF_LITE_1, MonsterBrightnessType::SELF_LITE_2 }) && (m_ptr->is_asleep() || (!floor_ptr->dun_level && is_daytime()) || player_ptr->phase_out)) {
                     continue;
                 }
 
@@ -204,7 +205,7 @@ void update_mon_lite(PlayerType *player_ptr)
                 add_mon_lite = update_monster_lite;
                 f_flag = TerrainCharacteristics::LOS;
             } else {
-                if (!(r_ptr->flags7 & (RF7_SELF_DARK_1 | RF7_SELF_DARK_2)) && (m_ptr->is_asleep() || (!floor_ptr->dun_level && !is_daytime()))) {
+                if (r_ptr->brightness_flags.has_none_of({ MonsterBrightnessType::SELF_DARK_1, MonsterBrightnessType::SELF_DARK_2 }) && (m_ptr->is_asleep() || (!floor_ptr->dun_level && !is_daytime()))) {
                     continue;
                 }
 
index ebbc7d4..e5c91ac 100644 (file)
@@ -5,6 +5,7 @@
 #include "floor/floor-object.h"
 #include "grid/grid.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags2.h"
 #include "monster-race/race-flags7.h"
 #include "monster-race/race-indice-types.h"
@@ -98,7 +99,7 @@ void delete_monster_idx(PlayerType *player_ptr, MONSTER_IDX i)
     *m_ptr = {};
     floor_ptr->m_cnt--;
     lite_spot(player_ptr, y, x);
-    if (r_ptr->flags7 & (RF7_LITE_MASK | RF7_DARK_MASK)) {
+    if (r_ptr->brightness_flags.has_any_of(ld_mask)) {
         player_ptr->update |= (PU_MON_LITE);
     }
 }
index 8285b9b..67104dd 100644 (file)
@@ -24,6 +24,7 @@
 #include "monster-floor/place-monster-types.h"
 #include "monster-race/monster-kind-mask.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-flags2.h"
 #include "monster-race/race-flags3.h"
@@ -420,9 +421,9 @@ bool place_monster_one(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSI
         m_ptr->mflag.set(MonsterTemporaryFlagType::BORN);
     }
 
-    if (any_bits(r_ptr->flags7, RF7_SELF_LD_MASK)) {
+    if (r_ptr->brightness_flags.has_any_of(self_ld_mask)) {
         set_bits(player_ptr->update, PU_MON_LITE);
-    } else if (any_bits(r_ptr->flags7, RF7_HAS_LD_MASK) && !m_ptr->is_asleep()) {
+    } else if (r_ptr->brightness_flags.has_any_of(has_ld_mask) && !m_ptr->is_asleep()) {
         set_bits(player_ptr->update, PU_MON_LITE);
     }
     update_monster(player_ptr, g_ptr->m_idx, true);
index 1624c98..e2c6ac6 100644 (file)
@@ -27,3 +27,5 @@ const EnumClassFlagGroup<MonsterBrightnessType> self_ld_mask = {
     MonsterBrightnessType::SELF_DARK_1,
     MonsterBrightnessType::SELF_DARK_2
 };
+
+const EnumClassFlagGroup<MonsterBrightnessType> ld_mask = EnumClassFlagGroup<MonsterBrightnessType>(lite_mask).set(dark_mask);
index 15dc34e..a02c990 100644 (file)
@@ -6,3 +6,4 @@ extern const EnumClassFlagGroup<MonsterBrightnessType> lite_mask;
 extern const EnumClassFlagGroup<MonsterBrightnessType> dark_mask;
 extern const EnumClassFlagGroup<MonsterBrightnessType> has_ld_mask;
 extern const EnumClassFlagGroup<MonsterBrightnessType> self_ld_mask;
+extern const EnumClassFlagGroup<MonsterBrightnessType> ld_mask;
index ecad614..9b5ab79 100644 (file)
@@ -23,6 +23,7 @@
 #include "monster-floor/monster-summon.h"
 #include "monster-race/monster-kind-mask.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-flags2.h"
 #include "monster-race/race-flags3.h"
@@ -359,7 +360,7 @@ void choose_new_monster(PlayerType *player_ptr, MONSTER_IDX m_idx, bool born, Mo
     lite_spot(player_ptr, m_ptr->fy, m_ptr->fx);
 
     auto old_r_idx = m_ptr->r_idx;
-    if ((monraces_info[old_r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK)) || (r_ptr->flags7 & (RF7_LITE_MASK | RF7_DARK_MASK))) {
+    if (monraces_info[old_r_idx].brightness_flags.has_any_of(ld_mask) || r_ptr->brightness_flags.has_any_of(ld_mask)) {
         player_ptr->update |= (PU_MON_LITE);
     }
 
index 222e4f4..a0ce3fc 100644 (file)
@@ -11,6 +11,7 @@
 #include "monster-floor/monster-move.h"
 #include "monster-race/monster-kind-mask.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags3.h"
 #include "monster-race/race-flags7.h"
 #include "monster-race/race-indice-types.h"
@@ -133,7 +134,7 @@ bool set_monster_csleep(PlayerType *player_ptr, MONSTER_IDX m_idx, int v)
         }
     }
 
-    if (monraces_info[m_ptr->r_idx].flags7 & RF7_HAS_LD_MASK) {
+    if (monraces_info[m_ptr->r_idx].brightness_flags.has_any_of(has_ld_mask)) {
         player_ptr->update |= PU_MON_LITE;
     }
 
index d842d45..2f9dcf7 100644 (file)
@@ -17,6 +17,8 @@
 #include "grid/grid.h"
 #include "mind/drs-types.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-flags.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-flags2.h"
 #include "monster-race/race-flags3.h"
@@ -103,12 +105,13 @@ bool update_riding_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, M
  */
 void update_player_type(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MonsterRaceInfo *r_ptr)
 {
+    auto except_has_lite = EnumClassFlagGroup<MonsterBrightnessType>(self_ld_mask).set({ MonsterBrightnessType::HAS_DARK_1, MonsterBrightnessType::HAS_DARK_2 });
     if (turn_flags_ptr->do_view) {
         player_ptr->update |= PU_FLOW;
         player_ptr->window_flags |= PW_OVERHEAD | PW_DUNGEON;
     }
 
-    if (turn_flags_ptr->do_move && ((r_ptr->flags7 & (RF7_SELF_LD_MASK | RF7_HAS_DARK_1 | RF7_HAS_DARK_2)) || ((r_ptr->flags7 & (RF7_HAS_LITE_1 | RF7_HAS_LITE_2)) && !player_ptr->phase_out))) {
+    if (turn_flags_ptr->do_move && (r_ptr->brightness_flags.has_any_of(except_has_lite) || (r_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_LITE_1, MonsterBrightnessType::HAS_LITE_2 }) && !player_ptr->phase_out))) {
         player_ptr->update |= PU_MON_LITE;
     }
 }
index ab9378d..4b09592 100644 (file)
@@ -14,6 +14,7 @@
 #include "mind/drs-types.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-ability-flags.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-flags3.h"
@@ -406,7 +407,7 @@ MonsterSpellResult spell_RF6_DARKNESS(PlayerType *player_ptr, POSITION y, POSITI
     const auto is_ninja = PlayerClass(player_ptr).equals(PlayerClassType::NINJA);
     const auto is_living_monster = r_ptr->kind_flags.has_not(MonsterKindType::UNDEAD);
     const auto is_not_weak_lite = r_ptr->resistance_flags.has_not(MonsterResistanceType::HURT_LITE);
-    if (is_ninja && is_living_monster && is_not_weak_lite && none_bits(r_ptr->flags7, RF7_DARK_MASK)) {
+    if (is_ninja && is_living_monster && is_not_weak_lite && r_ptr->brightness_flags.has_none_of(dark_mask)) {
         can_use_lite_area = true;
     }
 
index f1f54fe..6b1346a 100644 (file)
@@ -11,6 +11,7 @@
 #include "floor/line-of-sight.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-ability-mask.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags2.h"
 #include "monster-race/race-flags3.h"
 #include "monster-race/race-flags7.h"
@@ -193,7 +194,7 @@ void decide_lite_area(PlayerType *player_ptr, msa_type *msa_ptr)
     }
 
     PlayerClass pc(player_ptr);
-    bool can_use_lite_area = pc.equals(PlayerClassType::NINJA) && msa_ptr->r_ptr->kind_flags.has_not(MonsterKindType::UNDEAD) && msa_ptr->r_ptr->resistance_flags.has_not(MonsterResistanceType::HURT_LITE) && ((msa_ptr->r_ptr->flags7 & RF7_DARK_MASK) == 0);
+    bool can_use_lite_area = pc.equals(PlayerClassType::NINJA) && msa_ptr->r_ptr->kind_flags.has_not(MonsterKindType::UNDEAD) && msa_ptr->r_ptr->resistance_flags.has_not(MonsterResistanceType::HURT_LITE) && (msa_ptr->r_ptr->brightness_flags.has_none_of(dark_mask));
 
     if (msa_ptr->r_ptr->behavior_flags.has(MonsterBehaviorType::STUPID)) {
         return;
index 00b05b1..cc17237 100644 (file)
@@ -24,6 +24,7 @@
 #include "mind/mind-ninja.h"
 #include "monster-race/monster-race-hook.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags7.h"
 #include "monster/monster-describer.h"
 #include "monster/monster-info.h"
@@ -426,7 +427,7 @@ concptr do_hissatsu_spell(PlayerType *player_ptr, SPELL_IDX spell, SpellProcessT
                     lite_spot(player_ptr, oy, ox);
                     lite_spot(player_ptr, ty, tx);
 
-                    if (monraces_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK)) {
+                    if (monraces_info[m_ptr->r_idx].brightness_flags.has_any_of(ld_mask)) {
                         player_ptr->update |= (PU_MON_LITE);
                     }
                 }
index d3c367e..2565a86 100644 (file)
@@ -9,6 +9,7 @@
 #include "grid/feature-flag-types.h"
 #include "grid/grid.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags7.h"
 #include "monster/monster-describer.h"
 #include "monster/monster-status-setter.h"
@@ -161,7 +162,7 @@ bool fetch_monster(PlayerType *player_ptr)
     update_monster(player_ptr, m_idx, true);
     lite_spot(player_ptr, target_row, target_col);
     lite_spot(player_ptr, ty, tx);
-    if (monraces_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK)) {
+    if (monraces_info[m_ptr->r_idx].brightness_flags.has_any_of(ld_mask)) {
         player_ptr->update |= (PU_MON_LITE);
     }
 
index 6059d0c..0532a12 100644 (file)
@@ -20,6 +20,7 @@
 #include "main/sound-of-music.h"
 #include "monster-floor/monster-move.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-mask.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-flags7.h"
 #include "monster/monster-info.h"
@@ -194,7 +195,7 @@ bool teleport_away(PlayerType *player_ptr, MONSTER_IDX m_idx, POSITION dis, tele
     lite_spot(player_ptr, oy, ox);
     lite_spot(player_ptr, ny, nx);
 
-    if (monraces_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK)) {
+    if (monraces_info[m_ptr->r_idx].brightness_flags.has_any_of(ld_mask)) {
         player_ptr->update |= (PU_MON_LITE);
     }
 
@@ -275,7 +276,7 @@ void teleport_monster_to(PlayerType *player_ptr, MONSTER_IDX m_idx, POSITION ty,
     lite_spot(player_ptr, oy, ox);
     lite_spot(player_ptr, ny, nx);
 
-    if (monraces_info[m_ptr->r_idx].flags7 & (RF7_LITE_MASK | RF7_DARK_MASK)) {
+    if (monraces_info[m_ptr->r_idx].brightness_flags.has_any_of(ld_mask)) {
         player_ptr->update |= (PU_MON_LITE);
     }
 }
index cc8ad67..778e177 100644 (file)
@@ -3,6 +3,7 @@
 #include "lore/lore-calculator.h"
 #include "lore/lore-util.h"
 #include "monster-race/monster-race.h"
+#include "monster-race/race-brightness-flags.h"
 #include "monster-race/race-flags-resistance.h"
 #include "monster-race/race-flags1.h"
 #include "monster-race/race-flags2.h"
@@ -30,12 +31,12 @@ void display_monster_hp_ac(lore_type *lore_ptr)
 
 void display_monster_concrete_abilities(lore_type *lore_ptr)
 {
-    if (lore_ptr->flags7 & (RF7_HAS_LITE_1 | RF7_HAS_LITE_2)) {
+    if (lore_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_LITE_1, MonsterBrightnessType::HAS_LITE_2 })) {
         lore_ptr->vp[lore_ptr->vn] = _("ダンジョンを照らす", "illuminate the dungeon");
         lore_ptr->color[lore_ptr->vn++] = TERM_WHITE;
     }
 
-    if (lore_ptr->flags7 & (RF7_HAS_DARK_1 | RF7_HAS_DARK_2)) {
+    if (lore_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::HAS_DARK_1, MonsterBrightnessType::HAS_DARK_2 })) {
         lore_ptr->vp[lore_ptr->vn] = _("ダンジョンを暗くする", "darken the dungeon");
         lore_ptr->color[lore_ptr->vn++] = TERM_L_DARK;
     }
@@ -129,11 +130,11 @@ void display_monster_constitutions(lore_type *lore_ptr)
         hooked_roff(format(_("%^sは水中に棲んでいる。", "%^s lives in water.  "), Who::who(lore_ptr->msex)));
     }
 
-    if (lore_ptr->flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) {
+    if (lore_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::SELF_LITE_1, MonsterBrightnessType::SELF_LITE_2 })) {
         hooked_roff(format(_("%^sは光っている。", "%^s is shining.  "), Who::who(lore_ptr->msex)));
     }
 
-    if (lore_ptr->flags7 & (RF7_SELF_DARK_1 | RF7_SELF_DARK_2)) {
+    if (lore_ptr->brightness_flags.has_any_of({ MonsterBrightnessType::SELF_DARK_1, MonsterBrightnessType::SELF_DARK_2 })) {
         hook_c_roff(TERM_L_DARK, format(_("%^sは暗黒に包まれている。", "%^s is surrounded by darkness.  "), Who::who(lore_ptr->msex)));
     }