OSDN Git Service

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