1 #include "object-hook/hook-quest.h"
2 #include "artifact/fixed-art-types.h"
3 #include "cmd-building/cmd-building.h"
4 #include "dungeon/quest.h"
5 #include "game-option/birth-options.h"
6 #include "monster-race/monster-race.h"
7 #include "monster-race/race-indice-types.h"
8 #include "object-enchant/trg-types.h"
9 #include "system/artifact-type-definition.h"
10 #include "system/floor-type-definition.h"
11 #include "system/item-entity.h"
12 #include "system/monster-race-info.h"
13 #include "system/player-type-definition.h"
14 #include "util/enum-converter.h"
15 #include "world/world.h"
18 * @brief オブジェクトが賞金首の報酬対象になるかを返す
19 * @param o_ptr 対象のオブジェクト構造体ポインタ
20 * @return オブジェクトが報酬対象になるならTRUEを返す
22 bool object_is_bounty(PlayerType *player_ptr, const ItemEntity *o_ptr)
24 if (o_ptr->bi_key.tval() != ItemKindType::CORPSE) {
32 auto corpse_r_idx = i2enum<MonsterRaceId>(o_ptr->pval);
33 if (player_ptr->knows_daily_bounty && (streq(monraces_info[corpse_r_idx].name.data(), monraces_info[w_ptr->today_mon].name.data()))) {
37 if (corpse_r_idx == MonsterRaceId::TSUCHINOKO) {
41 return MonsterRace(corpse_r_idx).is_bounty(true);
45 * @brief オブジェクトがクエストの達成目的か否かを返す。
46 * @param o_ptr 特性短縮表記を得たいオブジェクト構造体の参照ポインタ
47 * @return 現在クエスト達成目的のアイテムならばTRUEを返す。
49 bool object_is_quest_target(QuestId quest_idx, const ItemEntity *o_ptr)
51 if (!inside_quest(quest_idx)) {
55 const auto &quest = QuestList::get_instance()[quest_idx];
56 if (quest.has_reward()) {
60 const auto &artifact = quest.get_reward();
61 if (artifact.gen_flags.has(ItemGenerationTraitType::INSTA_ART)) {
65 return o_ptr->bi_key == artifact.bi_key;