OSDN Git Service

[Refactor] #40535 Separated main-window-equipments.c/h from player-inventory.c/h
[hengband/hengband.git] / src / window / display-sub-window-items.c
1 #include "window/display-sub-window-items.h"
2 #include "flavor/flavor-util.h"
3 #include "game-option/text-display-options.h"
4 #include "object-enchant/special-object-flags.h"
5 #include "perception/object-perception.h"
6 #include "util/quarks.h"
7 #include "util/string-processor.h"
8
9 void display_short_flavors(player_type *player_ptr, flavor_type *flavor_ptr)
10 {
11     flavor_ptr->tmp_val2[0] = '\0';
12     if ((abbrev_extra || abbrev_all) && object_is_fully_known(flavor_ptr->o_ptr)) {
13         if (!flavor_ptr->o_ptr->inscription || !angband_strchr(quark_str(flavor_ptr->o_ptr->inscription), '%')) {
14             bool kanji = _(TRUE, FALSE);
15             get_ability_abbreviation(player_ptr, flavor_ptr->tmp_val2, flavor_ptr->o_ptr, kanji, abbrev_all);
16         }
17     }
18
19     if (flavor_ptr->o_ptr->inscription == 0)
20         return;
21
22     char buff[1024];
23     if (flavor_ptr->tmp_val2[0])
24         strcat(flavor_ptr->tmp_val2, ", ");
25
26     get_inscription(player_ptr, buff, flavor_ptr->o_ptr);
27     angband_strcat(flavor_ptr->tmp_val2, buff, sizeof(flavor_ptr->tmp_val2));
28 }
29
30 void display_item_discount(flavor_type *flavor_ptr)
31 {
32     if ((flavor_ptr->o_ptr->discount == 0) || (flavor_ptr->tmp_val2[0] && ((flavor_ptr->o_ptr->ident & IDENT_STORE) == 0)))
33         return;
34
35     char discount_num_buf[4];
36     if (flavor_ptr->fake_insc_buf[0])
37         strcat(flavor_ptr->fake_insc_buf, ", ");
38
39     (void)object_desc_num(discount_num_buf, flavor_ptr->o_ptr->discount);
40     strcat(flavor_ptr->fake_insc_buf, discount_num_buf);
41     strcat(flavor_ptr->fake_insc_buf, _("%引き", "% off"));
42 }
43
44 /*!
45  * @brief 呪いの有無や割引率等を表示する
46  * @param flavor_ptr アイテム表記への参照ポインタ
47  * @return なし
48  */
49 void display_item_fake_inscription(flavor_type *flavor_ptr)
50 {
51     if ((flavor_ptr->fake_insc_buf[0] == '\0') && (flavor_ptr->tmp_val2[0] == '\0'))
52         return;
53
54     flavor_ptr->t = object_desc_chr(flavor_ptr->t, ' ');
55     flavor_ptr->t = object_desc_chr(flavor_ptr->t, flavor_ptr->c1);
56     if (flavor_ptr->fake_insc_buf[0])
57         flavor_ptr->t = object_desc_str(flavor_ptr->t, flavor_ptr->fake_insc_buf);
58
59     if ((flavor_ptr->fake_insc_buf[0] != '\0') && (flavor_ptr->tmp_val2[0] != '\0')) {
60         flavor_ptr->t = object_desc_chr(flavor_ptr->t, ',');
61         flavor_ptr->t = object_desc_chr(flavor_ptr->t, ' ');
62     }
63
64     if (flavor_ptr->tmp_val2[0])
65         flavor_ptr->t = object_desc_str(flavor_ptr->t, flavor_ptr->tmp_val2);
66
67     flavor_ptr->t = object_desc_chr(flavor_ptr->t, flavor_ptr->c2);
68 }