From: Hourier Date: Sun, 31 May 2020 05:16:01 +0000 (+0900) Subject: [Refactor] #40416 Separated process_eat_food() from make_attack_normal() X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=259c8dc971cf3a61e9ba9d40118638237958c7e9;p=hengband%2Fhengband.git [Refactor] #40416 Separated process_eat_food() from make_attack_normal() --- diff --git a/src/combat/monster-attack-player.c b/src/combat/monster-attack-player.c index ff491b469..cdbcb5cd9 100644 --- a/src/combat/monster-attack-player.c +++ b/src/combat/monster-attack-player.c @@ -333,6 +333,30 @@ static void process_eat_item(player_type *target_ptr, monap_type *monap_ptr) } } +static void process_eat_food(player_type *target_ptr, monap_type *monap_ptr) +{ + for (int i = 0; i < 10; i++) { + INVENTORY_IDX i_idx = (INVENTORY_IDX)randint0(INVEN_PACK); + monap_ptr->o_ptr = &target_ptr->inventory_list[i_idx]; + if (!monap_ptr->o_ptr->k_idx) + continue; + + if ((monap_ptr->o_ptr->tval != TV_FOOD) && !((monap_ptr->o_ptr->tval == TV_CORPSE) && (monap_ptr->o_ptr->sval))) + continue; + + object_desc(target_ptr, monap_ptr->o_name, monap_ptr->o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); +#ifdef JP + msg_format("%s(%c)を%s食べられてしまった!", monap_ptr->o_name, index_to_label(i_idx), ((monap_ptr->o_ptr->number > 1) ? "一つ" : "")); +#else + msg_format("%sour %s (%c) was eaten!", ((o_ptr->number > 1) ? "One of y" : "Y"), monap_ptr->o_name, index_to_label(i_idx)); +#endif + inven_item_increase(target_ptr, i_idx, -1); + inven_item_optimize(target_ptr, i_idx); + monap_ptr->obvious = TRUE; + break; + } +} + /*! * @brief モンスターからの攻撃による充填魔力吸収処理 * @param target_ptr プレーヤーへの参照ポインタ @@ -566,27 +590,7 @@ bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx) if (target_ptr->is_dead || check_multishadow(target_ptr)) break; - for (int i = 0; i < 10; i++) { - INVENTORY_IDX i_idx = (INVENTORY_IDX)randint0(INVEN_PACK); - monap_ptr->o_ptr = &target_ptr->inventory_list[i_idx]; - if (!monap_ptr->o_ptr->k_idx) - continue; - - if ((monap_ptr->o_ptr->tval != TV_FOOD) && !((monap_ptr->o_ptr->tval == TV_CORPSE) && (monap_ptr->o_ptr->sval))) - continue; - - object_desc(target_ptr, monap_ptr->o_name, monap_ptr->o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY)); -#ifdef JP - msg_format("%s(%c)を%s食べられてしまった!", monap_ptr->o_name, index_to_label(i_idx), ((monap_ptr->o_ptr->number > 1) ? "一つ" : "")); -#else - msg_format("%sour %s (%c) was eaten!", ((o_ptr->number > 1) ? "One of y" : "Y"), monap_ptr->o_name, index_to_label(i_idx)); -#endif - inven_item_increase(target_ptr, i_idx, -1); - inven_item_optimize(target_ptr, i_idx); - monap_ptr->obvious = TRUE; - break; - } - + process_eat_food(target_ptr, monap_ptr); break; } case RBE_EAT_LITE: { diff --git a/src/monster/monster-race.h b/src/monster/monster-race.h index d34137d75..4f1bc6e22 100644 --- a/src/monster/monster-race.h +++ b/src/monster/monster-race.h @@ -1,6 +1,7 @@ #pragma once #include "util/util.h" #include "combat/monster-attack-types.h" +#include "combat/monster-attack-effect.h" /* * Monster blow structure