From c9754e65c850cae9b2eddd6e750c91f2efc78262 Mon Sep 17 00:00:00 2001 From: Hourier Date: Sun, 16 Feb 2020 23:28:46 +0900 Subject: [PATCH 1/1] =?utf8?q?[Refactor]=20#40030=20process=5Fmonster()=20?= =?utf8?q?=E3=81=8B=E3=82=89update=5Fplayer=5Ftype()=20=E3=82=92=E5=88=86?= =?utf8?q?=E9=9B=A2=20/=20Separated=20update=5Fplayer=5Ftype()=20from=20pr?= =?utf8?q?ocess=5Fmonster()?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/monster-process.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/src/monster-process.c b/src/monster-process.c index 178205bf1..5ebebb773 100644 --- a/src/monster-process.c +++ b/src/monster-process.c @@ -90,6 +90,8 @@ bool update_riding_monster(player_type *target_ptr, turn_flags *turn_flags_ptr, void update_object_by_monster_movement(player_type *target_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, POSITION ny, POSITION nx); +void update_player_type(player_type *target_ptr, turn_flags *turn_flags_ptr, monster_race *r_ptr); + /*! * @brief モンスターが敵に接近するための方向を決める / * Calculate the direction to the next enemy @@ -1173,17 +1175,7 @@ void process_monster(player_type *target_ptr, MONSTER_IDX m_idx) } } - if (turn_flags_ptr->do_view) - { - target_ptr->update |= (PU_FLOW); - target_ptr->window |= (PW_OVERHEAD | PW_DUNGEON); - } - - if (turn_flags_ptr->do_move && ((r_ptr->flags7 & (RF7_SELF_LD_MASK | RF7_HAS_DARK_1 | RF7_HAS_DARK_2)) - || ((r_ptr->flags7 & (RF7_HAS_LITE_1 | RF7_HAS_LITE_2)) && !target_ptr->phase_out))) - { - target_ptr->update |= (PU_MON_LITE); - } + update_player_type(target_ptr, turn_flags_ptr, r_ptr); if (is_original_ap_and_seen(target_ptr, m_ptr)) { @@ -2468,6 +2460,28 @@ void update_object_by_monster_movement(player_type *target_ptr, turn_flags *turn /*! + * @brief updateフィールドを更新する + * @param target_ptr プレーヤーへの参照ポインタ + * @param turn_flags_ptr ターン経過処理フラグへの参照ポインタ + * @return なし + */ +void update_player_type(player_type *target_ptr, turn_flags *turn_flags_ptr, monster_race *r_ptr) +{ + if (turn_flags_ptr->do_view) + { + target_ptr->update |= (PU_FLOW); + target_ptr->window |= (PW_OVERHEAD | PW_DUNGEON); + } + + if (turn_flags_ptr->do_move && ((r_ptr->flags7 & (RF7_SELF_LD_MASK | RF7_HAS_DARK_1 | RF7_HAS_DARK_2)) + || ((r_ptr->flags7 & (RF7_HAS_LITE_1 | RF7_HAS_LITE_2)) && !target_ptr->phase_out))) + { + target_ptr->update |= (PU_MON_LITE); + } +} + + +/*! * @brief 全モンスターのターン管理メインルーチン / * Process all the "live" monsters, once per game turn. * @return なし -- 2.11.0