2 #include "objectkind-hook.h"
3 #include "objectkind.h"
6 * @brief オブジェクトがクロークかどうかを判定する /
7 * Hack -- determine if a template is Cloak
8 * @param k_idx 判定したいオブジェクトのベースアイテムID
9 * @return オブジェクトがクロークならばTRUEを返す
11 bool kind_is_cloak(KIND_OBJECT_IDX k_idx)
13 object_kind *k_ptr = &k_info[k_idx];
15 /* Analyze the item type */
16 if (k_ptr->tval == TV_CLOAK)
27 * @brief オブジェクトが竿状武器かどうかを判定する /
28 * Hack -- determine if a template is Polearm
29 * @param k_idx 判定したいオブジェクトのベースアイテムID
30 * @return オブジェクトが竿状武器ならばTRUEを返す
32 bool kind_is_polearm(KIND_OBJECT_IDX k_idx)
34 object_kind *k_ptr = &k_info[k_idx];
36 /* Analyze the item type */
37 if (k_ptr->tval == TV_POLEARM)
48 * @brief オブジェクトが剣かどうかを判定する /
49 * Hack -- determine if a template is Sword
50 * @param k_idx 判定したいオブジェクトのベースアイテムID
51 * @return オブジェクトが剣ならばTRUEを返す
53 bool kind_is_sword(KIND_OBJECT_IDX k_idx)
55 object_kind *k_ptr = &k_info[k_idx];
57 /* Analyze the item type */
58 if ((k_ptr->tval == TV_SWORD) && (k_ptr->sval > 2))
69 * @brief オブジェクトが魔法書かどうかを判定する /
70 * Hack -- determine if a template is Book
71 * @param k_idx 判定したいオブジェクトのベースアイテムID
72 * @return オブジェクトが魔法書ならばTRUEを返す
74 bool kind_is_book(KIND_OBJECT_IDX k_idx)
76 object_kind *k_ptr = &k_info[k_idx];
78 /* Analyze the item type */
79 if ((k_ptr->tval >= TV_LIFE_BOOK) && (k_ptr->tval <= TV_CRUSADE_BOOK))
90 * @brief オブジェクトがベースアイテム時点でGOODかどうかを判定する /
91 * Hack -- determine if a template is Good book
92 * @param k_idx 判定したいオブジェクトのベースアイテムID
93 * @return オブジェクトがベースアイテム時点でGOODなアイテムならばTRUEを返す
95 bool kind_is_good_book(KIND_OBJECT_IDX k_idx)
97 object_kind *k_ptr = &k_info[k_idx];
99 /* Analyze the item type */
100 if ((k_ptr->tval >= TV_LIFE_BOOK) && (k_ptr->tval <= TV_CRUSADE_BOOK) && (k_ptr->tval != TV_ARCANE_BOOK) && (k_ptr->sval > 1))
105 /* Assume not good */
111 * @brief オブジェクトが鎧かどうかを判定する /
112 * Hack -- determine if a template is Armor
113 * @param k_idx 判定したいオブジェクトのベースアイテムID
114 * @return オブジェクトが鎧ならばTRUEを返す
116 bool kind_is_armor(KIND_OBJECT_IDX k_idx)
118 object_kind *k_ptr = &k_info[k_idx];
120 /* Analyze the item type */
121 if (k_ptr->tval == TV_HARD_ARMOR)
126 /* Assume not good */
132 * @brief オブジェクトが打撃武器かどうかを判定する /
133 * Hack -- determine if a template is hafted weapon
134 * @param k_idx 判定したいオブジェクトのベースアイテムID
135 * @return オブジェクトが打撃武器ならばTRUEを返す
137 bool kind_is_hafted(KIND_OBJECT_IDX k_idx)
139 object_kind *k_ptr = &k_info[k_idx];
141 /* Analyze the item type */
142 if (k_ptr->tval == TV_HAFTED)
147 /* Assume not good */
152 * Hack -- determine if a template is potion
154 bool kind_is_potion(KIND_OBJECT_IDX k_idx)
156 return k_info[k_idx].tval == TV_POTION;
160 * @brief ベースアイテムが上質として扱われるかどうかを返す。
161 * Hack -- determine if a template is "good"
162 * @param k_idx 判定したいベースアイテムのID
163 * @return ベースアイテムが上質ならばTRUEを返す。
165 bool kind_is_good(KIND_OBJECT_IDX k_idx)
167 object_kind *k_ptr = &k_info[k_idx];
169 /* Analyze the item type */
172 /* Armor -- Good unless damaged */
183 if (k_ptr->to_a < 0) return (FALSE);
187 /* Weapons -- Good unless damaged */
194 if (k_ptr->to_h < 0) return (FALSE);
195 if (k_ptr->to_d < 0) return (FALSE);
199 /* Ammo -- Arrows/Bolts are good */
206 /* Books -- High level books are good (except Arcane books) */
208 case TV_SORCERY_BOOK:
215 case TV_CRUSADE_BOOK:
217 case TV_HISSATSU_BOOK:
220 if (k_ptr->sval >= SV_BOOK_MIN_GOOD) return (TRUE);
224 /* Rings -- Rings of Speed are good */
227 if (k_ptr->sval == SV_RING_SPEED) return (TRUE);
228 if (k_ptr->sval == SV_RING_LORDLY) return (TRUE);
232 /* Amulets -- Amulets of the Magi and Resistance are good */
235 if (k_ptr->sval == SV_AMULET_THE_MAGI) return (TRUE);
236 if (k_ptr->sval == SV_AMULET_RESISTANCE) return (TRUE);
241 /* Assume not good */