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);
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);
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);
55 * Determine if a given inventory item is "aware"
57 #define object_is_aware(T) (k_info[(T)->k_idx].aware)
60 * Determine if a given inventory item is "tried"
62 #define object_is_tried(T) (k_info[(T)->k_idx].tried)
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"
69 #define object_is_known(T) (((T)->ident & (IDENT_KNOWN)) || (k_info[(T)->k_idx].easy_know && k_info[(T)->k_idx].aware))
71 #define OBJECT_IS_VALID(T) ((T)->k_idx != 0)
73 #define OBJECT_IS_HELD_MONSTER(T) ((T)->held_m_idx != 0)
76 * Artifacts use the "name1" field
78 #define object_is_fixed_artifact(T) ((T)->name1 ? TRUE : FALSE)
81 * Ego-Items use the "name2" field
83 #define object_is_ego(T) ((T)->name2 ? TRUE : FALSE)
88 #define object_is_broken(T) ((T)->ident & (IDENT_BROKEN))
93 #define object_is_cursed(T) ((T)->curse_flags)
95 extern bool item_tester_okay(object_type *o_ptr, OBJECT_TYPE_VALUE tval);