OSDN Git Service

[Refactor] 荒野関連の出現フラグの再定義に合わせる
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Mon, 21 Mar 2022 10:43:26 +0000 (19:43 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Mon, 21 Mar 2022 10:51:16 +0000 (19:51 +0900)
src/action/movement-execution.cpp
src/dungeon/quest.cpp
src/monster-floor/monster-move.cpp
src/monster-race/monster-race-hook.cpp
src/monster/monster-damage.cpp
src/monster/monster-info.cpp
src/mspell/summon-checker.cpp
src/wizard/wizard-spoiler.cpp

index b2ba24a..ef6d015 100644 (file)
@@ -255,7 +255,7 @@ void exe_movement(PlayerType *player_ptr, DIRECTION dir, bool do_pickup, bool br
         player_ptr->running = 0;
         can_move = false;
     } else if (f_ptr->flags.has(FloorFeatureType::TREE) && !p_can_kill_walls) {
-        auto riding_wild_wood = player_ptr->riding && any_bits(r_info[riding_m_ptr->r_idx].flags8, RF8_WILD_WOOD);
+        auto riding_wild_wood = player_ptr->riding && r_info[riding_m_ptr->r_idx].wilderness_flags.has(MonsterWildernessType::WILD_WOOD);
         if (!PlayerClass(player_ptr).equals(PlayerClassType::RANGER) && !player_ptr->levitation && !riding_wild_wood) {
             energy.mul_player_turn_energy(2);
         }
index 20c570d..65811db 100644 (file)
@@ -97,7 +97,7 @@ void determine_random_questor(PlayerType *player_ptr, quest_type *q_ptr)
         if (r_ptr->flags7 & RF7_AQUATIC) {
             continue;
         }
-        if (r_ptr->flags8 & RF8_WILD_ONLY) {
+        if (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY)) {
             continue;
         }
         if (no_questor_or_bounty_uniques(r_idx)) {
index 992ca1f..5d16a02 100644 (file)
@@ -430,7 +430,7 @@ bool process_monster_movement(PlayerType *player_ptr, turn_flags *turn_flags_ptr
         turn_flags_ptr->do_turn = true;
         feature_type *f_ptr;
         f_ptr = &f_info[g_ptr->feat];
-        if (f_ptr->flags.has(FloorFeatureType::TREE) && ((r_ptr->flags7 & RF7_CAN_FLY) == 0) && ((r_ptr->flags8 & RF8_WILD_WOOD) == 0)) {
+        if (f_ptr->flags.has(FloorFeatureType::TREE) && ((r_ptr->flags7 & RF7_CAN_FLY) == 0) && (r_ptr->wilderness_flags.has_not(MonsterWildernessType::WILD_WOOD))) {
             m_ptr->energy_need += ENERGY_NEED();
         }
 
index be4c465..ee50d8b 100644 (file)
@@ -96,7 +96,7 @@ bool mon_hook_quest(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    if (any_bits(r_ptr->flags8, RF8_WILD_ONLY)) {
+    if (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY)) {
         return false;
     }
 
@@ -137,12 +137,15 @@ bool mon_hook_dungeon(PlayerType *player_ptr, MonsterRaceId r_idx)
     auto *r_ptr = &r_info[r_idx];
     dungeon_type *d_ptr = &d_info[player_ptr->dungeon_idx];
 
-    if (any_bits(r_ptr->flags8, RF8_WILD_ONLY)) {
-        return any_bits(d_ptr->mflags8, RF8_WILD_MOUNTAIN) && any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN);
+    if (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY)) {
+        return d_ptr->mon_wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN) && r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN);
     }
 
-    bool land = none_bits(r_ptr->flags7, RF7_AQUATIC);
-    return none_bits(d_ptr->mflags8, RF8_WILD_MOUNTAIN | RF8_WILD_VOLCANO) || (any_bits(d_ptr->mflags8, RF8_WILD_MOUNTAIN) && (land || any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN))) || (any_bits(d_ptr->mflags8, RF8_WILD_VOLCANO) && (land || any_bits(r_ptr->flags8, RF8_WILD_VOLCANO)));
+    auto land = none_bits(r_ptr->flags7, RF7_AQUATIC);
+    auto is_mountain_monster = d_ptr->mon_wilderness_flags.has_none_of({ MonsterWildernessType::WILD_MOUNTAIN, MonsterWildernessType::WILD_VOLCANO });
+    is_mountain_monster |= d_ptr->mon_wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN) && (land || r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN));
+    is_mountain_monster |= d_ptr->mon_wilderness_flags.has(MonsterWildernessType::WILD_VOLCANO) && (land || r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_VOLCANO));
+    return is_mountain_monster;
 }
 
 /*!
@@ -156,7 +159,7 @@ bool mon_hook_ocean(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    return any_bits(r_ptr->flags8, RF8_WILD_OCEAN);
+    return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_OCEAN);
 }
 
 /*!
@@ -170,7 +173,7 @@ bool mon_hook_shore(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    return any_bits(r_ptr->flags8, RF8_WILD_SHORE);
+    return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_SHORE);
 }
 
 /*!
@@ -184,7 +187,7 @@ bool mon_hook_waste(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    return any_bits(r_ptr->flags8, (RF8_WILD_WASTE | RF8_WILD_ALL));
+    return r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_WASTE, MonsterWildernessType::WILD_ALL });
 }
 
 /*!
@@ -198,7 +201,7 @@ bool mon_hook_town(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    return any_bits(r_ptr->flags8, (RF8_WILD_TOWN | RF8_WILD_ALL));
+    return r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_TOWN, MonsterWildernessType::WILD_ALL });
 }
 
 /*!
@@ -212,7 +215,7 @@ bool mon_hook_wood(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    return any_bits(r_ptr->flags8, (RF8_WILD_WOOD | RF8_WILD_ALL));
+    return r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_WOOD, MonsterWildernessType::WILD_ALL });
 }
 
 /*!
@@ -226,7 +229,7 @@ bool mon_hook_volcano(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    return any_bits(r_ptr->flags8, RF8_WILD_VOLCANO);
+    return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_VOLCANO);
 }
 
 /*!
@@ -240,7 +243,7 @@ bool mon_hook_mountain(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    return any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN);
+    return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN);
 }
 
 /*!
@@ -254,7 +257,7 @@ bool mon_hook_grass(PlayerType *player_ptr, MonsterRaceId r_idx)
     (void)player_ptr;
 
     auto *r_ptr = &r_info[r_idx];
-    return any_bits(r_ptr->flags8, (RF8_WILD_GRASS | RF8_WILD_ALL));
+    return r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_GRASS, MonsterWildernessType::WILD_ALL });
 }
 
 /*!
index b43cd21..e5cd37d 100644 (file)
@@ -444,7 +444,7 @@ void MonsterDamageProcessor::get_exp_from_mon(monster_type *m_ptr, int exp_dam)
     s64b_mul(&div_h, &div_l, 0, r_ptr->hdice * (ironman_nightmare ? 2 : 1) * compensation);
 
     /* Special penalty in the wilderness */
