From b9f8a5f8079ac69d9bc7e4e57f4cf4f28de1f342 Mon Sep 17 00:00:00 2001 From: Hourier Date: Sun, 8 Mar 2020 10:06:14 +0900 Subject: [PATCH] [Refactor] #40030 Moved decide_monster_speed() from monster-process.c to monster-util.c/h --- src/monster-process.c | 29 +---------------------------- src/monster/monster-util.c | 17 +++++++++++++++++ src/monster/monster-util.h | 1 + 3 files changed, 19 insertions(+), 28 deletions(-) diff --git a/src/monster-process.c b/src/monster-process.c index a3e946ee8..0751ebce6 100644 --- a/src/monster-process.c +++ b/src/monster-process.c @@ -86,7 +86,6 @@ bool process_monster_fear(player_type *target_ptr, turn_flags *turn_flags_ptr, M void sweep_monster_process(player_type *target_ptr); bool decide_process_continue(player_type *target_ptr, monster_type *m_ptr); -SPEED decide_monster_speed(player_type *target_ptr, monster_type *m_ptr, int monster_number); /*! * @brief モンスターが敵に接近するための方向を計算するメインルーチン @@ -2184,7 +2183,7 @@ void sweep_monster_process(player_type *target_ptr) if (m_ptr->cdis >= AAF_LIMIT) continue; if (!decide_process_continue(target_ptr, m_ptr)) continue; - SPEED speed = decide_monster_speed(target_ptr, m_ptr, i); + SPEED speed = (target_ptr->riding == i) ? target_ptr->pspeed : decide_monster_speed(m_ptr); m_ptr->energy_need -= SPEED_TO_ENERGY(speed); if (m_ptr->energy_need > 0) continue; @@ -2229,29 +2228,3 @@ bool decide_process_continue(player_type *target_ptr, monster_type *m_ptr) return FALSE; } - - -/*! - * @brief モンスターの加速値を決定する - * @param target_ptr プレーヤーへの参照ポインタ - * @param m_ptr モンスターへの参照ポインタ - * @param monster_number 走査中のモンスター番号 - * return モンスターの加速値 - */ -SPEED decide_monster_speed(player_type *target_ptr, monster_type *m_ptr, int monster_number) -{ - SPEED speed; - if (target_ptr->riding == monster_number) - { - speed = target_ptr->pspeed; - return speed; - } - - speed = m_ptr->mspeed; - if (ironman_nightmare) speed += 5; - - if (MON_FAST(m_ptr)) speed += 10; - if (MON_SLOW(m_ptr)) speed -= 10; - - return speed; -} diff --git a/src/monster/monster-util.c b/src/monster/monster-util.c index 374401642..448330ce9 100644 --- a/src/monster/monster-util.c +++ b/src/monster/monster-util.c @@ -163,6 +163,23 @@ void save_old_race_flags(MONRACE_IDX monster_race_idx, old_race_flags *old_race_ /*! + * @brief モンスターの加速値を決定する + * @param m_ptr モンスターへの参照ポインタ + * return モンスターの加速値 + */ +SPEED decide_monster_speed(monster_type *m_ptr) +{ + SPEED speed = m_ptr->mspeed; + if (ironman_nightmare) speed += 5; + + if (MON_FAST(m_ptr)) speed += 10; + if (MON_SLOW(m_ptr)) speed -= 10; + + return speed; +} + + +/*! * @brief モンスターフラグの更新に基づき、モンスター表示を更新する * @param monster_race_idx モンスターID * @param window ウィンドウフラグ diff --git a/src/monster/monster-util.h b/src/monster/monster-util.h index 0c66fdcdf..03cc0b87d 100644 --- a/src/monster/monster-util.h +++ b/src/monster/monster-util.h @@ -54,4 +54,5 @@ coordinate_candidate init_coordinate_candidate(void); void store_enemy_approch_direction(int *mm, POSITION y, POSITION x); void save_old_race_flags(MONRACE_IDX monster_race_idx, old_race_flags *old_race_flags_ptr); +SPEED decide_monster_speed(monster_type *m_ptr); void update_player_window(MONRACE_IDX monster_race_idx, BIT_FLAGS *window, old_race_flags *old_race_flags_ptr); -- 2.11.0