From 5f09d84f6b070a70b73626265e218e3ece5a410b Mon Sep 17 00:00:00 2001 From: Hourier Date: Mon, 17 Feb 2020 22:09:58 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#40030=20process=5Fmonsters()=20?= =?utf8?q?=E3=81=8B=E3=82=89update=5Fplayer=5Fwindow()=20=E3=82=92?= =?utf8?q?=E5=88=86=E9=9B=A2=20/=20Separated=20update=5Fplayer=5Fwindow()?= =?utf8?q?=20from=20process=5Fmonsters()?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/monster-process.c | 51 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/src/monster-process.c b/src/monster-process.c index 0038cce10..61080323a 100644 --- a/src/monster-process.c +++ b/src/monster-process.c @@ -122,6 +122,7 @@ bool process_monster_fear(player_type *target_ptr, turn_flags *turn_flags_ptr, M void save_old_race_flags(player_type *target_ptr, old_race_flags *old_race_flags_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); +void update_player_window(player_type *target_ptr, old_race_flags *old_race_flags_ptr); /*! * @brief モンスターが敵に接近するための方向を決める / @@ -2665,7 +2666,6 @@ void process_monsters(player_type *target_ptr) if (!decide_process_continue(target_ptr, m_ptr)) continue; SPEED speed = decide_monster_speed(target_ptr, m_ptr, i); - m_ptr->energy_need -= SPEED_TO_ENERGY(speed); if (m_ptr->energy_need > 0) continue; @@ -2685,26 +2685,10 @@ void process_monsters(player_type *target_ptr) if (!target_ptr->monster_race_idx || (target_ptr->monster_race_idx != old_monster_race_idx)) return; - monster_race *r_ptr; - r_ptr = &r_info[target_ptr->monster_race_idx]; - - if ((old_race_flags_ptr->old_r_flags1 != r_ptr->r_flags1) || - (old_race_flags_ptr->old_r_flags2 != r_ptr->r_flags2) || - (old_race_flags_ptr->old_r_flags3 != r_ptr->r_flags3) || - (old_race_flags_ptr->old_r_flags4 != r_ptr->r_flags4) || - (old_race_flags_ptr->old_r_flags5 != r_ptr->r_flags5) || - (old_race_flags_ptr->old_r_flags6 != r_ptr->r_flags6) || - (old_race_flags_ptr->old_r_flagsr != r_ptr->r_flagsr) || - (old_race_flags_ptr->old_r_blows0 != r_ptr->r_blows[0]) || - (old_race_flags_ptr->old_r_blows1 != r_ptr->r_blows[1]) || - (old_race_flags_ptr->old_r_blows2 != r_ptr->r_blows[2]) || - (old_race_flags_ptr->old_r_blows3 != r_ptr->r_blows[3]) || - (old_race_flags_ptr->old_r_cast_spell != r_ptr->r_cast_spell)) - { - target_ptr->window |= (PW_MONSTER); - } + update_player_window(target_ptr, old_race_flags_ptr); } + /*! * @brief old_race_flags_ptr の初期化 */ @@ -2732,6 +2716,7 @@ old_race_flags *init_old_race_flags(old_race_flags *old_race_flags_ptr) * @brief 古いモンスター情報の保存 * @param target_ptr プレーヤーへの参照ポインタ * @param old_race_flags_ptr モンスターフラグへの参照ポインタ + * @return なし */ void save_old_race_flags(player_type *target_ptr, old_race_flags *old_race_flags_ptr) { @@ -2813,3 +2798,31 @@ SPEED decide_monster_speed(player_type *target_ptr, monster_type *m_ptr, int mon return speed; } + + +/*! + * @brief モンスターフラグの更新に基づき、モンスター表示を更新する + * @param target_ptr プレーヤーへの参照ポインタ + * @param old_race_flags_ptr モンスターフラグへの参照ポインタ + * @return なし + */ +void update_player_window(player_type *target_ptr, old_race_flags *old_race_flags_ptr) +{ + monster_race *r_ptr; + r_ptr = &r_info[target_ptr->monster_race_idx]; + if ((old_race_flags_ptr->old_r_flags1 != r_ptr->r_flags1) || + (old_race_flags_ptr->old_r_flags2 != r_ptr->r_flags2) || + (old_race_flags_ptr->old_r_flags3 != r_ptr->r_flags3) || + (old_race_flags_ptr->old_r_flags4 != r_ptr->r_flags4) || + (old_race_flags_ptr->old_r_flags5 != r_ptr->r_flags5) || + (old_race_flags_ptr->old_r_flags6 != r_ptr->r_flags6) || + (old_race_flags_ptr->old_r_flagsr != r_ptr->r_flagsr) || + (old_race_flags_ptr->old_r_blows0 != r_ptr->r_blows[0]) || + (old_race_flags_ptr->old_r_blows1 != r_ptr->r_blows[1]) || + (old_race_flags_ptr->old_r_blows2 != r_ptr->r_blows[2]) || + (old_race_flags_ptr->old_r_blows3 != r_ptr->r_blows[3]) || + (old_race_flags_ptr->old_r_cast_spell != r_ptr->r_cast_spell)) + { + target_ptr->window |= (PW_MONSTER); + } +} -- 2.11.0