-    if (!this->player_ptr->current_floor_ptr->dun_level && (none_bits(r_ptr->flags8, RF8_WILD_ONLY) || r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE))) {
+    if (!this->player_ptr->current_floor_ptr->dun_level && (r_ptr->wilderness_flags.has_not(MonsterWildernessType::WILD_ONLY) || r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE))) {
         s64b_mul(&div_h, &div_l, 0, 5);
     }
 
index 82863bd..167454d 100644 (file)
@@ -87,7 +87,7 @@ bool monster_can_cross_terrain(PlayerType *player_ptr, FEAT_IDX feat, monster_ra
         return false;
     }
 
-    if (f_ptr->flags.has(FloorFeatureType::MOUNTAIN) && (r_ptr->flags8 & RF8_WILD_MOUNTAIN)) {
+    if (f_ptr->flags.has(FloorFeatureType::MOUNTAIN) && (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN))) {
         return true;
     }
 
@@ -196,7 +196,7 @@ bool are_enemies(PlayerType *player_ptr, monster_type *m_ptr, monster_type *n_pt
         return true;
     }
 
-    if ((r_ptr->flags8 & (RF8_WILD_TOWN | RF8_WILD_ALL)) && (s_ptr->flags8 & (RF8_WILD_TOWN | RF8_WILD_ALL))) {
+    if (r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_TOWN, MonsterWildernessType::WILD_ALL }) && s_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_TOWN, MonsterWildernessType::WILD_ALL })) {
         if (!is_pet(m_ptr) && !is_pet(n_ptr)) {
             return false;
         }
index 1aa8087..4b7843b 100644 (file)
@@ -163,7 +163,7 @@ bool check_summon_specific(PlayerType *player_ptr, MonsterRaceId summoner_idx, M
         is_match = ((r_idx == MonsterRaceId::NOV_PALADIN) || (r_idx == MonsterRaceId::NOV_PALADIN_G) || (r_idx == MonsterRaceId::PALADIN) || (r_idx == MonsterRaceId::W_KNIGHT) || (r_idx == MonsterRaceId::ULTRA_PALADIN) || (r_idx == MonsterRaceId::KNI_TEMPLAR));
         break;
     case SUMMON_EAGLES:
-        is_match = (r_ptr->d_char == 'B') && ((r_ptr->flags8 & RF8_WILD_MOUNTAIN) != 0) && ((r_ptr->flags8 & RF8_WILD_ONLY) != 0);
+        is_match = (r_ptr->d_char == 'B') && (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN)) && (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY));
         break;
     case SUMMON_PIRANHAS:
         is_match = r_idx == MonsterRaceId::PIRANHA;
index 9509c0e..69cf201 100644 (file)
@@ -125,43 +125,43 @@ SpoilerOutputResultType spoil_categorized_mon_desc()
 {
     auto status = spoil_mon_desc("mon-desc-ridable.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags7, RF7_RIDING); });
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-wildonly.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_ONLY); });
+        status = spoil_mon_desc("mon-desc-wildonly.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-town.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_TOWN); });
+        status = spoil_mon_desc("mon-desc-town.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_TOWN); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-shore.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_SHORE); });
+        status = spoil_mon_desc("mon-desc-shore.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_SHORE); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-ocean.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_OCEAN); });
+        status = spoil_mon_desc("mon-desc-ocean.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_OCEAN); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-waste.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_WASTE); });
+        status = spoil_mon_desc("mon-desc-waste.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_WASTE); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-wood.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_WOOD); });
+        status = spoil_mon_desc("mon-desc-wood.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_WOOD); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-volcano.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_VOLCANO); });
+        status = spoil_mon_desc("mon-desc-volcano.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_VOLCANO); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-mountain.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN); });
+        status = spoil_mon_desc("mon-desc-mountain.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-grass.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_GRASS); });
+        status = spoil_mon_desc("mon-desc-grass.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_GRASS); });
     }
 
     if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
-        status = spoil_mon_desc("mon-desc-wildall.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_ALL); });
+        status = spoil_mon_desc("mon-desc-wildall.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ALL); });
     }
 
     return status;