OSDN Git Service

[Refactor] #2647 monster_fast_remaining() を monster_type::is_accelerated() とmonster_t...
authorHourier <66951241+Hourier@users.noreply.github.com>
Sat, 17 Sep 2022 07:33:18 +0000 (16:33 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sun, 18 Sep 2022 11:06:53 +0000 (20:06 +0900)
17 files changed:
src/effect/effect-monster-charm.cpp
src/effect/effect-monster-oldies.cpp
src/monster-floor/monster-remover.cpp
src/monster/monster-processor-util.cpp
src/monster/monster-status-setter.cpp
src/monster/monster-status.cpp
src/monster/monster-status.h
src/mspell/mspell-judgement.cpp
src/mspell/mspell-selector.cpp
src/mspell/mspell-status.cpp
src/player-status/player-speed.cpp
src/save/monster-writer.cpp
src/spell-kind/spells-sight.cpp
src/system/monster-type-definition.cpp
src/system/monster-type-definition.h
src/view/display-player-middle.cpp
src/window/main-window-stat-poster.cpp

index 78705c5..c35aabf 100644 (file)
@@ -338,7 +338,7 @@ static bool effect_monster_crusade_domination(PlayerType *player_ptr, effect_mon
 
     if (em_ptr->m_ptr->is_pet()) {
         em_ptr->note = _("の動きが速くなった。", " starts moving faster.");
-        (void)set_monster_fast(player_ptr, em_ptr->g_ptr->m_idx, monster_fast_remaining(em_ptr->m_ptr) + 100);
+        (void)set_monster_fast(player_ptr, em_ptr->g_ptr->m_idx, em_ptr->m_ptr->get_remaining_acceleration() + 100);
         return true;
     }
 
@@ -358,7 +358,7 @@ static bool effect_monster_crusade_domination(PlayerType *player_ptr, effect_mon
 
     em_ptr->note = _("を支配した。", " is tamed!");
     set_pet(player_ptr, em_ptr->m_ptr);
-    (void)set_monster_fast(player_ptr, em_ptr->g_ptr->m_idx, monster_fast_remaining(em_ptr->m_ptr) + 100);
+    (void)set_monster_fast(player_ptr, em_ptr->g_ptr->m_idx, em_ptr->m_ptr->get_remaining_acceleration() + 100);
     if (is_original_ap_and_seen(player_ptr, em_ptr->m_ptr)) {
         em_ptr->r_ptr->r_kind_flags.set(MonsterKindType::GOOD);
     }
index 7774354..f084e03 100644 (file)
@@ -195,7 +195,7 @@ ProcessResult effect_monster_old_speed(PlayerType *player_ptr, effect_monster_ty
         em_ptr->obvious = true;
     }
 
-    if (set_monster_fast(player_ptr, em_ptr->g_ptr->m_idx, monster_fast_remaining(em_ptr->m_ptr) + 100)) {
+    if (set_monster_fast(player_ptr, em_ptr->g_ptr->m_idx, em_ptr->m_ptr->get_remaining_acceleration() + 100)) {
         em_ptr->note = _("の動きが速くなった。", " starts moving faster.");
     }
 
index e981a81..ab025ce 100644 (file)
@@ -43,7 +43,7 @@ void delete_monster_idx(PlayerType *player_ptr, MONSTER_IDX i)
     if (m_ptr->is_asleep()) {
         (void)set_monster_csleep(player_ptr, i, 0);
     }
-    if (monster_fast_remaining(m_ptr)) {
+    if (m_ptr->is_accelerated()) {
         (void)set_monster_fast(player_ptr, i, 0);
     }
     if (monster_slow_remaining(m_ptr)) {
index ebf0c9f..f2944ad 100644 (file)
@@ -323,7 +323,7 @@ byte decide_monster_speed(monster_type *m_ptr)
         speed += 5;
     }
 
-    if (monster_fast_remaining(m_ptr)) {
+    if (m_ptr->is_accelerated()) {
         speed += 10;
     }
     if (monster_slow_remaining(m_ptr)) {
index 101e01c..8bf8657 100644 (file)
@@ -156,12 +156,12 @@ bool set_monster_fast(PlayerType *player_ptr, MONSTER_IDX m_idx, int v)
     v = (v > 200) ? 200 : (v < 0) ? 0
                                   : v;
     if (v) {
-        if (!monster_fast_remaining(m_ptr)) {
+        if (!m_ptr->is_accelerated()) {
             mproc_add(floor_ptr, m_idx, MTIMED_FAST);
             notice = true;
         }
     } else {
-        if (monster_fast_remaining(m_ptr)) {
+        if (m_ptr->is_accelerated()) {
             mproc_remove(floor_ptr, m_idx, MTIMED_FAST);
             notice = true;
         }
index 4921f03..39a08c4 100644 (file)
@@ -241,7 +241,7 @@ static void process_monsters_mtimed_aux(PlayerType *player_ptr, MONSTER_IDX m_id
 
     case MTIMED_FAST:
         /* Reduce by one, note if expires */
-        if (set_monster_fast(player_ptr, m_idx, monster_fast_remaining(m_ptr) - 1)) {
+        if (set_monster_fast(player_ptr, m_idx, m_ptr->get_remaining_acceleration() - 1)) {
             if (is_seen(player_ptr, m_ptr)) {
                 GAME_TEXT m_name[MAX_NLEN];
                 monster_desc(player_ptr, m_name, m_ptr, 0);
@@ -523,11 +523,6 @@ void monster_gain_exp(PlayerType *player_ptr, MONSTER_IDX m_idx, MonsterRaceId s
     }
 }
 
-TIME_EFFECT monster_fast_remaining(monster_type *m_ptr)
-{
-    return m_ptr->mtimed[MTIMED_FAST];
-}
-
 TIME_EFFECT monster_slow_remaining(monster_type *m_ptr)
 {
     return m_ptr->mtimed[MTIMED_SLOW];
index 4a82f16..133d7ab 100644 (file)
@@ -16,7 +16,6 @@ void monster_gain_exp(PlayerType *player_ptr, MONSTER_IDX m_idx, MonsterRaceId s
 
 void process_monsters_mtimed(PlayerType *player_ptr, int mtimed_idx);
 
-TIME_EFFECT monster_fast_remaining(monster_type *m_ptr);
 TIME_EFFECT monster_slow_remaining(monster_type *m_ptr);
 TIME_EFFECT monster_stunned_remaining(monster_type *m_ptr);
 TIME_EFFECT monster_confused_remaining(monster_type *m_ptr);
index d15a346..349d13e 100644 (file)
@@ -224,7 +224,7 @@ bool dispel_check_monster(PlayerType *player_ptr, MONSTER_IDX m_idx, MONSTER_IDX
         return true;
     }
 
-    if ((t_ptr->mspeed < 135) && monster_fast_remaining(t_ptr)) {
+    if ((t_ptr->mspeed < 135) && t_ptr->is_accelerated()) {
         return true;
     }
 
@@ -366,7 +366,8 @@ bool dispel_check(PlayerType *player_ptr, MONSTER_IDX m_idx)
         return true;
     }
 
-    if (player_ptr->riding && (player_ptr->current_floor_ptr->m_list[player_ptr->riding].mspeed < 135) && monster_fast_remaining(&player_ptr->current_floor_ptr->m_list[player_ptr->riding])) {
+    const auto &m_ref = player_ptr->current_floor_ptr->m_list[player_ptr->riding];
+    if (player_ptr->riding && (player_ptr->current_floor_ptr->m_list[player_ptr->riding].mspeed < 135) && m_ref.is_accelerated()) {
         return true;
     }
 
index 3d33c71..7c124eb 100644 (file)
@@ -465,7 +465,7 @@ MonsterAbilityType choose_attack_spell(PlayerType *player_ptr, msa_type *msa_ptr
         }
     }
 
-    if (!haste.empty() && (randint0(100) < 20) && !monster_fast_remaining(m_ptr)) {
+    if (!haste.empty() && (randint0(100) < 20) && !m_ptr->is_accelerated()) {
         return haste[randint0(haste.size())];
     }
 
index f267a7a..bbdd5fd 100644 (file)
@@ -506,7 +506,7 @@ MonsterSpellResult spell_RF6_HASTE(PlayerType *player_ptr, MONSTER_IDX m_idx, MO
 
     monspell_message_base(player_ptr, m_idx, t_idx, msg, player_ptr->effects()->blindness()->is_blind(), target_type);
 
-    if (set_monster_fast(player_ptr, m_idx, monster_fast_remaining(m_ptr) + 100)) {
+    if (set_monster_fast(player_ptr, m_idx, m_ptr->get_remaining_acceleration() + 100)) {
         if (target_type == MONSTER_TO_PLAYER || (target_type == MONSTER_TO_MONSTER && see_m)) {
             msg_format(_("%^sの動きが速くなった。", "%^s starts moving faster."), m_name);
         }
index f5ce9ac..f044db9 100644 (file)
@@ -280,7 +280,7 @@ int16_t PlayerSpeed::riding_bonus()
     }
 
     bonus += (this->player_ptr->skill_exp[PlayerSkillKindType::RIDING] + this->player_ptr->lev * 160L) / 3200;
-    if (monster_fast_remaining(riding_m_ptr)) {
+    if (riding_m_ptr->is_accelerated()) {
         bonus += 10;
     }
 
index 636da80..672f026 100644 (file)
@@ -24,7 +24,7 @@ static void write_monster_flags(monster_type *m_ptr, BIT_FLAGS *flags)
         set_bits(*flags, SaveDataMonsterFlagType::CSLEEP);
     }
 
-    if (monster_fast_remaining(m_ptr)) {
+    if (m_ptr->is_accelerated()) {
         set_bits(*flags, SaveDataMonsterFlagType::FAST);
     }
 
index 46901b8..398cb4f 100644 (file)
@@ -240,7 +240,7 @@ void aggravate_monsters(PlayerType *player_ptr, MONSTER_IDX who)
 
         if (player_has_los_bold(player_ptr, m_ptr->fy, m_ptr->fx)) {
             if (!m_ptr->is_pet()) {
-                (void)set_monster_fast(player_ptr, i, monster_fast_remaining(m_ptr) + 100);
+                (void)set_monster_fast(player_ptr, i, m_ptr->get_remaining_acceleration() + 100);
                 speed = true;
             }
         }
@@ -386,7 +386,7 @@ void probed_monster_info(char *buf, PlayerType *player_ptr, monster_type *m_ptr,
     monster_desc(player_ptr, m_name, m_ptr, MD_IGNORE_HALLU | MD_INDEF_HIDDEN);
 
     auto speed = m_ptr->mspeed - 110;
-    if (monster_fast_remaining(m_ptr)) {
+    if (m_ptr->is_accelerated()) {
         speed += 10;
     }
     if (monster_slow_remaining(m_ptr)) {
index 3eadf36..ffeabf8 100644 (file)
@@ -89,3 +89,13 @@ bool monster_type::is_asleep() const
 {
     return this->get_remaining_sleep() > 0;
 }
+
+short monster_type::get_remaining_acceleration() const
+{
+    return this->mtimed[MTIMED_FAST];
+}
+
+bool monster_type::is_accelerated() const
+{
+    return this->get_remaining_acceleration() > 0;
+}
index 2702f7d..9558845 100644 (file)
@@ -61,5 +61,7 @@ struct monster_type {
     MonsterRaceId get_real_r_idx() const;
     monster_race &get_real_r_ref() const;
     short get_remaining_sleep() const;
+    short get_remaining_acceleration() const;
     bool is_asleep() const;
+    bool is_accelerated() const;
 };
index 4398ec3..25342ca 100644 (file)
@@ -187,7 +187,8 @@ static int calc_temporary_speed(PlayerType *player_ptr)
             tmp_speed = 99;
         }
     } else {
-        if (monster_fast_remaining(&player_ptr->current_floor_ptr->m_list[player_ptr->riding])) {
+        const auto &m_ref = player_ptr->current_floor_ptr->m_list[player_ptr->riding];
+        if (m_ref.is_accelerated()) {
             tmp_speed += 10;
         }
         if (monster_slow_remaining(&player_ptr->current_floor_ptr->m_list[player_ptr->riding])) {
index 7ca40f0..01e1aa5 100644 (file)
@@ -271,9 +271,9 @@ void print_speed(PlayerType *player_ptr)
         auto is_slow = player_ptr->effects()->deceleration()->is_slow();
         if (player_ptr->riding) {
             auto *m_ptr = &floor_ptr->m_list[player_ptr->riding];
-            if (monster_fast_remaining(m_ptr) && !monster_slow_remaining(m_ptr)) {
+            if (m_ptr->is_accelerated() && !monster_slow_remaining(m_ptr)) {
                 attr = TERM_L_BLUE;
-            } else if (monster_slow_remaining(m_ptr) && !monster_fast_remaining(m_ptr)) {
+            } else if (monster_slow_remaining(m_ptr) && !m_ptr->is_accelerated()) {
                 attr = TERM_VIOLET;
             } else {
                 attr = TERM_GREEN;
@@ -290,9 +290,9 @@ void print_speed(PlayerType *player_ptr)
         auto is_slow = player_ptr->effects()->deceleration()->is_slow();
         if (player_ptr->riding) {
             auto *m_ptr = &floor_ptr->m_list[player_ptr->riding];
-            if (monster_fast_remaining(m_ptr) && !monster_slow_remaining(m_ptr)) {
+            if (m_ptr->is_accelerated() && !monster_slow_remaining(m_ptr)) {
                 attr = TERM_L_BLUE;
-            } else if (monster_slow_remaining(m_ptr) && !monster_fast_remaining(m_ptr)) {
+            } else if (monster_slow_remaining(m_ptr) && !m_ptr->is_accelerated()) {
                 attr = TERM_VIOLET;
             } else {
                 attr = TERM_RED;