OSDN Git Service

[Refactor] 出現数上限フラグの再定義に合わせる
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Fri, 15 Apr 2022 13:18:49 +0000 (22:18 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Thu, 14 Jul 2022 14:13:32 +0000 (23:13 +0900)
20 files changed:
src/birth/game-play-initializer.cpp
src/effect/effect-monster-charm.cpp
src/effect/effect-monster-oldies.cpp
src/effect/effect-monster.cpp
src/floor/fixed-map-generator.cpp
src/floor/floor-changer.cpp
src/floor/floor-leaver.cpp
src/market/bounty.cpp
src/melee/melee-postprocess.cpp
src/monster-floor/monster-runaway.cpp
src/monster-floor/monster-summon.cpp
src/monster-floor/one-monster-placer.cpp
src/monster-race/monster-race-hook.cpp
src/monster/monster-damage.cpp
src/monster/monster-list.cpp
src/monster/monster-processor.cpp
src/spell/spells-diceroll.cpp
src/view/display-lore.cpp
src/wizard/monster-info-spoiler.cpp
src/wizard/wizard-game-modifier.cpp

index f130cf9..6f1441c 100644 (file)
@@ -90,7 +90,7 @@ void player_wipe_without_name(PlayerType *player_ptr)
         r_ref.max_num = 100;
         if (r_ref.kind_flags.has(MonsterKindType::UNIQUE)) {
             r_ref.max_num = 1;
-        } else if (r_ref.flags7 & RF7_NAZGUL) {
+        } else if (r_ref.population_flags.has(MonsterPopulationType::NAZGUL)) {
             r_ref.max_num = MAX_NAZGUL_NUM;
         }
 
index f056dba..41755a6 100644 (file)
@@ -448,7 +448,8 @@ ProcessResult effect_monster_capture(PlayerType *player_ptr, effect_monster_type
     auto cannot_capture = quest_monster;
     cannot_capture |= em_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE);
     cannot_capture |= any_bits(em_ptr->r_ptr->flags1, RF1_QUESTOR);
-    cannot_capture |= any_bits(em_ptr->r_ptr->flags7, RF7_NAZGUL | RF7_UNIQUE2);
+    cannot_capture |= em_ptr->r_ptr->population_flags.has(MonsterPopulationType::NAZGUL);
+    cannot_capture |= any_bits(em_ptr->r_ptr->flags7, RF7_UNIQUE2);
     cannot_capture |= (em_ptr->m_ptr->parent_m_idx != 0);
     if (cannot_capture) {
         msg_format(_("%sには効果がなかった。", "%s is unaffected."), em_ptr->m_name);
index 8f90a5e..c2eb0cc 100644 (file)
@@ -51,7 +51,8 @@ ProcessResult effect_monster_old_clone(PlayerType *player_ptr, effect_monster_ty
     has_resistance |= is_pet(em_ptr->m_ptr);
     has_resistance |= em_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE);
     has_resistance |= any_bits(em_ptr->r_ptr->flags1, RF1_QUESTOR);
-    has_resistance |= any_bits(em_ptr->r_ptr->flags7, RF7_NAZGUL | RF7_UNIQUE2);
+    has_resistance |= em_ptr->r_ptr->population_flags.has(MonsterPopulationType::NAZGUL);
+    has_resistance |= any_bits(em_ptr->r_ptr->flags7, RF7_UNIQUE2);
 
     if (has_resistance) {
         em_ptr->note = _("には効果がなかった。", " is unaffected.");
index 0fcc91f..68e0e11 100644 (file)
@@ -380,7 +380,7 @@ static void affected_monster_prevents_bad_status(PlayerType *player_ptr, effect_
         em_ptr->do_polymorph = false;
     }
 
-    if ((em_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(em_ptr->r_ptr->flags1, RF1_QUESTOR) || (em_ptr->r_ptr->flags7 & RF7_NAZGUL)) && !player_ptr->phase_out && (em_ptr->who > 0) && (em_ptr->dam > em_ptr->m_ptr->hp)) {
+    if ((em_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(em_ptr->r_ptr->flags1, RF1_QUESTOR) || (em_ptr->r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) && !player_ptr->phase_out && (em_ptr->who > 0) && (em_ptr->dam > em_ptr->m_ptr->hp)) {
         em_ptr->dam = em_ptr->m_ptr->hp;
     }
 }
index 974b85c..6636cd1 100644 (file)
@@ -134,7 +134,7 @@ static void parse_qtw_D(PlayerType *player_ptr, qtwg_type *qtwg_ptr, char *s)
             if (r_ref.kind_flags.has(MonsterKindType::UNIQUE)) {
                 r_ref.cur_num = 0;
                 r_ref.max_num = 1;
-            } else if (r_ref.flags7 & RF7_NAZGUL) {
+            } else if (r_ref.population_flags.has(MonsterPopulationType::NAZGUL)) {
                 if (r_ref.cur_num == r_ref.max_num) {
                     r_ref.max_num++;
                 }
index 323a908..1355f78 100644 (file)
@@ -181,7 +181,7 @@ static void update_unique_artifact(floor_type *floor_ptr, int16_t cur_floor_id)
         }
 
         r_ptr = real_r_ptr(m_ptr);
-        if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) {
+        if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
             r_ptr->floor_id = cur_floor_id;
         }
     }
@@ -268,7 +268,7 @@ static void reset_unique_by_floor_change(PlayerType *player_ptr)
         }
 
         r_ptr = real_r_ptr(m_ptr);
-        if (r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE) && !(r_ptr->flags7 & RF7_NAZGUL)) {
+        if (r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE) && r_ptr->population_flags.has_not(MonsterPopulationType::NAZGUL)) {
             continue;
         }
 
