OSDN Git Service

[Refactor] #38862 Moved floor*.c to floor/
[hengband/hengband.git] / src / object / object-hook.h
1 
2 extern bool item_tester_hook_convertible(object_type *o_ptr);
3 extern bool item_tester_hook_recharge(object_type *o_ptr);
4 extern bool item_tester_hook_orthodox_melee_weapons(object_type *o_ptr);
5 extern bool item_tester_hook_melee_weapon(object_type *o_ptr);
6 extern bool item_tester_hook_ammo(object_type *o_ptr);
7 extern bool item_tester_hook_broken_weapon(object_type *o_ptr);
8 extern bool item_tester_hook_boomerang(object_type *o_ptr);
9 extern bool item_tester_hook_eatable(object_type *o_ptr);
10 extern bool item_tester_hook_mochikae(object_type *o_ptr);
11 extern bool item_tester_hook_activate(object_type *o_ptr);
12 extern bool item_tester_hook_wear(object_type *o_ptr);
13 extern bool item_tester_hook_use(object_type *o_ptr);
14 extern bool item_tester_hook_quaff(object_type *o_ptr);
15 extern bool item_tester_hook_readable(object_type *o_ptr);
16 extern bool item_tester_hook_melee_ammo(object_type *o_ptr);
17 extern bool item_tester_hook_weapon_except_bow(object_type *o_ptr);
18 extern bool item_tester_hook_cursed(object_type *o_ptr);
19 extern bool item_tester_hook_nameless_weapon_armour(object_type *o_ptr);
20 extern bool item_tester_hook_identify(object_type *o_ptr);
21 extern bool item_tester_hook_identify_weapon_armour(object_type *o_ptr);
22 extern bool item_tester_hook_identify_fully(object_type *o_ptr);
23 extern bool item_tester_hook_identify_fully_weapon_armour(object_type *o_ptr);
24 extern bool item_tester_hook_recharge(object_type *o_ptr);
25
26 extern bool item_tester_learn_spell(object_type *o_ptr);
27 extern bool item_tester_high_level_book(object_type *o_ptr);
28 extern bool item_tester_refill_lantern(object_type *o_ptr);
29
30 extern bool object_is_potion(object_type *o_ptr);
31 extern bool object_is_bounty(object_type *o_ptr);
32 extern bool object_is_favorite(object_type *o_ptr);
33 extern bool object_is_rare(object_type *o_ptr);
34 extern bool object_is_weapon(object_type *o_ptr);
35 extern bool object_is_weapon_ammo(object_type *o_ptr);
36 extern bool object_is_ammo(object_type *o_ptr);
37 extern bool object_is_armour(object_type *o_ptr);
38 extern bool object_is_weapon_armour_ammo(object_type *o_ptr);
39 extern bool object_is_melee_weapon(object_type *o_ptr);
40 extern bool object_is_wearable(object_type *o_ptr);
41 extern bool object_is_equipment(object_type *o_ptr);
42 extern bool object_refuse_enchant_weapon(object_type *o_ptr);
43 extern bool object_allow_enchant_weapon(object_type *o_ptr);
44 extern bool object_allow_enchant_melee_weapon(object_type *o_ptr);
45 extern bool object_is_smith(object_type *o_ptr);
46 extern bool object_is_artifact(object_type *o_ptr);
47 extern bool object_is_random_artifact(object_type *o_ptr);
48 extern bool object_is_nameless(object_type *o_ptr);
49 extern bool object_allow_two_hands_wielding(object_type *o_ptr);
50 extern bool object_can_refill_torch(object_type *o_ptr);
51 extern bool can_player_destroy_object(object_type *o_ptr);
52 extern bool object_is_quest_target(object_type *o_ptr);
53
54 /*
55  * Determine if a given inventory item is "aware"
56  */
57 #define object_is_aware(T) (k_info[(T)->k_idx].aware)
58
59  /*
60   * Determine if a given inventory item is "tried"
61   */
62 #define object_is_tried(T) (k_info[(T)->k_idx].tried)
63
64  /*
65   * Determine if a given inventory item is "known"
66   * Test One -- Check for special "known" tag
67   * Test Two -- Check for "Easy Know" + "Aware"
68   */
69 #define object_is_known(T) (((T)->ident & (IDENT_KNOWN)) || (k_info[(T)->k_idx].easy_know && k_info[(T)->k_idx].aware))
70
71 #define OBJECT_IS_FULL_KNOWN(T) ((T)->ident & IDENT_FULL_KNOWN)
72
73 #define OBJECT_IS_VALID(T) ((T)->k_idx != 0)
74
75 #define OBJECT_IS_HELD_MONSTER(T) ((T)->held_m_idx != 0)
76
77 /*
78  * Artifacts use the "name1" field
79  */
80 #define object_is_fixed_artifact(T) ((T)->name1 ? TRUE : FALSE)
81
82 /*
83  * Ego-Items use the "name2" field
84  */
85 #define object_is_ego(T) ((T)->name2 ? TRUE : FALSE)
86
87 /*
88  * Broken items.
89  */
90 #define object_is_broken(T) ((T)->ident & (IDENT_BROKEN))
91
92 /*
93  * Cursed items.
94  */
95 #define object_is_cursed(T) ((T)->curse_flags)
96
97 extern bool item_tester_okay(player_type *player_ptr, object_type *o_ptr, OBJECT_TYPE_VALUE tval);