OSDN Git Service

[Fix] クイックメッセージの挙動が以前と異なる
[hengband/hengband.git] / src / inventory / inventory-describer.c
1 #include "inventory/inventory-describer.h"
2 #include "game-option/birth-options.h"
3 #include "inventory/inventory-slot-types.h"
4 #include "player/player-status-flags.h"
5 #include "player/player-status-table.h"
6 #include "system/object-type-definition.h"
7
8 /*!
9  * @brief 所持/装備オブジェクトIDの部位表現を返す /
10  * Return a string mentioning how a given item is carried
11  * @param owner_ptr プレーヤーへの参照ポインタ
12  * @param i 部位表現を求めるプレイヤーの所持/装備オブジェクトID
13  * @return 部位表現の文字列ポインタ
14  */
15 concptr mention_use(player_type *owner_ptr, int i)
16 {
17     concptr p;
18
19     /* Examine the location */
20     switch (i) {
21 #ifdef JP
22     case INVEN_MAIN_HAND:
23         p = owner_ptr->heavy_wield[0]
24             ? "運搬中"
25             : ((has_two_handed_weapons(owner_ptr) && can_attack_with_main_hand(owner_ptr)) ? " 両手" : (left_hander ? " 左手" : " 右手"));
26         break;
27 #else
28     case INVEN_MAIN_HAND:
29         p = owner_ptr->heavy_wield[0] ? "Just lifting" : (can_attack_with_main_hand(owner_ptr) ? "Wielding" : "On arm");
30         break;
31 #endif
32
33 #ifdef JP
34     case INVEN_SUB_HAND:
35         p = owner_ptr->heavy_wield[1]
36             ? "運搬中"
37             : ((has_two_handed_weapons(owner_ptr) && can_attack_with_sub_hand(owner_ptr)) ? " 両手" : (left_hander ? " 右手" : " 左手"));
38         break;
39 #else
40     case INVEN_SUB_HAND:
41         p = owner_ptr->heavy_wield[1] ? "Just lifting" : (can_attack_with_sub_hand(owner_ptr) ? "Wielding" : "On arm");
42         break;
43 #endif
44
45     case INVEN_BOW:
46         p = (adj_str_hold[owner_ptr->stat_ind[A_STR]] < owner_ptr->inventory_list[i].weight / 10) ? _("運搬中", "Just holding") : _("射撃用", "Shooting");
47         break;
48     case INVEN_MAIN_RING:
49         p = (left_hander ? _("左手指", "On left hand") : _("右手指", "On right hand"));
50         break;
51     case INVEN_SUB_RING:
52         p = (left_hander ? _("右手指", "On right hand") : _("左手指", "On left hand"));
53         break;
54     case INVEN_NECK:
55         p = _("  首", "Around neck");
56         break;
57     case INVEN_LITE:
58         p = _(" 光源", "Light source");
59         break;
60     case INVEN_BODY:
61         p = _("  体", "On body");
62         break;
63     case INVEN_OUTER:
64         p = _("体の上", "About body");
65         break;
66     case INVEN_HEAD:
67         p = _("  頭", "On head");
68         break;
69     case INVEN_ARMS:
70         p = _("  手", "On hands");
71         break;
72     case INVEN_FEET:
73         p = _("  足", "On feet");
74         break;
75     default:
76         p = _("ザック", "In pack");
77         break;
78     }
79
80     return p;
81 }
82
83 /*!
84  * @brief 所持/装備オブジェクトIDの現在の扱い方の状態表現を返す /
85  * Return a string describing how a given item is being worn.
86  * @param i 状態表現を求めるプレイヤーの所持/装備オブジェクトID
87  * @return 状態表現内容の文字列ポインタ
88  * @details
89  * Currently, only used for items in the equipment, inventory.
90  */
91 concptr describe_use(player_type *owner_ptr, int i)
92 {
93     concptr p;
94     switch (i) {
95 #ifdef JP
96     case INVEN_MAIN_HAND:
97         p = owner_ptr->heavy_wield[0]
98             ? "運搬中の"
99             : ((has_two_handed_weapons(owner_ptr) && can_attack_with_main_hand(owner_ptr)) ? "両手に装備している"
100                                                                                            : (left_hander ? "左手に装備している" : "右手に装備している"));
101         break;
102 #else
103     case INVEN_MAIN_HAND:
104         p = owner_ptr->heavy_wield[0] ? "just lifting" : (can_attack_with_main_hand(owner_ptr) ? "attacking monsters with" : "wearing on your arm");
105         break;
106 #endif
107
108 #ifdef JP
109     case INVEN_SUB_HAND:
110         p = owner_ptr->heavy_wield[1]
111             ? "運搬中の"
112             : ((has_two_handed_weapons(owner_ptr) && can_attack_with_sub_hand(owner_ptr)) ? "両手に装備している"
113                                                                                           : (left_hander ? "右手に装備している" : "左手に装備している"));
114         break;
115 #else
116     case INVEN_SUB_HAND:
117         p = owner_ptr->heavy_wield[1] ? "just lifting" : (can_attack_with_sub_hand(owner_ptr) ? "attacking monsters with" : "wearing on your arm");
118         break;
119 #endif
120
121     case INVEN_BOW:
122         p = (adj_str_hold[owner_ptr->stat_ind[A_STR]] < owner_ptr->inventory_list[i].weight / 10) ? _("持つだけで精一杯の", "just holding")
123                                                                                                   : _("射撃用に装備している", "shooting missiles with");
124         break;
125     case INVEN_MAIN_RING:
126         p = (left_hander ? _("左手の指にはめている", "wearing on your left hand") : _("右手の指にはめている", "wearing on your right hand"));
127         break;
128     case INVEN_SUB_RING:
129         p = (left_hander ? _("右手の指にはめている", "wearing on your right hand") : _("左手の指にはめている", "wearing on your left hand"));
130         break;
131     case INVEN_NECK:
132         p = _("首にかけている", "wearing around your neck");
133         break;
134     case INVEN_LITE:
135         p = _("光源にしている", "using to light the way");
136         break;
137     case INVEN_BODY:
138         p = _("体に着ている", "wearing on your body");
139         break;
140     case INVEN_OUTER:
141         p = _("身にまとっている", "wearing on your back");
142         break;
143     case INVEN_HEAD:
144         p = _("頭にかぶっている", "wearing on your head");
145         break;
146     case INVEN_ARMS:
147         p = _("手につけている", "wearing on your hands");
148         break;
149     case INVEN_FEET:
150         p = _("足にはいている", "wearing on your feet");
151         break;
152     default:
153         p = _("ザックに入っている", "carrying in your pack");
154         break;
155     }
156
157     return p;
158 }