index c857f7a..6adabe7 100644 (file)
@@ -282,7 +282,7 @@ static void preserve_info(PlayerType *player_ptr)
         }
 
         r_ptr = real_r_ptr(m_ptr);
-        if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) {
+        if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
             continue;
         }
 
index 4bc614b..16dd3ea 100644 (file)
@@ -305,7 +305,7 @@ void determine_daily_bounty(PlayerType *player_ptr, bool conv_old)
         if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
             continue;
         }
-        if (r_ptr->flags7 & (RF7_NAZGUL | RF7_UNIQUE2)) {
+        if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL) || any_bits(r_ptr->flags7, RF7_UNIQUE2)) {
             continue;
         }
         if (r_ptr->flags2 & RF2_MULTIPLY) {
index c9d75f2..c9bcc67 100644 (file)
@@ -187,7 +187,7 @@ static bool check_monster_hp(PlayerType *player_ptr, mam_pp_type *mam_pp_ptr)
         return false;
     }
 
-    if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags1, RF1_QUESTOR) || (r_ptr->flags7 & RF7_NAZGUL)) && !player_ptr->phase_out) {
+    if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags1, RF1_QUESTOR) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) && !player_ptr->phase_out) {
         mam_pp_ptr->m_ptr->hp = 1;
         return false;
     }
index 11c515a..af935a5 100644 (file)
@@ -71,7 +71,7 @@ bool runaway_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER
     auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
     auto *r_ptr = &r_info[m_ptr->r_idx];
     bool can_runaway = is_pet(m_ptr) || is_friendly(m_ptr);
-    can_runaway &= (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) || ((r_ptr->flags7 & RF7_NAZGUL) != 0);
+    can_runaway &= (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL));
     can_runaway &= !player_ptr->phase_out;
     if (!can_runaway) {
         return false;
index 709ea79..6b7785d 100644 (file)
@@ -59,7 +59,7 @@ static bool summon_specific_okay(PlayerType *player_ptr, MonsterRaceId r_idx)
         }
     }
 
-    if (!summon_unique_okay && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL))) {
+    if (!summon_unique_okay && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)))) {
         return false;
     }
 
@@ -67,7 +67,7 @@ static bool summon_specific_okay(PlayerType *player_ptr, MonsterRaceId r_idx)
         return true;
     }
 
-    if ((summon_specific_who < 0) && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr)) {
+    if ((summon_specific_who < 0) && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr)) {
         return false;
     }
 
index 1894ef4..8f55084 100644 (file)
@@ -123,7 +123,7 @@ static bool check_unique_placeable(PlayerType *player_ptr, MonsterRaceId r_idx)
     }
 
     auto *r_ptr = &r_info[r_idx];
-    if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags7, RF7_NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
+    if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
         return false;
     }
 
@@ -284,7 +284,7 @@ bool place_monster_one(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSI
     }
 
     msg_format_wizard(player_ptr, CHEAT_MONSTER, _("%s(Lv%d)を生成しました。", "%s(Lv%d) was generated."), name, r_ptr->level);
