From 8b393ba088170791fe0db29d7a4d9f101db17465 Mon Sep 17 00:00:00 2001 From: Deskull Date: Sat, 19 Jan 2019 20:49:36 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#37353=20determine=5Frandom=5Fquest?= =?utf8?q?or()=20=E3=82=92=20quest.c=20=E3=81=B8=E7=A7=BB=E5=8B=95?= =?utf8?q?=E3=80=82=20/=20Move=20determine=5Frandom=5Fquestor()=20to=20que?= =?utf8?q?st.c.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/birth.c | 40 +--------------------------------------- src/externs.h | 1 - src/load.c | 1 + src/quest.c | 40 ++++++++++++++++++++++++++++++++++++++++ src/quest.h | 4 +++- 5 files changed, 45 insertions(+), 41 deletions(-) diff --git a/src/birth.c b/src/birth.c index d47613591..fe6fc59b4 100644 --- a/src/birth.c +++ b/src/birth.c @@ -15,6 +15,7 @@ #include "history.h" #include "monsterrace-hook.h" #include "store.h" +#include "quest.h" /*! * オートローラーの内容を描画する間隔 / @@ -1829,45 +1830,6 @@ static void player_wipe_without_name(void) } -/*! - * @brief ランダムクエストの討伐ユニークを決める / Determine the random quest uniques - * @param q_ptr クエスト構造体の参照ポインタ - * @return なし - */ -void determine_random_questor(quest_type *q_ptr) -{ - MONRACE_IDX r_idx; - monster_race *r_ptr; - - - get_mon_num_prep(mon_hook_quest, NULL); - - while (1) - { - /* - * Random monster 5 - 10 levels out of depth - * (depending on level) - */ - r_idx = get_mon_num(q_ptr->level + 5 + randint1(q_ptr->level / 10)); - r_ptr = &r_info[r_idx]; - - if (!(r_ptr->flags1 & RF1_UNIQUE)) continue; - if (r_ptr->flags1 & RF1_QUESTOR) continue; - if (r_ptr->rarity > 100) continue; - if (r_ptr->flags7 & RF7_FRIENDLY) continue; - if (r_ptr->flags7 & RF7_AQUATIC) continue; - if (r_ptr->flags8 & RF8_WILD_ONLY) continue; - if (no_questor_or_bounty_uniques(r_idx)) continue; - - /* - * Accept monsters that are 2 - 6 levels - * out of depth depending on the quest level - */ - if (r_ptr->level > (q_ptr->level + (q_ptr->level / 20))) break; - } - - q_ptr->r_idx = r_idx; -} /*! * @brief ダンジョン内部のクエストを初期化する / Initialize random quests and final quests diff --git a/src/externs.h b/src/externs.h index ab077725a..3deb78616 100644 --- a/src/externs.h +++ b/src/externs.h @@ -468,7 +468,6 @@ extern void add_history_from_pref_line(concptr t); extern void player_birth(void); extern void get_max_stats(void); extern void get_height_weight(void); -extern void determine_random_questor(quest_type *q_ptr); extern void player_outfit(void); extern void dump_yourself(FILE *fff); diff --git a/src/load.c b/src/load.c index 037f6529b..ac452d979 100644 --- a/src/load.c +++ b/src/load.c @@ -44,6 +44,7 @@ #include "generate.h" #include "trap.h" #include "mutation.h" +#include "quest.h" /* diff --git a/src/quest.c b/src/quest.c index a958d19cf..1bfb55aaf 100644 --- a/src/quest.c +++ b/src/quest.c @@ -1,9 +1,49 @@ #include "angband.h" #include "floor-events.h" #include "quest.h" +#include "monsterrace-hook.h" /*! + * @brief ランダムクエストの討伐ユニークを決める / Determine the random quest uniques + * @param q_ptr クエスト構造体の参照ポインタ + * @return なし + */ +void determine_random_questor(quest_type *q_ptr) +{ + MONRACE_IDX r_idx; + monster_race *r_ptr; + + get_mon_num_prep(mon_hook_quest, NULL); + + while (1) + { + /* + * Random monster 5 - 10 levels out of depth + * (depending on level) + */ + r_idx = get_mon_num(q_ptr->level + 5 + randint1(q_ptr->level / 10)); + r_ptr = &r_info[r_idx]; + + if (!(r_ptr->flags1 & RF1_UNIQUE)) continue; + if (r_ptr->flags1 & RF1_QUESTOR) continue; + if (r_ptr->rarity > 100) continue; + if (r_ptr->flags7 & RF7_FRIENDLY) continue; + if (r_ptr->flags7 & RF7_AQUATIC) continue; + if (r_ptr->flags8 & RF8_WILD_ONLY) continue; + if (no_questor_or_bounty_uniques(r_idx)) continue; + + /* + * Accept monsters that are 2 - 6 levels + * out of depth depending on the quest level + */ + if (r_ptr->level > (q_ptr->level + (q_ptr->level / 20))) break; + } + + q_ptr->r_idx = r_idx; +} + +/*! * @brief クエストを達成状態にする / * @param quest_num 達成状態にしたいクエストのID * @return なし diff --git a/src/quest.h b/src/quest.h index 55b3bcbdc..f9d8011d6 100644 --- a/src/quest.h +++ b/src/quest.h @@ -1,4 +1,6 @@ -extern void complete_quest(QUEST_IDX quest_num); + +extern void determine_random_questor(quest_type *q_ptr); +extern void complete_quest(QUEST_IDX quest_num); extern void check_quest_completion(monster_type *m_ptr); extern void check_find_art_quest_completion(object_type *o_ptr); -- 2.11.0