From 7f38cd3f03c5871dc33295385b91ec15662bd103 Mon Sep 17 00:00:00 2001 From: Hourier Date: Fri, 24 Apr 2020 17:48:42 +0900 Subject: [PATCH] [Refactor] #40236 Separated cmd-knowledge.c/h from cmd-dump.c/h --- Hengband_vcs2017/Hengband/Hengband.vcxproj | 2 + Hengband_vcs2017/Hengband/Hengband.vcxproj.filters | 6 + src/Makefile.am | 1 + src/cmd/cmd-dump.c | 141 --------------------- src/cmd/cmd-dump.h | 1 - src/cmd/cmd-knowledge.c | 138 ++++++++++++++++++++ src/cmd/cmd-knowledge.h | 3 + src/core.c | 1 + src/market/store.c | 1 + 9 files changed, 152 insertions(+), 142 deletions(-) create mode 100644 src/cmd/cmd-knowledge.c create mode 100644 src/cmd/cmd-knowledge.h diff --git a/Hengband_vcs2017/Hengband/Hengband.vcxproj b/Hengband_vcs2017/Hengband/Hengband.vcxproj index 8fa05f95f..ba9bee8f5 100644 --- a/Hengband_vcs2017/Hengband/Hengband.vcxproj +++ b/Hengband_vcs2017/Hengband/Hengband.vcxproj @@ -152,6 +152,7 @@ + @@ -286,6 +287,7 @@ + diff --git a/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters b/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters index 2864f9c74..0decc0d0c 100644 --- a/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters +++ b/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters @@ -622,6 +622,9 @@ knowledge + + cmd + @@ -1226,6 +1229,9 @@ knowledge + + cmd + diff --git a/src/Makefile.am b/src/Makefile.am index a3265febf..9b5d262c1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -168,6 +168,7 @@ hengband_SOURCES = \ cmd/cmd-gameoption.c cmd/cmd-gameoption.h cmd/cmd-help.c cmd/cmd-help.h \ cmd/cmd-hissatsu.c cmd/cmd-hissatsu.h cmd/cmd-inn.c cmd/cmd-inn.h \ cmd/cmd-inventory.c cmd/cmd-inventory.h cmd/cmd-item.c cmd/cmd-item.h \ + cmd/cmd-knowledge.c cmd/cmd-knowledge.h \ cmd/lighting-level-table.c cmd/lighting-level-table.h \ cmd/cmd-magiceat.c cmd/cmd-magiceat.h cmd/cmd-mane.c cmd/cmd-mane.h \ cmd/cmd-macro.c cmd/cmd-macro.h cmd/cmd-pet.c cmd/cmd-pet.h \ diff --git a/src/cmd/cmd-dump.c b/src/cmd/cmd-dump.c index 3eb02ab35..fb812de95 100644 --- a/src/cmd/cmd-dump.c +++ b/src/cmd/cmd-dump.c @@ -31,35 +31,20 @@ */ #include "angband.h" -#include "cmd/cmd-draw.h" #include "cmd/cmd-dump.h" -#include "cmd/cmd-inventory.h" -#include "cmd/cmd-visuals.h" #include "cmd/dump-util.h" #include "gameterm.h" #include "core.h" // 暫定。後で消す. #include "io/read-pref-file.h" #include "io/interpret-pref-file.h" -#include "knowledge/knowledge-autopick.h" -#include "knowledge/knowledge-experiences.h" -#include "knowledge/knowledge-features.h" -#include "knowledge/knowledge-items.h" -#include "knowledge/knowledge-monsters.h" -#include "knowledge/knowledge-quests.h" -#include "knowledge/knowledge-self.h" -#include "knowledge/knowledge-uniques.h" - #include "world.h" #include "view/display-player.h" // 暫定。後で消す. #include "player-personality.h" -#include "mutation.h" #include "quest.h" -#include "market/store.h" #include "artifact.h" #include "floor-town.h" #include "cmd/feeling-table.h" -#include "market/store-util.h" #include "english.h" #include "chuukei.h" @@ -393,132 +378,6 @@ void do_cmd_feeling(player_type *creature_ptr) /* - * Interact with "knowledge" - */ -void do_cmd_knowledge(player_type *creature_ptr) -{ - int i, p = 0; - bool need_redraw = FALSE; - FILE_TYPE(FILE_TYPE_TEXT); - screen_save(); - while (TRUE) - { - Term_clear(); - prt(format(_("%d/2 ページ", "page %d/2"), (p + 1)), 2, 65); - prt(_("現在の知識を確認する", "Display current knowledge"), 3, 0); - if (p == 0) - { - prt(_("(1) 既知の伝説のアイテム の一覧", "(1) Display known artifacts"), 6, 5); - prt(_("(2) 既知のアイテム の一覧", "(2) Display known objects"), 7, 5); - prt(_("(3) 既知の生きているユニーク・モンスター の一覧", "(3) Display remaining uniques"), 8, 5); - prt(_("(4) 既知のモンスター の一覧", "(4) Display known monster"), 9, 5); - prt(_("(5) 倒した敵の数 の一覧", "(5) Display kill count"), 10, 5); - if (!vanilla_town) prt(_("(6) 賞金首 の一覧", "(6) Display wanted monsters"), 11, 5); - prt(_("(7) 現在のペット の一覧", "(7) Display current pets"), 12, 5); - prt(_("(8) 我が家のアイテム の一覧", "(8) Display home inventory"), 13, 5); - prt(_("(9) *鑑定*済み装備の耐性 の一覧", "(9) Display *identified* equip."), 14, 5); - prt(_("(0) 地形の表示文字/タイル の一覧", "(0) Display terrain symbols."), 15, 5); - } - else - { - prt(_("(a) 自分に関する情報 の一覧", "(a) Display about yourself"), 6, 5); - prt(_("(b) 突然変異 の一覧", "(b) Display mutations"), 7, 5); - prt(_("(c) 武器の経験値 の一覧", "(c) Display weapon proficiency"), 8, 5); - prt(_("(d) 魔法の経験値 の一覧", "(d) Display spell proficiency"), 9, 5); - prt(_("(e) 技能の経験値 の一覧", "(e) Display misc. proficiency"), 10, 5); - prt(_("(f) プレイヤーの徳 の一覧", "(f) Display virtues"), 11, 5); - prt(_("(g) 入ったダンジョン の一覧", "(g) Display dungeons"), 12, 5); - prt(_("(h) 実行中のクエスト の一覧", "(h) Display current quests"), 13, 5); - prt(_("(i) 現在の自動拾い/破壊設定 の一覧", "(i) Display auto pick/destroy"), 14, 5); - } - - prt(_("-続く-", "-more-"), 17, 8); - prt(_("ESC) 抜ける", "ESC) Exit menu"), 21, 1); - prt(_("SPACE) 次ページ", "SPACE) Next page"), 21, 30); - prt(_("コマンド:", "Command: "), 20, 0); - i = inkey(); - - if (i == ESCAPE) break; - switch (i) - { - case ' ': /* Page change */ - case '-': - p = 1 - p; - break; - case '1': /* Artifacts */ - do_cmd_knowledge_artifacts(creature_ptr); - break; - case '2': /* Objects */ - do_cmd_knowledge_objects(creature_ptr, &need_redraw, FALSE, -1); - break; - case '3': /* Uniques */ - do_cmd_knowledge_uniques(creature_ptr); - break; - case '4': /* Monsters */ - do_cmd_knowledge_monsters(creature_ptr, &need_redraw, FALSE, -1); - break; - case '5': /* Kill count */ - do_cmd_knowledge_kill_count(creature_ptr); - break; - case '6': /* wanted */ - if (!vanilla_town) do_cmd_knowledge_bounty(creature_ptr); - break; - case '7': /* Pets */ - do_cmd_knowledge_pets(creature_ptr); - break; - case '8': /* Home */ - do_cmd_knowledge_home(creature_ptr); - break; - case '9': /* Resist list */ - do_cmd_knowledge_inventory(creature_ptr); - break; - case '0': /* Feature list */ - { - IDX lighting_level = F_LIT_STANDARD; - do_cmd_knowledge_features(&need_redraw, FALSE, -1, &lighting_level); - } - break; - /* Next page */ - case 'a': /* Max stat */ - do_cmd_knowledge_stat(creature_ptr); - break; - case 'b': /* Mutations */ - do_cmd_knowledge_mutations(creature_ptr); - break; - case 'c': /* weapon-exp */ - do_cmd_knowledge_weapon_exp(creature_ptr); - break; - case 'd': /* spell-exp */ - do_cmd_knowledge_spell_exp(creature_ptr); - break; - case 'e': /* skill-exp */ - do_cmd_knowledge_skill_exp(creature_ptr); - break; - case 'f': /* Virtues */ - do_cmd_knowledge_virtues(creature_ptr); - break; - case 'g': /* Dungeon */ - do_cmd_knowledge_dungeon(creature_ptr); - break; - case 'h': /* Quests */ - do_cmd_knowledge_quests(creature_ptr); - break; - case 'i': /* Autopick */ - do_cmd_knowledge_autopick(creature_ptr); - break; - default: /* Unknown option */ - bell(); - } - - msg_erase(); - } - - screen_load(); - if (need_redraw) do_cmd_redraw(creature_ptr); -} - - -/* * Display the time and date * @param creature_ptr プレーヤーへの参照ポインタ * @return なし diff --git a/src/cmd/cmd-dump.h b/src/cmd/cmd-dump.h index c53238a6d..17e2937aa 100644 --- a/src/cmd/cmd-dump.h +++ b/src/cmd/cmd-dump.h @@ -5,7 +5,6 @@ extern void do_cmd_colors(player_type *creature_ptr); extern void do_cmd_note(void); extern void do_cmd_version(void); extern void do_cmd_feeling(player_type *creature_ptr); -extern void do_cmd_knowledge(player_type *creature_ptr); extern void do_cmd_time(player_type *creature_ptr); /* diff --git a/src/cmd/cmd-knowledge.c b/src/cmd/cmd-knowledge.c new file mode 100644 index 000000000..fdfbe5ed8 --- /dev/null +++ b/src/cmd/cmd-knowledge.c @@ -0,0 +1,138 @@ +#include "angband.h" +#include "cmd/cmd-knowledge.h" +#include "knowledge/knowledge-autopick.h" +#include "knowledge/knowledge-experiences.h" +#include "knowledge/knowledge-features.h" +#include "knowledge/knowledge-items.h" +#include "knowledge/knowledge-monsters.h" +#include "knowledge/knowledge-quests.h" +#include "knowledge/knowledge-self.h" +#include "knowledge/knowledge-uniques.h" +#include "cmd/cmd-inventory.h" // 暫定、後で移す. +#include "mutation.h" // 暫定、後で移す. +#include "cmd/cmd-draw.h" + +/* + * Interact with "knowledge" + */ +void do_cmd_knowledge(player_type *creature_ptr) +{ + int i, p = 0; + bool need_redraw = FALSE; + FILE_TYPE(FILE_TYPE_TEXT); + screen_save(); + while (TRUE) + { + Term_clear(); + prt(format(_("%d/2 ページ", "page %d/2"), (p + 1)), 2, 65); + prt(_("現在の知識を確認する", "Display current knowledge"), 3, 0); + if (p == 0) + { + prt(_("(1) 既知の伝説のアイテム の一覧", "(1) Display known artifacts"), 6, 5); + prt(_("(2) 既知のアイテム の一覧", "(2) Display known objects"), 7, 5); + prt(_("(3) 既知の生きているユニーク・モンスター の一覧", "(3) Display remaining uniques"), 8, 5); + prt(_("(4) 既知のモンスター の一覧", "(4) Display known monster"), 9, 5); + prt(_("(5) 倒した敵の数 の一覧", "(5) Display kill count"), 10, 5); + if (!vanilla_town) prt(_("(6) 賞金首 の一覧", "(6) Display wanted monsters"), 11, 5); + prt(_("(7) 現在のペット の一覧", "(7) Display current pets"), 12, 5); + prt(_("(8) 我が家のアイテム の一覧", "(8) Display home inventory"), 13, 5); + prt(_("(9) *鑑定*済み装備の耐性 の一覧", "(9) Display *identified* equip."), 14, 5); + prt(_("(0) 地形の表示文字/タイル の一覧", "(0) Display terrain symbols."), 15, 5); + } + else + { + prt(_("(a) 自分に関する情報 の一覧", "(a) Display about yourself"), 6, 5); + prt(_("(b) 突然変異 の一覧", "(b) Display mutations"), 7, 5); + prt(_("(c) 武器の経験値 の一覧", "(c) Display weapon proficiency"), 8, 5); + prt(_("(d) 魔法の経験値 の一覧", "(d) Display spell proficiency"), 9, 5); + prt(_("(e) 技能の経験値 の一覧", "(e) Display misc. proficiency"), 10, 5); + prt(_("(f) プレイヤーの徳 の一覧", "(f) Display virtues"), 11, 5); + prt(_("(g) 入ったダンジョン の一覧", "(g) Display dungeons"), 12, 5); + prt(_("(h) 実行中のクエスト の一覧", "(h) Display current quests"), 13, 5); + prt(_("(i) 現在の自動拾い/破壊設定 の一覧", "(i) Display auto pick/destroy"), 14, 5); + } + + prt(_("-続く-", "-more-"), 17, 8); + prt(_("ESC) 抜ける", "ESC) Exit menu"), 21, 1); + prt(_("SPACE) 次ページ", "SPACE) Next page"), 21, 30); + prt(_("コマンド:", "Command: "), 20, 0); + i = inkey(); + + if (i == ESCAPE) break; + switch (i) + { + case ' ': /* Page change */ + case '-': + p = 1 - p; + break; + case '1': /* Artifacts */ + do_cmd_knowledge_artifacts(creature_ptr); + break; + case '2': /* Objects */ + do_cmd_knowledge_objects(creature_ptr, &need_redraw, FALSE, -1); + break; + case '3': /* Uniques */ + do_cmd_knowledge_uniques(creature_ptr); + break; + case '4': /* Monsters */ + do_cmd_knowledge_monsters(creature_ptr, &need_redraw, FALSE, -1); + break; + case '5': /* Kill count */ + do_cmd_knowledge_kill_count(creature_ptr); + break; + case '6': /* wanted */ + if (!vanilla_town) do_cmd_knowledge_bounty(creature_ptr); + break; + case '7': /* Pets */ + do_cmd_knowledge_pets(creature_ptr); + break; + case '8': /* Home */ + do_cmd_knowledge_home(creature_ptr); + break; + case '9': /* Resist list */ + do_cmd_knowledge_inventory(creature_ptr); + break; + case '0': /* Feature list */ + { + IDX lighting_level = F_LIT_STANDARD; + do_cmd_knowledge_features(&need_redraw, FALSE, -1, &lighting_level); + } + break; + /* Next page */ + case 'a': /* Max stat */ + do_cmd_knowledge_stat(creature_ptr); + break; + case 'b': /* Mutations */ + do_cmd_knowledge_mutations(creature_ptr); + break; + case 'c': /* weapon-exp */ + do_cmd_knowledge_weapon_exp(creature_ptr); + break; + case 'd': /* spell-exp */ + do_cmd_knowledge_spell_exp(creature_ptr); + break; + case 'e': /* skill-exp */ + do_cmd_knowledge_skill_exp(creature_ptr); + break; + case 'f': /* Virtues */ + do_cmd_knowledge_virtues(creature_ptr); + break; + case 'g': /* Dungeon */ + do_cmd_knowledge_dungeon(creature_ptr); + break; + case 'h': /* Quests */ + do_cmd_knowledge_quests(creature_ptr); + break; + case 'i': /* Autopick */ + do_cmd_knowledge_autopick(creature_ptr); + break; + default: /* Unknown option */ + bell(); + } + + msg_erase(); + } + + screen_load(); + if (need_redraw) do_cmd_redraw(creature_ptr); +} diff --git a/src/cmd/cmd-knowledge.h b/src/cmd/cmd-knowledge.h new file mode 100644 index 000000000..9e5774b79 --- /dev/null +++ b/src/cmd/cmd-knowledge.h @@ -0,0 +1,3 @@ +#pragma once + +void do_cmd_knowledge(player_type *creature_ptr); diff --git a/src/core.c b/src/core.c index 3ee64a9e7..14683fbb1 100644 --- a/src/core.c +++ b/src/core.c @@ -34,6 +34,7 @@ #include "cmd/cmd-help.h" #include "cmd/cmd-hissatsu.h" #include "cmd/cmd-item.h" +#include "cmd/cmd-knowledge.h" #include "cmd/cmd-magiceat.h" #include "cmd/cmd-mane.h" #include "cmd/cmd-macro.h" diff --git a/src/market/store.c b/src/market/store.c index 808e6db1e..47453920d 100644 --- a/src/market/store.c +++ b/src/market/store.c @@ -29,6 +29,7 @@ #include "cmd/cmd-diary.h" #include "cmd/cmd-draw.h" #include "cmd/cmd-dump.h" +#include "cmd/cmd-knowledge.h" #include "cmd/cmd-help.h" #include "cmd/cmd-item.h" #include "cmd/cmd-macro.h" -- 2.11.0