-    if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags7, RF7_NAZGUL) || (r_ptr->level < 10)) {
+    if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL) || (r_ptr->level < 10)) {
         reset_bits(mode, PM_KAGE);
     }
 
@@ -428,7 +428,7 @@ bool place_monster_one(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSI
      * Memorize location of the unique monster in saved floors.
      * A unique monster move from old saved floor.
      */
-    if (w_ptr->character_dungeon && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags7, RF7_NAZGUL))) {
+    if (w_ptr->character_dungeon && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
         real_r_ptr(m_ptr)->floor_id = player_ptr->floor_id;
     }
 
index b3a1228..edaee9e 100644 (file)
@@ -949,7 +949,7 @@ bool item_monster_okay(PlayerType *player_ptr, MonsterRaceId r_idx)
         return false;
     }
 
-    if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+    if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
         return false;
     }
 
index e5cd37d..f193682 100644 (file)
@@ -200,7 +200,7 @@ void MonsterDamageProcessor::death_special_flag_monster()
         return;
     }
 
-    if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+    if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
         r_ptr->max_num--;
         return;
     }
index b871a93..b4e868b 100644 (file)
@@ -150,7 +150,7 @@ MonsterRaceId get_mon_num(PlayerType *player_ptr, DEPTH min_level, DEPTH max_lev
         auto r_idx = i2enum<MonsterRaceId>(entry.index);
         auto r_ptr = &r_info[r_idx];
         if (!(option & GMN_ARENA) && !chameleon_change_m_idx) {
-            if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & (RF7_NAZGUL))) && (r_ptr->cur_num >= r_ptr->max_num)) {
+            if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
                 continue;
             }
 
index 78d8b19..5aa10bb 100644 (file)
@@ -333,7 +333,7 @@ void process_angar(PlayerType *player_ptr, MONSTER_IDX m_idx, bool see_m)
         gets_angry = true;
     }
 
-    if (is_pet(m_ptr) && (((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr)) || r_ptr->resistance_flags.has(MonsterResistanceType::RESIST_ALL))) {
+    if (is_pet(m_ptr) && (((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr)) || r_ptr->resistance_flags.has(MonsterResistanceType::RESIST_ALL))) {
         gets_angry = true;
     }
 
index 770612f..da64c57 100644 (file)
@@ -50,7 +50,7 @@ bool common_saving_throw_charm(PlayerType *player_ptr, int pow, monster_type *m_
     }
 
     pow += (adj_chr_chm[player_ptr->stat_index[A_CHR]] - 1);
-    if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) {
+    if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
         pow = pow * 2 / 3;
     }
     return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
@@ -83,7 +83,7 @@ bool common_saving_throw_control(PlayerType *player_ptr, int pow, monster_type *
     }
 
     pow += adj_chr_chm[player_ptr->stat_index[A_CHR]] - 1;
-    if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) {
+    if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
         pow = pow * 2 / 3;
     }
     return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
index f48a2ea..2fae7c2 100644 (file)
@@ -197,7 +197,7 @@ static void display_number_of_nazguls(lore_type *lore_ptr)
     if (lore_ptr->mode != MONSTER_LORE_DEBUG && lore_ptr->r_ptr->r_tkills == 0) {
         return;
     }
-    if (!any_bits(lore_ptr->r_ptr->flags7, RF7_NAZGUL)) {
+    if (!lore_ptr->r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
         return;
     }
 
index d9793fa..c6901ae 100644 (file)
@@ -127,7 +127,7 @@ SpoilerOutputResultType spoil_mon_desc(concptr fname, std::function<bool(const m
 
         if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
             sprintf(nam, "[U] %s", name_buf);
-        } else if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+        } else if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
             sprintf(nam, "[N] %s", name_buf);
         } else {
             sprintf(nam, _("    %s", "The %s"), name_buf);
@@ -210,7 +210,7 @@ SpoilerOutputResultType spoil_mon_info(concptr fname)
         auto *r_ptr = &r_info[r_idx];
         if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
             spoil_out("[U] ");
-        } else if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+        } else if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
             spoil_out("[N] ");
         }
 
index 594f910..acb7601 100644 (file)
@@ -170,7 +170,7 @@ void wiz_restore_monster_max_num(MonsterRaceId r_idx)
     auto n = 0;
     if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
         n = 1;
-    } else if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+    } else if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
         n = MAX_NAZGUL_NUM;
     }