OSDN Git Service

Merge remote-tracking branch 'remotes/hengbandosx/english-mind-edits' into feature...
[hengband/hengband.git] / src / object-hook / hook-armor.c
1 #include "object-hook/hook-armor.h"
2 #include "inventory/inventory-slot-types.h"
3 #include "object-hook/hook-checker.h"
4 #include "object/object-info.h"
5 #include "sv-definition/sv-armor-types.h"
6 #include "system/object-type-definition.h"
7
8 /*!
9  * @brief オブジェクトを防具として装備できるかの判定 / The "wearable" tester
10  * @param o_ptr 判定するオブジェクトの構造体参照ポインタ
11  * @return オブジェクトが防具として装備できるならTRUEを返す。
12  */
13 bool item_tester_hook_wear(player_type *player_ptr, object_type *o_ptr)
14 {
15     if ((o_ptr->tval == TV_SOFT_ARMOR) && (o_ptr->sval == SV_ABUNAI_MIZUGI))
16         if (player_ptr->psex == SEX_MALE)
17             return FALSE;
18
19     /* Check for a usable slot */
20     if (wield_slot(player_ptr, o_ptr) >= INVEN_MAIN_HAND)
21         return TRUE;
22
23     return FALSE;
24 }
25
26 /*!
27  * @brief 呪術領域の各処理に使える呪われた装備かどうかを返す。 / An "item_tester_hook" for offer
28  * @param o_ptr オブジェクト構造体の参照ポインタ
29  * @return 使える装備ならばTRUEを返す
30  */
31 bool item_tester_hook_cursed(player_type *player_ptr, object_type *o_ptr)
32 {
33     /* Unused */
34     (void)player_ptr;
35
36     return (bool)(object_is_cursed(o_ptr));
37 }
38
39 /*!
40  * @brief オブジェクトが防具として装備できるかどうかを返す / Check if an object is armour
41  * @param o_ptr 対象のオブジェクト構造体ポインタ
42  * @return 矢弾として使えるならばTRUEを返す
43  */
44 bool object_is_armour(player_type *player_ptr, object_type *o_ptr)
45 {
46     /* Unused */
47     (void)player_ptr;
48
49     if (TV_ARMOR_BEGIN <= o_ptr->tval && o_ptr->tval <= TV_ARMOR_END)
50         return TRUE;
51
52     return FALSE;
53 }