From: deskull Date: Mon, 29 Apr 2019 14:53:45 +0000 (+0900) Subject: [Refactor] #37353 determine_today_mon() を bldg.c/h へ移動。 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3af6e3c45c397adc55bd2f5626493672b0d8e3fb;p=hengband%2Fhengband.git [Refactor] #37353 determine_today_mon() を bldg.c/h へ移動。 --- diff --git a/src/bldg.c b/src/bldg.c index 599b18f55..3f0001ff8 100644 --- a/src/bldg.c +++ b/src/bldg.c @@ -30,6 +30,7 @@ #include "avatar.h" #include "bldg.h" +#include "dungeon.h" #include "mutation.h" #include "quest.h" #include "artifact.h" @@ -4200,3 +4201,47 @@ void do_cmd_bldg(void) p_ptr->redraw |= (PR_BASIC | PR_EXTRA | PR_EQUIPPY | PR_MAP); p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON); } + + +/*! + * @brief 今日の賞金首を確定する / Determine today's bounty monster + * @return なし + * @note conv_old is used if loaded 0.0.3 or older save file + */ +void determine_today_mon(bool conv_old) +{ + int max_dl = 3, i; + bool old_inside_battle = p_ptr->inside_battle; + monster_race *r_ptr; + + if (!conv_old) + { + for (i = 0; i < max_d_idx; i++) + { + if (max_dlv[i] < d_info[i].mindepth) continue; + if (max_dl < max_dlv[i]) max_dl = max_dlv[i]; + } + } + else max_dl = MAX(max_dlv[DUNGEON_ANGBAND], 3); + + p_ptr->inside_battle = TRUE; + get_mon_num_prep(NULL, NULL); + + while (1) + { + today_mon = get_mon_num(max_dl); + r_ptr = &r_info[today_mon]; + + if (r_ptr->flags1 & RF1_UNIQUE) continue; + if (r_ptr->flags7 & (RF7_NAZGUL | RF7_UNIQUE2)) continue; + if (r_ptr->flags2 & RF2_MULTIPLY) continue; + if ((r_ptr->flags9 & (RF9_DROP_CORPSE | RF9_DROP_SKELETON)) != (RF9_DROP_CORPSE | RF9_DROP_SKELETON)) continue; + if (r_ptr->level < MIN(max_dl / 2, 40)) continue; + if (r_ptr->rarity > 10) continue; + break; + } + + p_ptr->today_mon = 0; + p_ptr->inside_battle = old_inside_battle; +} + diff --git a/src/bldg.h b/src/bldg.h index db912d9bd..02bd15df0 100644 --- a/src/bldg.h +++ b/src/bldg.h @@ -95,3 +95,4 @@ extern void update_gambling_monsters(void); extern void do_cmd_bldg(void); extern void clear_bldg(int min_row, int max_row); +extern void determine_today_mon(bool conv_old); diff --git a/src/core.c b/src/core.c index 79b61997b..4c4ae8982 100644 --- a/src/core.c +++ b/src/core.c @@ -5322,49 +5322,6 @@ void determine_bounty_uniques(void) } } - -/*! - * @brief 今日の賞金首を確定する / Determine today's bounty monster - * @return なし - * @note conv_old is used if loaded 0.0.3 or older save file - */ -void determine_today_mon(bool conv_old) -{ - int max_dl = 3, i; - bool old_inside_battle = p_ptr->inside_battle; - monster_race *r_ptr; - - if (!conv_old) - { - for (i = 0; i < max_d_idx; i++) - { - if (max_dlv[i] < d_info[i].mindepth) continue; - if (max_dl < max_dlv[i]) max_dl = max_dlv[i]; - } - } - else max_dl = MAX(max_dlv[DUNGEON_ANGBAND], 3); - - p_ptr->inside_battle = TRUE; - get_mon_num_prep(NULL, NULL); - - while (1) - { - today_mon = get_mon_num(max_dl); - r_ptr = &r_info[today_mon]; - - if (r_ptr->flags1 & RF1_UNIQUE) continue; - if (r_ptr->flags7 & (RF7_NAZGUL | RF7_UNIQUE2)) continue; - if (r_ptr->flags2 & RF2_MULTIPLY) continue; - if ((r_ptr->flags9 & (RF9_DROP_CORPSE | RF9_DROP_SKELETON)) != (RF9_DROP_CORPSE | RF9_DROP_SKELETON)) continue; - if (r_ptr->level < MIN(max_dl / 2, 40)) continue; - if (r_ptr->rarity > 10) continue; - break; - } - - p_ptr->today_mon = 0; - p_ptr->inside_battle = old_inside_battle; -} - /*! * @brief 1ゲームプレイの主要ルーチン / Actually play a game * @return なし diff --git a/src/externs.h b/src/externs.h index 31b268128..2335b4411 100644 --- a/src/externs.h +++ b/src/externs.h @@ -382,7 +382,6 @@ extern void do_cmd_suicide(void); /* dungeon.c */ extern void extract_option_vars(void); extern void determine_bounty_uniques(void); -extern void determine_today_mon(bool conv_old); extern void play_game(bool new_game); extern s32b turn_real(s32b hoge); extern void prevent_turn_overflow(void);