OSDN Git Service

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