OSDN Git Service

Merge remote-tracking branch 'remotes/origin/For2.2.2-Fix-Hourier' into For2.2.2...
[hengband/hengband.git] / src / cmd-io / cmd-knowledge.c
1 #include "cmd-io/cmd-knowledge.h"
2 #include "cmd/cmd-draw.h"
3 #include "game-option/birth-options.h"
4 #include "grid/feature.h"
5 #include "io/input-key-acceptor.h"
6 #include "knowledge/knowledge-autopick.h"
7 #include "knowledge/knowledge-experiences.h"
8 #include "knowledge/knowledge-features.h"
9 #include "knowledge/knowledge-inventory.h"
10 #include "knowledge/knowledge-items.h"
11 #include "knowledge/knowledge-mutations.h"
12 #include "knowledge/knowledge-monsters.h"
13 #include "knowledge/knowledge-quests.h"
14 #include "knowledge/knowledge-self.h"
15 #include "knowledge/knowledge-uniques.h"
16 #include "main/sound-of-music.h"
17 #include "term/screen-processor.h"
18 #include "util/int-char-converter.h"
19 #include "view/display-messages.h"
20
21 /*
22  * Interact with "knowledge"
23  */
24 void do_cmd_knowledge(player_type *creature_ptr)
25 {
26         int i, p = 0;
27         bool need_redraw = FALSE;
28         screen_save();
29         while (TRUE)
30         {
31                 Term_clear();
32                 prt(format(_("%d/2 ページ", "page %d/2"), (p + 1)), 2, 65);
33                 prt(_("現在の知識を確認する", "Display current knowledge"), 3, 0);
34                 if (p == 0)
35                 {
36                         prt(_("(1) 既知の伝説のアイテム                 の一覧", "(1) Display known artifacts"), 6, 5);
37                         prt(_("(2) 既知のアイテム                       の一覧", "(2) Display known objects"), 7, 5);
38                         prt(_("(3) 既知の生きているユニーク・モンスター の一覧", "(3) Display remaining uniques"), 8, 5);
39                         prt(_("(4) 既知のモンスター                     の一覧", "(4) Display known monster"), 9, 5);
40                         prt(_("(5) 倒した敵の数                         の一覧", "(5) Display kill count"), 10, 5);
41                         if (!vanilla_town) prt(_("(6) 賞金首                               の一覧", "(6) Display wanted monsters"), 11, 5);
42                         prt(_("(7) 現在のペット                         の一覧", "(7) Display current pets"), 12, 5);
43                         prt(_("(8) 我が家のアイテム                     の一覧", "(8) Display home inventory"), 13, 5);
44                         prt(_("(9) *鑑定*済み装備の耐性                 の一覧", "(9) Display *identified* equip."), 14, 5);
45                         prt(_("(0) 地形の表示文字/タイル                の一覧", "(0) Display terrain symbols."), 15, 5);
46                 }
47                 else
48                 {
49                         prt(_("(a) 自分に関する情報                     の一覧", "(a) Display about yourself"), 6, 5);
50                         prt(_("(b) 突然変異                             の一覧", "(b) Display mutations"), 7, 5);
51                         prt(_("(c) 武器の経験値                         の一覧", "(c) Display weapon proficiency"), 8, 5);
52                         prt(_("(d) 魔法の経験値                         の一覧", "(d) Display spell proficiency"), 9, 5);
53                         prt(_("(e) 技能の経験値                         の一覧", "(e) Display misc. proficiency"), 10, 5);
54                         prt(_("(f) プレイヤーの徳                       の一覧", "(f) Display virtues"), 11, 5);
55                         prt(_("(g) 入ったダンジョン                     の一覧", "(g) Display dungeons"), 12, 5);
56                         prt(_("(h) 実行中のクエスト                     の一覧", "(h) Display current quests"), 13, 5);
57                         prt(_("(i) 現在の自動拾い/破壊設定              の一覧", "(i) Display auto pick/destroy"), 14, 5);
58                 }
59
60                 prt(_("-続く-", "-more-"), 17, 8);
61                 prt(_("ESC) 抜ける", "ESC) Exit menu"), 21, 1);
62                 prt(_("SPACE) 次ページ", "SPACE) Next page"), 21, 30);
63                 prt(_("コマンド:", "Command: "), 20, 0);
64                 i = inkey();
65
66                 if (i == ESCAPE) break;
67                 switch (i)
68                 {
69                 case ' ': /* Page change */
70                 case '-':
71                         p = 1 - p;
72                         break;
73                 case '1': /* Artifacts */
74                         do_cmd_knowledge_artifacts(creature_ptr);
75                         break;
76                 case '2': /* Objects */
77                         do_cmd_knowledge_objects(creature_ptr, &need_redraw, FALSE, -1);
78                         break;
79                 case '3': /* Uniques */
80                         do_cmd_knowledge_uniques(creature_ptr);
81                         break;
82                 case '4': /* Monsters */
83                         do_cmd_knowledge_monsters(creature_ptr, &need_redraw, FALSE, -1);
84                         break;
85                 case '5': /* Kill count  */
86                         do_cmd_knowledge_kill_count(creature_ptr);
87                         break;
88                 case '6': /* wanted */
89                         if (!vanilla_town) do_cmd_knowledge_bounty(creature_ptr);
90                         break;
91                 case '7': /* Pets */
92                         do_cmd_knowledge_pets(creature_ptr);
93                         break;
94                 case '8': /* Home */
95                         do_cmd_knowledge_home(creature_ptr);
96                         break;
97                 case '9': /* Resist list */
98                         do_cmd_knowledge_inventory(creature_ptr);
99                         break;
100                 case '0': /* Feature list */
101                 {
102                         IDX lighting_level = F_LIT_STANDARD;
103                         do_cmd_knowledge_features(&need_redraw, FALSE, -1, &lighting_level);
104                 }
105                 break;
106                 /* Next page */
107                 case 'a': /* Max stat */
108                         do_cmd_knowledge_stat(creature_ptr);
109                         break;
110                 case 'b': /* Mutations */
111                         do_cmd_knowledge_mutations(creature_ptr);
112                         break;
113                 case 'c': /* weapon-exp */
114                         do_cmd_knowledge_weapon_exp(creature_ptr);
115                         break;
116                 case 'd': /* spell-exp */
117                         do_cmd_knowledge_spell_exp(creature_ptr);
118                         break;
119                 case 'e': /* skill-exp */
120                         do_cmd_knowledge_skill_exp(creature_ptr);
121                         break;
122                 case 'f': /* Virtues */
123                         do_cmd_knowledge_virtues(creature_ptr);
124                         break;
125                 case 'g': /* Dungeon */
126                         do_cmd_knowledge_dungeon(creature_ptr);
127                         break;
128                 case 'h': /* Quests */
129                         do_cmd_knowledge_quests(creature_ptr);
130                         break;
131                 case 'i': /* Autopick */
132                         do_cmd_knowledge_autopick(creature_ptr);
133                         break;
134                 default: /* Unknown option */
135                         bell();
136                 }
137
138                 msg_erase();
139         }
140
141         screen_load();
142         if (need_redraw) do_cmd_redraw(creature_ptr);
143 }