OSDN Git Service

[Refactor] FORCE_MAXHPを新定義に合わせた
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 28 Jan 2024 09:09:51 +0000 (18:09 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sat, 3 Feb 2024 09:11:50 +0000 (18:11 +0900)
src/load/old/load-v1-5-0.cpp
src/lore/monster-lore.cpp
src/monster-floor/one-monster-placer.cpp
src/monster-race/monster-race.cpp
src/monster/monster-damage.cpp
src/monster/monster-list.cpp
src/monster/monster-status.cpp
src/view/display-lore-status.cpp
src/wizard/monster-info-spoiler.cpp

index cd4033b..013a008 100644 (file)
@@ -266,7 +266,7 @@ void rd_item_old(ItemEntity *o_ptr)
 
         if (tval == ItemKindType::CAPTURE) {
             const auto &r_ref = monraces_info[i2enum<MonsterRaceId>(o_ptr->pval)];
-            if (r_ref.flags1 & RF1_FORCE_MAXHP) {
+            if (r_ref.misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
                 o_ptr->captured_monster_max_hp = maxroll(r_ref.hdice, r_ref.hside);
             } else {
                 o_ptr->captured_monster_max_hp = damroll(r_ref.hdice, r_ref.hside);
index b1aa107..cd9f9e3 100644 (file)
@@ -119,8 +119,8 @@ static void set_race_flags(lore_type *lore_ptr)
         lore_ptr->misc_flags.set(MonsterMiscType::FORCE_DEPTH);
     }
 
-    if (lore_ptr->r_ptr->flags1 & RF1_FORCE_MAXHP) {
-        lore_ptr->flags1 |= (RF1_FORCE_MAXHP);
+    if (lore_ptr->r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
+        lore_ptr->misc_flags.set(MonsterMiscType::FORCE_MAXHP);
     }
 }
 
index 7debe5d..4959464 100644 (file)
@@ -374,7 +374,7 @@ bool place_monster_one(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSI
         (void)set_monster_csleep(player_ptr, g_ptr->m_idx, (val * 2) + randint1(val * 10));
     }
 
-    if (any_bits(r_ptr->flags1, RF1_FORCE_MAXHP)) {
+    if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
         m_ptr->max_maxhp = maxroll(r_ptr->hdice, r_ptr->hside);
     } else {
         m_ptr->max_maxhp = damroll(r_ptr->hdice, r_ptr->hside);
index 647b642..a32a154 100644 (file)
@@ -96,7 +96,7 @@ int MonsterRace::calc_power() const
     const auto *r_ptr = &monraces_info[this->r_idx];
     auto num_resistances = EnumClassFlagGroup<MonsterResistanceType>(r_ptr->resistance_flags & RFR_EFF_IMMUNE_ELEMENT_MASK).count();
 
-    if (r_ptr->flags1 & RF1_FORCE_MAXHP) {
+    if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
         ret = r_ptr->hdice * r_ptr->hside * 2;
     } else {
         ret = r_ptr->hdice * (r_ptr->hside + 1);
index 14da949..dadfaee 100644 (file)
@@ -385,7 +385,7 @@ void MonsterDamageProcessor::get_exp_from_mon(MonsterEntity *m_ptr, int exp_dam)
     auto div_l = (uint)((this->player_ptr->max_plv + 2) * speed_to_energy(r_ptr->speed));
 
     /* Use (average maxhp * 2) as a denominator */
-    auto compensation = any_bits(r_ptr->flags1, RF1_FORCE_MAXHP) ? r_ptr->hside * 2 : r_ptr->hside + 1;
+    auto compensation = r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) ? r_ptr->hside * 2 : r_ptr->hside + 1;
     s64b_mul(&div_h, &div_l, 0, r_ptr->hdice * (ironman_nightmare ? 2 : 1) * compensation);
 
     /* Special penalty in the wilderness */
index 31018c6..b4c3c6e 100644 (file)
@@ -391,7 +391,7 @@ void choose_new_monster(PlayerType *player_ptr, MONSTER_IDX m_idx, bool born, Mo
     m_ptr->mspeed = get_mspeed(floor_ptr, r_ptr);
 
     int oldmaxhp = m_ptr->max_maxhp;
-    if (r_ptr->flags1 & RF1_FORCE_MAXHP) {
+    if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
         m_ptr->max_maxhp = maxroll(r_ptr->hdice, r_ptr->hside);
     } else {
         m_ptr->max_maxhp = damroll(r_ptr->hdice, r_ptr->hside);
index 8520560..53ca461 100644 (file)
@@ -459,7 +459,7 @@ void monster_gain_exp(PlayerType *player_ptr, MONSTER_IDX m_idx, MonsterRaceId s
     m_ptr->ap_r_idx = m_ptr->r_idx;
     r_ptr = &m_ptr->get_monrace();
 
-    m_ptr->max_maxhp = any_bits(r_ptr->flags1, RF1_FORCE_MAXHP) ? maxroll(r_ptr->hdice, r_ptr->hside) : damroll(r_ptr->hdice, r_ptr->hside);
+    m_ptr->max_maxhp = r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) ? maxroll(r_ptr->hdice, r_ptr->hside) : damroll(r_ptr->hdice, r_ptr->hside);
     if (ironman_nightmare) {
         auto hp = m_ptr->max_maxhp * 2;
         m_ptr->max_maxhp = std::min(MONSTER_MAXHP, hp);
index 51a02a0..effaa84 100644 (file)
@@ -20,7 +20,7 @@ void display_monster_hp_ac(lore_type *lore_ptr)
     }
 
     hooked_roff(format(_("%s^は AC%d の防御力と", "%s^ has an armor rating of %d"), Who::who(lore_ptr->msex), lore_ptr->r_ptr->ac));
-    if ((lore_ptr->flags1 & RF1_FORCE_MAXHP) || (lore_ptr->r_ptr->hside == 1)) {
+    if (lore_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) || (lore_ptr->r_ptr->hside == 1)) {
         auto hp = lore_ptr->r_ptr->hdice * (lore_ptr->nightmare ? 2 : 1) * lore_ptr->r_ptr->hside;
         hooked_roff(format(_(" %d の体力がある。", " and a life rating of %d.  "), std::min(MONSTER_MAXHP, hp)));
     } else {
index 198126c..030ceda 100644 (file)
@@ -127,7 +127,7 @@ SpoilerOutputResultType spoil_mon_desc(std::string_view filename, std::function<
         const auto spd = format("%+d", r_ptr->speed - STANDARD_SPEED);
         const auto ac = format("%d", r_ptr->ac);
         std::string hp;
-        if (any_bits(r_ptr->flags1, RF1_FORCE_MAXHP) || (r_ptr->hside == 1)) {
+        if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) || (r_ptr->hside == 1)) {
             hp = format("%d", r_ptr->hdice * r_ptr->hside);
         } else {
             hp = format("%dd%d", r_ptr->hdice, r_ptr->hside);
@@ -201,7 +201,7 @@ SpoilerOutputResultType spoil_mon_info()
         spoil_out(format("Lev:%d  ", (int)r_ptr->level));
         spoil_out(format("Rar:%d  ", r_ptr->rarity));
         spoil_out(format("Spd:%+d  ", r_ptr->speed - STANDARD_SPEED));
-        if (any_bits(r_ptr->flags1, RF1_FORCE_MAXHP) || (r_ptr->hside == 1)) {
+        if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) || (r_ptr->hside == 1)) {
             spoil_out(format("Hp:%d  ", r_ptr->hdice * r_ptr->hside));
         } else {
             spoil_out(format("Hp:%dd%d  ", r_ptr->hdice, r_ptr->hside));