OSDN Git Service

[Refactor] #40514 player_type の sh_fire 変数を廃止. / Abolished sh_fire variable in player...
[hengband/hengband.git] / src / object-hook / hook-perception.c
1 #include "object-hook/hook-perception.h"
2 #include "object-hook/hook-enchant.h"
3 #include "object-hook/hook-weapon.h"
4 #include "perception/object-perception.h"
5 #include "system/object-type-definition.h"
6
7 /*!
8  * @brief アイテムが並の価値のアイテムかどうか判定する /
9  * Check if an object is nameless weapon or armour
10  * @param o_ptr 判定するアイテムの情報参照ポインタ
11  * @return 並ならばTRUEを返す
12  */
13 bool item_tester_hook_nameless_weapon_armour(player_type *player_ptr, object_type *o_ptr)
14 {
15     /* Unused */
16     (void)player_ptr;
17
18     /* Require weapon or armour */
19     if (!object_is_weapon_armour_ammo(player_ptr, o_ptr))
20         return FALSE;
21
22     /* Require nameless object if the object is well known */
23     if (object_is_known(o_ptr) && !object_is_nameless(player_ptr, o_ptr))
24         return FALSE;
25
26     return TRUE;
27 }
28
29 /*!
30  * @brief アイテムが鑑定済みかを判定する /
31  * @param o_ptr 判定するアイテムの情報参照ポインタ
32  * @return 実際に鑑定済みならばTRUEを返す
33  */
34 bool item_tester_hook_identify(player_type *player_ptr, object_type *o_ptr)
35 {
36     /* Unused */
37     (void)player_ptr;
38
39     return (bool)!object_is_known(o_ptr);
40 }
41
42 /*!
43  * @brief アイテムが鑑定済みの武器防具かを判定する /
44  * @param o_ptr 判定するアイテムの情報参照ポインタ
45  * @return 実際に鑑定済みならばTRUEを返す
46  */
47 bool item_tester_hook_identify_weapon_armour(player_type *player_ptr, object_type *o_ptr)
48 {
49     /* Unused */
50     (void)player_ptr;
51
52     if (object_is_known(o_ptr))
53
54         return FALSE;
55     return object_is_weapon_armour_ammo(player_ptr, o_ptr);
56 }
57
58 /*!
59  * @brief アイテムが*鑑定*済みかを判定する /
60  * @param o_ptr 判定するアイテムの情報参照ポインタ
61  * @return 実際に鑑定済みならばTRUEを返す
62  */
63 bool item_tester_hook_identify_fully(player_type *player_ptr, object_type *o_ptr)
64 {
65     /* Unused */
66     (void)player_ptr;
67
68     return (bool)(!object_is_known(o_ptr) || !object_is_fully_known(o_ptr));
69 }
70
71 /*!
72  * @brief アイテムが*鑑定*済みの武器防具かを判定する /
73  * @param o_ptr 判定するアイテムの情報参照ポインタ
74  * @return 実際に鑑定済みならばTRUEを返す
75  */
76 bool item_tester_hook_identify_fully_weapon_armour(player_type *player_ptr, object_type *o_ptr)
77 {
78     /* Unused */
79     (void)player_ptr;
80
81     if (!item_tester_hook_identify_fully(player_ptr, o_ptr))
82         return FALSE;
83
84     return object_is_weapon_armour_ammo(player_ptr, o_ptr);
85 }