From a09cdc53bf6234b31078e41fd7d18de6fdd75faa Mon Sep 17 00:00:00 2001 From: Hourier Date: Sun, 8 Mar 2020 15:34:25 +0900 Subject: [PATCH] [Refactor] #40236 Separated write-diary.c/h from cmd-dump.c/h --- Hengband_vcs2017/Hengband/Hengband.vcxproj | 2 + Hengband_vcs2017/Hengband/Hengband.vcxproj.filters | 6 + src/birth.c | 3 +- src/bldg.c | 5 +- src/cmd/cmd-basic.c | 1 + src/cmd/cmd-dump.c | 338 +------------------- src/cmd/cmd-dump.h | 47 --- src/cmd/cmd-gameoption.c | 3 +- src/cmd/cmd-pet.c | 3 +- src/cmd/cmd-save.c | 1 + src/cmd/cmd-spell.c | 5 +- src/core.c | 1 + src/floor-generate.c | 3 +- src/floor-save.c | 3 +- src/io/write-diary.c | 346 +++++++++++++++++++++ src/io/write-diary.h | 49 +++ src/main-win.c | 1 + src/monster-process.c | 5 +- src/monster-status.c | 3 +- src/monster1.c | 3 +- src/monster2.c | 3 +- src/mutation.c | 1 + src/object2.c | 5 +- src/patron.c | 3 +- src/player-damage.c | 3 +- src/player-status.c | 7 +- src/quest.c | 3 +- src/scores.c | 3 +- src/signal-handlers.c | 1 + src/spells-floor.c | 5 +- src/spells1.c | 5 +- src/spells2.c | 5 +- src/spells3.c | 1 + src/store.c | 1 + src/trap.c | 1 + src/util.c | 3 +- src/wizard2.c | 1 + 37 files changed, 465 insertions(+), 414 deletions(-) create mode 100644 src/io/write-diary.c create mode 100644 src/io/write-diary.h diff --git a/Hengband_vcs2017/Hengband/Hengband.vcxproj b/Hengband_vcs2017/Hengband/Hengband.vcxproj index 193a4bbb0..8e4a87c3c 100644 --- a/Hengband_vcs2017/Hengband/Hengband.vcxproj +++ b/Hengband_vcs2017/Hengband/Hengband.vcxproj @@ -199,6 +199,7 @@ + @@ -359,6 +360,7 @@ + diff --git a/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters b/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters index 17a301f86..05b41c8ca 100644 --- a/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters +++ b/Hengband_vcs2017/Hengband/Hengband.vcxproj.filters @@ -508,6 +508,9 @@ monster + + io + @@ -998,6 +1001,9 @@ monster + + io + diff --git a/src/birth.c b/src/birth.c index a860be44b..cfeb60ab5 100644 --- a/src/birth.c +++ b/src/birth.c @@ -22,7 +22,8 @@ #include "object-ego.h" #include "artifact.h" #include "avatar.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "dungeon.h" #include "history.h" #include "monster.h" diff --git a/src/bldg.c b/src/bldg.c index 3cb759d34..116227358 100644 --- a/src/bldg.c +++ b/src/bldg.c @@ -18,8 +18,9 @@ #include "core.h" #include "core/show-file.h" -#include "cmd-dump.h" -#include "cmd-magiceat.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" +#include "cmd/cmd-magiceat.h" #include "floor.h" #include "floor-events.h" #include "floor-save.h" diff --git a/src/cmd/cmd-basic.c b/src/cmd/cmd-basic.c index 20b4c8027..1e11cec69 100644 --- a/src/cmd/cmd-basic.c +++ b/src/cmd/cmd-basic.c @@ -14,6 +14,7 @@ #include "core.h" #include "term.h" +#include "io/write-diary.h" #include "cmd/cmd-dump.h" #include "cmd/cmd-save.h" #include "chest.h" diff --git a/src/cmd/cmd-dump.c b/src/cmd/cmd-dump.c index 0bc7ae0c3..729979111 100644 --- a/src/cmd/cmd-dump.c +++ b/src/cmd/cmd-dump.c @@ -45,6 +45,7 @@ #include "core.h" #include "core/show-file.h" #include "io/read-pref-file.h" +#include "io/write-diary.h" #include "chuukei.h" #include "autopick.h" @@ -104,9 +105,6 @@ static SYMBOL_CODE char_idx_feat[F_LIT_MAX]; // Encode the screen colors static char hack[17] = "dwsorgbuDWvyRGBU"; -// todo *抹殺* したい… -bool write_level; - /*! * @brief prf出力内容を消去する / * Remove old lines automatically generated before. @@ -388,340 +386,6 @@ concptr get_ordinal_number_suffix(int num) } #endif - -/*! - * @brief 日記にメッセージを追加する / - * Take note to the diary. - * @param type 日記内容のID - * @param num 日記内容のIDに応じた数値 - * @param note 日記内容のIDに応じた文字列参照ポインタ - * @return エラーID - */ -errr exe_write_diary(player_type *creature_ptr, int type, int num, concptr note) -{ - int day, hour, min; - FILE *fff = NULL; - GAME_TEXT file_name[MAX_NLEN]; - char buf[1024]; - concptr note_level = ""; - bool do_level = TRUE; - char note_level_buf[40]; - QUEST_IDX q_idx; - - static bool disable_diary = FALSE; - - extract_day_hour_min(creature_ptr, &day, &hour, &min); - - if (disable_diary) return(-1); - - if (type == DIARY_FIX_QUEST_C || - type == DIARY_FIX_QUEST_F || - type == DIARY_RAND_QUEST_C || - type == DIARY_RAND_QUEST_F || - type == DIARY_TO_QUEST) - { - QUEST_IDX old_quest = creature_ptr->current_floor_ptr->inside_quest; - creature_ptr->current_floor_ptr->inside_quest = (quest[num].type == QUEST_TYPE_RANDOM) ? 0 : num; - init_flags = INIT_NAME_ONLY; - process_dungeon_file(creature_ptr, "q_info.txt", 0, 0, 0, 0); - creature_ptr->current_floor_ptr->inside_quest = old_quest; - } - - sprintf(file_name, _("playrecord-%s.txt", "playrec-%s.txt"), savefile_base); - path_build(buf, sizeof(buf), ANGBAND_DIR_USER, file_name); - FILE_TYPE(FILE_TYPE_TEXT); - fff = my_fopen(buf, "a"); - if (!fff) - { - msg_format(_("%s を開くことができませんでした。プレイ記録を一時停止します。", "Failed to open %s. Play-Record is disabled temporarily."), buf); - msg_format(NULL); - disable_diary = TRUE; - return -1; - } - - q_idx = quest_number(creature_ptr, creature_ptr->current_floor_ptr->dun_level); - if (write_level) - { - if (creature_ptr->current_floor_ptr->inside_arena) - note_level = _("アリーナ:", "Arane:"); - else if (!creature_ptr->current_floor_ptr->dun_level) - note_level = _("地上:", "Surface:"); - else if (q_idx && (is_fixed_quest_idx(q_idx) - && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT)))) - note_level = _("クエスト:", "Quest:"); - else - { -#ifdef JP - sprintf(note_level_buf, "%d階(%s):", (int)creature_ptr->current_floor_ptr->dun_level, d_name + d_info[creature_ptr->dungeon_idx].name); -#else - sprintf(note_level_buf, "%s L%d:", d_name + d_info[creature_ptr->dungeon_idx].name, (int)creature_ptr->current_floor_ptr->dun_level); -#endif - note_level = note_level_buf; - } - } - - switch (type) - { - case DIARY_DIALY: - { - if (day < MAX_DAYS) fprintf(fff, _("%d日目\n", "Day %d\n"), day); - else fputs(_("*****日目\n", "Day *****\n"), fff); - do_level = FALSE; - break; - } - case DIARY_DESCRIPTION: - { - if (num) - { - fprintf(fff, "%s\n", note); - do_level = FALSE; - } - else - fprintf(fff, " %2d:%02d %20s %s\n", hour, min, note_level, note); - - break; - } - case DIARY_ART: - { - fprintf(fff, _(" %2d:%02d %20s %sを発見した。\n", " %2d:%02d %20s discovered %s.\n"), hour, min, note_level, note); - break; - } - case DIARY_ART_SCROLL: - { - fprintf(fff, _(" %2d:%02d %20s 巻物によって%sを生成した。\n", " %2d:%02d %20s created %s by scroll.\n"), hour, min, note_level, note); - break; - } - case DIARY_UNIQUE: - { - fprintf(fff, _(" %2d:%02d %20s %sを倒した。\n", " %2d:%02d %20s defeated %s.\n"), hour, min, note_level, note); - break; - } - case DIARY_FIX_QUEST_C: - { - if (quest[num].flags & QUEST_FLAG_SILENT) break; - - fprintf(fff, _(" %2d:%02d %20s クエスト「%s」を達成した。\n", - " %2d:%02d %20s completed quest '%s'.\n"), hour, min, note_level, quest[num].name); - break; - } - case DIARY_FIX_QUEST_F: - { - if (quest[num].flags & QUEST_FLAG_SILENT) break; - - fprintf(fff, _(" %2d:%02d %20s クエスト「%s」から命からがら逃げ帰った。\n", - " %2d:%02d %20s run away from quest '%s'.\n"), hour, min, note_level, quest[num].name); - break; - } - case DIARY_RAND_QUEST_C: - { - GAME_TEXT name[MAX_NLEN]; - strcpy(name, r_name + r_info[quest[num].r_idx].name); - fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)を達成した。\n", - " %2d:%02d %20s completed random quest '%s'\n"), hour, min, note_level, name); - break; - } - case DIARY_RAND_QUEST_F: - { - GAME_TEXT name[MAX_NLEN]; - strcpy(name, r_name + r_info[quest[num].r_idx].name); - fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)から逃げ出した。\n", - " %2d:%02d %20s ran away from quest '%s'.\n"), hour, min, note_level, name); - break; - } - case DIARY_MAXDEAPTH: - { - fprintf(fff, _(" %2d:%02d %20s %sの最深階%d階に到達した。\n", - " %2d:%02d %20s reached level %d of %s for the first time.\n"), hour, min, note_level, - _(d_name + d_info[creature_ptr->dungeon_idx].name, num), - _(num, d_name + d_info[creature_ptr->dungeon_idx].name)); - break; - } - case DIARY_TRUMP: - { - fprintf(fff, _(" %2d:%02d %20s %s%sの最深階を%d階にセットした。\n", - " %2d:%02d %20s reset recall level of %s to %d %s.\n"), hour, min, note_level, note, - _(d_name + d_info[num].name, (int)max_dlv[num]), - _((int)max_dlv[num], d_name + d_info[num].name)); - break; - } - case DIARY_STAIR: - { - concptr to = q_idx && (is_fixed_quest_idx(q_idx) - && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT))) - ? _("地上", "the surface") - : !(creature_ptr->current_floor_ptr->dun_level + num) - ? _("地上", "the surface") - : format(_("%d階", "level %d"), creature_ptr->current_floor_ptr->dun_level + num); - fprintf(fff, _(" %2d:%02d %20s %sへ%s。\n", " %2d:%02d %20s %s %s.\n"), hour, min, note_level, _(to, note), _(note, to)); - break; - } - case DIARY_RECALL: - { - if (!num) - fprintf(fff, _(" %2d:%02d %20s 帰還を使って%sの%d階へ下りた。\n", " %2d:%02d %20s recalled to dungeon level %d of %s.\n"), - hour, min, note_level, _(d_name + d_info[creature_ptr->dungeon_idx].name, (int)max_dlv[creature_ptr->dungeon_idx]), - _((int)max_dlv[creature_ptr->dungeon_idx], d_name + d_info[creature_ptr->dungeon_idx].name)); - else - fprintf(fff, _(" %2d:%02d %20s 帰還を使って地上へと戻った。\n", " %2d:%02d %20s recalled from dungeon to surface.\n"), hour, min, note_level); - - break; - } - case DIARY_TO_QUEST: - { - if (quest[num].flags & QUEST_FLAG_SILENT) break; - - fprintf(fff, _(" %2d:%02d %20s クエスト「%s」へと突入した。\n", " %2d:%02d %20s entered the quest '%s'.\n"), - hour, min, note_level, quest[num].name); - break; - } - case DIARY_TELEPORT_LEVEL: - { - fprintf(fff, _(" %2d:%02d %20s レベル・テレポートで脱出した。\n", " %2d:%02d %20s Got out using teleport level.\n"), - hour, min, note_level); - break; - } - case DIARY_BUY: - { - fprintf(fff, _(" %2d:%02d %20s %sを購入した。\n", " %2d:%02d %20s bought %s.\n"), hour, min, note_level, note); - break; - } - case DIARY_SELL: - { - fprintf(fff, _(" %2d:%02d %20s %sを売却した。\n", " %2d:%02d %20s sold %s.\n"), hour, min, note_level, note); - break; - } - case DIARY_ARENA: - { - if (num < 0) - { - int n = -num; - fprintf(fff, _(" %2d:%02d %20s 闘技場の%d%s回戦で、%sの前に敗れ去った。\n", " %2d:%02d %20s beaten by %s in the %d%s fight.\n"), - hour, min, note_level, _(n, note), _("", n), _(note, get_ordinal_number_suffix(n))); - break; - } - - fprintf(fff, _(" %2d:%02d %20s 闘技場の%d%s回戦(%s)に勝利した。\n", " %2d:%02d %20s won the %d%s fight (%s).\n"), - hour, min, note_level, num, _("", get_ordinal_number_suffix(num)), note); - - if (num == MAX_ARENA_MONS) - { - fprintf(fff, _(" 闘技場のすべての敵に勝利し、チャンピオンとなった。\n", - " won all fights to become a Champion.\n")); - do_level = FALSE; - } - - break; - } - case DIARY_FOUND: - { - fprintf(fff, _(" %2d:%02d %20s %sを識別した。\n", " %2d:%02d %20s identified %s.\n"), hour, min, note_level, note); - break; - } - case DIARY_WIZ_TELE: - { - concptr to = !creature_ptr->current_floor_ptr->dun_level - ? _("地上", "the surface") - : format(_("%d階(%s)", "level %d of %s"), creature_ptr->current_floor_ptr->dun_level, d_name + d_info[creature_ptr->dungeon_idx].name); - fprintf(fff, _(" %2d:%02d %20s %sへとウィザード・テレポートで移動した。\n", - " %2d:%02d %20s wizard-teleport to %s.\n"), hour, min, note_level, to); - break; - } - case DIARY_PAT_TELE: - { - concptr to = !creature_ptr->current_floor_ptr->dun_level - ? _("地上", "the surface") - : format(_("%d階(%s)", "level %d of %s"), creature_ptr->current_floor_ptr->dun_level, d_name + d_info[creature_ptr->dungeon_idx].name); - fprintf(fff, _(" %2d:%02d %20s %sへとパターンの力で移動した。\n", - " %2d:%02d %20s used Pattern to teleport to %s.\n"), hour, min, note_level, to); - break; - } - case DIARY_LEVELUP: - { - fprintf(fff, _(" %2d:%02d %20s レベルが%dに上がった。\n", " %2d:%02d %20s reached player level %d.\n"), hour, min, note_level, num); - break; - } - case DIARY_GAMESTART: - { - time_t ct = time((time_t*)0); - do_level = FALSE; - if (num) - fprintf(fff, "%s %s", note, ctime(&ct)); - else - fprintf(fff, " %2d:%02d %20s %s %s", hour, min, note_level, note, ctime(&ct)); - - break; - } - case DIARY_NAMED_PET: - { - fprintf(fff, " %2d:%02d %20s ", hour, min, note_level); - switch (num) - { - case RECORD_NAMED_PET_NAME: - fprintf(fff, _("%sを旅の友にすることに決めた。\n", "decided to travel together with %s.\n"), note); - break; - case RECORD_NAMED_PET_UNNAME: - fprintf(fff, _("%sの名前を消した。\n", "unnamed %s.\n"), note); - break; - case RECORD_NAMED_PET_DISMISS: - fprintf(fff, _("%sを解放した。\n", "dismissed %s.\n"), note); - break; - case RECORD_NAMED_PET_DEATH: - fprintf(fff, _("%sが死んでしまった。\n", "%s died.\n"), note); - break; - case RECORD_NAMED_PET_MOVED: - fprintf(fff, _("%sをおいて別のマップへ移動した。\n", "moved to another map leaving %s behind.\n"), note); - break; - case RECORD_NAMED_PET_LOST_SIGHT: - fprintf(fff, _("%sとはぐれてしまった。\n", "lost sight of %s.\n"), note); - break; - case RECORD_NAMED_PET_DESTROY: - fprintf(fff, _("%sが*破壊*によって消え去った。\n", "%s was killed by *destruction*.\n"), note); - break; - case RECORD_NAMED_PET_EARTHQUAKE: - fprintf(fff, _("%sが岩石に押し潰された。\n", "%s was crushed by falling rocks.\n"), note); - break; - case RECORD_NAMED_PET_GENOCIDE: - fprintf(fff, _("%sが抹殺によって消え去った。\n", "%s was a victim of genocide.\n"), note); - break; - case RECORD_NAMED_PET_WIZ_ZAP: - fprintf(fff, _("%sがデバッグコマンドによって消え去った。\n", "%s was removed by debug command.\n"), note); - break; - case RECORD_NAMED_PET_TELE_LEVEL: - fprintf(fff, _("%sがテレポート・レベルによって消え去った。\n", "%s was lost after teleporting a level.\n"), note); - break; - case RECORD_NAMED_PET_BLAST: - fprintf(fff, _("%sを爆破した。\n", "blasted %s.\n"), note); - break; - case RECORD_NAMED_PET_HEAL_LEPER: - fprintf(fff, _("%sの病気が治り旅から外れた。\n", "%s was healed and left.\n"), note); - break; - case RECORD_NAMED_PET_COMPACT: - fprintf(fff, _("%sがモンスター情報圧縮によって消え去った。\n", "%s was lost when the monster list was pruned.\n"), note); - break; - case RECORD_NAMED_PET_LOSE_PARENT: - fprintf(fff, _("%sの召喚者が既にいないため消え去った。\n", "%s disappeared because its summoner left.\n"), note); - break; - default: - fprintf(fff, "\n"); - break; - } - - break; - } - case DIARY_WIZARD_LOG: - fprintf(fff, "%s\n", note); - break; - default: - break; - } - - my_fclose(fff); - if (do_level) write_level = FALSE; - - return 0; -} - - #define MAX_SUBTITLE (sizeof(subtitle)/sizeof(subtitle[0])) /*! diff --git a/src/cmd/cmd-dump.h b/src/cmd/cmd-dump.h index e3b5021a3..bfab450ac 100644 --- a/src/cmd/cmd-dump.h +++ b/src/cmd/cmd-dump.h @@ -1,54 +1,9 @@ #pragma once -#define DIARY_DIALY 0 -#define DIARY_DESCRIPTION 1 -#define DIARY_ART 2 -#define DIARY_UNIQUE 3 -#define DIARY_FIX_QUEST_C 4 -#define DIARY_FIX_QUEST_F 5 -#define DIARY_RAND_QUEST_C 6 -#define DIARY_RAND_QUEST_F 7 -#define DIARY_MAXDEAPTH 8 -#define DIARY_TRUMP 9 -#define DIARY_STAIR 10 -#define DIARY_RECALL 11 -#define DIARY_TO_QUEST 12 -#define DIARY_TELEPORT_LEVEL 13 -#define DIARY_BUY 14 -#define DIARY_SELL 15 -#define DIARY_ARENA 16 -#define DIARY_FOUND 17 -#define DIARY_LEVELUP 18 -#define DIARY_GAMESTART 19 -#define DIARY_WIZ_TELE 20 -#define DIARY_NAMED_PET 21 -#define DIARY_PAT_TELE 22 -#define DIARY_ART_SCROLL 23 -#define DIARY_WIZARD_LOG 24 - -#define RECORD_NAMED_PET_NAME 0 -#define RECORD_NAMED_PET_UNNAME 1 -#define RECORD_NAMED_PET_DISMISS 2 -#define RECORD_NAMED_PET_DEATH 3 -#define RECORD_NAMED_PET_MOVED 4 -#define RECORD_NAMED_PET_LOST_SIGHT 5 -#define RECORD_NAMED_PET_DESTROY 6 -#define RECORD_NAMED_PET_EARTHQUAKE 7 -#define RECORD_NAMED_PET_GENOCIDE 8 -#define RECORD_NAMED_PET_WIZ_ZAP 9 -#define RECORD_NAMED_PET_TELE_LEVEL 10 -#define RECORD_NAMED_PET_BLAST 11 -#define RECORD_NAMED_PET_HEAL_LEPER 12 -#define RECORD_NAMED_PET_COMPACT 13 -#define RECORD_NAMED_PET_LOSE_PARENT 14 - - -/* cmd4.c */ #ifdef JP #else extern concptr get_ordinal_number_suffix(int num); #endif -extern errr exe_write_diary(player_type *creature_ptr, int type, int num, concptr note); extern void do_cmd_diary(player_type *creature_ptr); extern void do_cmd_redraw(player_type *creature_ptr); extern void do_cmd_player_status(player_type *creature_ptr); @@ -78,5 +33,3 @@ extern void do_cmd_spoilers(player_type *creature_ptr); /* wizard1.c */ extern void spoil_random_artifact(player_type *creature_ptr, concptr fname); - -extern bool write_level; diff --git a/src/cmd/cmd-gameoption.c b/src/cmd/cmd-gameoption.c index a17106f1e..cff32db2c 100644 --- a/src/cmd/cmd-gameoption.c +++ b/src/cmd/cmd-gameoption.c @@ -1,7 +1,8 @@ #include "angband.h" #include "autopick.h" -#include "cmd-gameoption.h" +#include "io/write-diary.h" +#include "cmd/cmd-gameoption.h" #include "term.h" #include "view-mainwindow.h" #include "cmd/cmd-dump.h" diff --git a/src/cmd/cmd-pet.c b/src/cmd/cmd-pet.c index 127d83a01..e9e719eca 100644 --- a/src/cmd/cmd-pet.c +++ b/src/cmd/cmd-pet.c @@ -2,7 +2,8 @@ #include "core.h" #include "util.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "floor.h" #include "grid.h" #include "melee.h" diff --git a/src/cmd/cmd-save.c b/src/cmd/cmd-save.c index ac254fc02..497834c55 100644 --- a/src/cmd/cmd-save.c +++ b/src/cmd/cmd-save.c @@ -1,4 +1,5 @@ #include "signal-handlers.h" +#include "io/write-diary.h" #include "cmd/cmd-save.h" #include "cmd/cmd-dump.h" #include "player-move.h" diff --git a/src/cmd/cmd-spell.c b/src/cmd/cmd-spell.c index 5a885877d..046c19985 100644 --- a/src/cmd/cmd-spell.c +++ b/src/cmd/cmd-spell.c @@ -9,9 +9,10 @@ #include "angband.h" #include "core.h" #include "util.h" -#include "cmd-spell.h" +#include "cmd/cmd-spell.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "selfinfo.h" #include "spells.h" #include "spells-summon.h" diff --git a/src/core.c b/src/core.c index b7a9c8cad..1caa5d1b4 100644 --- a/src/core.c +++ b/src/core.c @@ -22,6 +22,7 @@ #include "birth.h" #include "bldg.h" +#include "io/write-diary.h" #include "cmd/cmd-activate.h" #include "cmd/cmd-dump.h" #include "cmd/cmd-eat.h" diff --git a/src/floor-generate.c b/src/floor-generate.c index fc017e535..dea6d4429 100644 --- a/src/floor-generate.c +++ b/src/floor-generate.c @@ -101,7 +101,8 @@ #include "core.h" #include "bldg.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "grid.h" #include "rooms.h" #include "dungeon.h" diff --git a/src/floor-save.c b/src/floor-save.c index ae30a0570..a7bd8e2c6 100644 --- a/src/floor-save.c +++ b/src/floor-save.c @@ -40,7 +40,8 @@ #include "player-personality.h" #include "world.h" #include "spells.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "save.h" #include "view-mainwindow.h" diff --git a/src/io/write-diary.c b/src/io/write-diary.c new file mode 100644 index 000000000..8682eff39 --- /dev/null +++ b/src/io/write-diary.c @@ -0,0 +1,346 @@ +/*! + * @brief 日記へのメッセージ追加処理 + * @date 2020/03/08 + * @author Hourier + */ + +#include "io/write-diary.h" +#include "core.h" +#include "quest.h" +#include "files.h" +#include "dungeon.h" + +// todo *抹殺* したい… +bool write_level; + +/*! + * @brief 日記にメッセージを追加する / + * Take note to the diary. + * @param type 日記内容のID + * @param num 日記内容のIDに応じた数値 + * @param note 日記内容のIDに応じた文字列参照ポインタ + * @return エラーコード + */ +errr exe_write_diary(player_type *creature_ptr, int type, int num, concptr note) +{ + int day, hour, min; + FILE *fff = NULL; + GAME_TEXT file_name[MAX_NLEN]; + char buf[1024]; + concptr note_level = ""; + bool do_level = TRUE; + char note_level_buf[40]; + QUEST_IDX q_idx; + + static bool disable_diary = FALSE; + + extract_day_hour_min(creature_ptr, &day, &hour, &min); + + if (disable_diary) return(-1); + + if (type == DIARY_FIX_QUEST_C || + type == DIARY_FIX_QUEST_F || + type == DIARY_RAND_QUEST_C || + type == DIARY_RAND_QUEST_F || + type == DIARY_TO_QUEST) + { + QUEST_IDX old_quest = creature_ptr->current_floor_ptr->inside_quest; + creature_ptr->current_floor_ptr->inside_quest = (quest[num].type == QUEST_TYPE_RANDOM) ? 0 : num; + init_flags = INIT_NAME_ONLY; + process_dungeon_file(creature_ptr, "q_info.txt", 0, 0, 0, 0); + creature_ptr->current_floor_ptr->inside_quest = old_quest; + } + + sprintf(file_name, _("playrecord-%s.txt", "playrec-%s.txt"), savefile_base); + path_build(buf, sizeof(buf), ANGBAND_DIR_USER, file_name); + FILE_TYPE(FILE_TYPE_TEXT); + fff = my_fopen(buf, "a"); + if (!fff) + { + msg_format(_("%s を開くことができませんでした。プレイ記録を一時停止します。", "Failed to open %s. Play-Record is disabled temporarily."), buf); + msg_format(NULL); + disable_diary = TRUE; + return -1; + } + + q_idx = quest_number(creature_ptr, creature_ptr->current_floor_ptr->dun_level); + if (write_level) + { + if (creature_ptr->current_floor_ptr->inside_arena) + note_level = _("アリーナ:", "Arane:"); + else if (!creature_ptr->current_floor_ptr->dun_level) + note_level = _("地上:", "Surface:"); + else if (q_idx && (is_fixed_quest_idx(q_idx) + && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT)))) + note_level = _("クエスト:", "Quest:"); + else + { +#ifdef JP + sprintf(note_level_buf, "%d階(%s):", (int)creature_ptr->current_floor_ptr->dun_level, d_name + d_info[creature_ptr->dungeon_idx].name); +#else + sprintf(note_level_buf, "%s L%d:", d_name + d_info[creature_ptr->dungeon_idx].name, (int)creature_ptr->current_floor_ptr->dun_level); +#endif + note_level = note_level_buf; + } + } + + switch (type) + { + case DIARY_DIALY: + { + if (day < MAX_DAYS) fprintf(fff, _("%d日目\n", "Day %d\n"), day); + else fputs(_("*****日目\n", "Day *****\n"), fff); + do_level = FALSE; + break; + } + case DIARY_DESCRIPTION: + { + if (num) + { + fprintf(fff, "%s\n", note); + do_level = FALSE; + } + else + fprintf(fff, " %2d:%02d %20s %s\n", hour, min, note_level, note); + + break; + } + case DIARY_ART: + { + fprintf(fff, _(" %2d:%02d %20s %sを発見した。\n", " %2d:%02d %20s discovered %s.\n"), hour, min, note_level, note); + break; + } + case DIARY_ART_SCROLL: + { + fprintf(fff, _(" %2d:%02d %20s 巻物によって%sを生成した。\n", " %2d:%02d %20s created %s by scroll.\n"), hour, min, note_level, note); + break; + } + case DIARY_UNIQUE: + { + fprintf(fff, _(" %2d:%02d %20s %sを倒した。\n", " %2d:%02d %20s defeated %s.\n"), hour, min, note_level, note); + break; + } + case DIARY_FIX_QUEST_C: + { + if (quest[num].flags & QUEST_FLAG_SILENT) break; + + fprintf(fff, _(" %2d:%02d %20s クエスト「%s」を達成した。\n", + " %2d:%02d %20s completed quest '%s'.\n"), hour, min, note_level, quest[num].name); + break; + } + case DIARY_FIX_QUEST_F: + { + if (quest[num].flags & QUEST_FLAG_SILENT) break; + + fprintf(fff, _(" %2d:%02d %20s クエスト「%s」から命からがら逃げ帰った。\n", + " %2d:%02d %20s run away from quest '%s'.\n"), hour, min, note_level, quest[num].name); + break; + } + case DIARY_RAND_QUEST_C: + { + GAME_TEXT name[MAX_NLEN]; + strcpy(name, r_name + r_info[quest[num].r_idx].name); + fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)を達成した。\n", + " %2d:%02d %20s completed random quest '%s'\n"), hour, min, note_level, name); + break; + } + case DIARY_RAND_QUEST_F: + { + GAME_TEXT name[MAX_NLEN]; + strcpy(name, r_name + r_info[quest[num].r_idx].name); + fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)から逃げ出した。\n", + " %2d:%02d %20s ran away from quest '%s'.\n"), hour, min, note_level, name); + break; + } + case DIARY_MAXDEAPTH: + { + fprintf(fff, _(" %2d:%02d %20s %sの最深階%d階に到達した。\n", + " %2d:%02d %20s reached level %d of %s for the first time.\n"), hour, min, note_level, + _(d_name + d_info[creature_ptr->dungeon_idx].name, num), + _(num, d_name + d_info[creature_ptr->dungeon_idx].name)); + break; + } + case DIARY_TRUMP: + { + fprintf(fff, _(" %2d:%02d %20s %s%sの最深階を%d階にセットした。\n", + " %2d:%02d %20s reset recall level of %s to %d %s.\n"), hour, min, note_level, note, + _(d_name + d_info[num].name, (int)max_dlv[num]), + _((int)max_dlv[num], d_name + d_info[num].name)); + break; + } + case DIARY_STAIR: + { + concptr to = q_idx && (is_fixed_quest_idx(q_idx) + && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT))) + ? _("地上", "the surface") + : !(creature_ptr->current_floor_ptr->dun_level + num) + ? _("地上", "the surface") + : format(_("%d階", "level %d"), creature_ptr->current_floor_ptr->dun_level + num); + fprintf(fff, _(" %2d:%02d %20s %sへ%s。\n", " %2d:%02d %20s %s %s.\n"), hour, min, note_level, _(to, note), _(note, to)); + break; + } + case DIARY_RECALL: + { + if (!num) + fprintf(fff, _(" %2d:%02d %20s 帰還を使って%sの%d階へ下りた。\n", " %2d:%02d %20s recalled to dungeon level %d of %s.\n"), + hour, min, note_level, _(d_name + d_info[creature_ptr->dungeon_idx].name, (int)max_dlv[creature_ptr->dungeon_idx]), + _((int)max_dlv[creature_ptr->dungeon_idx], d_name + d_info[creature_ptr->dungeon_idx].name)); + else + fprintf(fff, _(" %2d:%02d %20s 帰還を使って地上へと戻った。\n", " %2d:%02d %20s recalled from dungeon to surface.\n"), hour, min, note_level); + + break; + } + case DIARY_TO_QUEST: + { + if (quest[num].flags & QUEST_FLAG_SILENT) break; + + fprintf(fff, _(" %2d:%02d %20s クエスト「%s」へと突入した。\n", " %2d:%02d %20s entered the quest '%s'.\n"), + hour, min, note_level, quest[num].name); + break; + } + case DIARY_TELEPORT_LEVEL: + { + fprintf(fff, _(" %2d:%02d %20s レベル・テレポートで脱出した。\n", " %2d:%02d %20s Got out using teleport level.\n"), + hour, min, note_level); + break; + } + case DIARY_BUY: + { + fprintf(fff, _(" %2d:%02d %20s %sを購入した。\n", " %2d:%02d %20s bought %s.\n"), hour, min, note_level, note); + break; + } + case DIARY_SELL: + { + fprintf(fff, _(" %2d:%02d %20s %sを売却した。\n", " %2d:%02d %20s sold %s.\n"), hour, min, note_level, note); + break; + } + case DIARY_ARENA: + { + if (num < 0) + { + int n = -num; + fprintf(fff, _(" %2d:%02d %20s 闘技場の%d%s回戦で、%sの前に敗れ去った。\n", " %2d:%02d %20s beaten by %s in the %d%s fight.\n"), + hour, min, note_level, _(n, note), _("", n), _(note, get_ordinal_number_suffix(n))); + break; + } + + fprintf(fff, _(" %2d:%02d %20s 闘技場の%d%s回戦(%s)に勝利した。\n", " %2d:%02d %20s won the %d%s fight (%s).\n"), + hour, min, note_level, num, _("", get_ordinal_number_suffix(num)), note); + + if (num == MAX_ARENA_MONS) + { + fprintf(fff, _(" 闘技場のすべての敵に勝利し、チャンピオンとなった。\n", + " won all fights to become a Champion.\n")); + do_level = FALSE; + } + + break; + } + case DIARY_FOUND: + { + fprintf(fff, _(" %2d:%02d %20s %sを識別した。\n", " %2d:%02d %20s identified %s.\n"), hour, min, note_level, note); + break; + } + case DIARY_WIZ_TELE: + { + concptr to = !creature_ptr->current_floor_ptr->dun_level + ? _("地上", "the surface") + : format(_("%d階(%s)", "level %d of %s"), creature_ptr->current_floor_ptr->dun_level, d_name + d_info[creature_ptr->dungeon_idx].name); + fprintf(fff, _(" %2d:%02d %20s %sへとウィザード・テレポートで移動した。\n", + " %2d:%02d %20s wizard-teleport to %s.\n"), hour, min, note_level, to); + break; + } + case DIARY_PAT_TELE: + { + concptr to = !creature_ptr->current_floor_ptr->dun_level + ? _("地上", "the surface") + : format(_("%d階(%s)", "level %d of %s"), creature_ptr->current_floor_ptr->dun_level, d_name + d_info[creature_ptr->dungeon_idx].name); + fprintf(fff, _(" %2d:%02d %20s %sへとパターンの力で移動した。\n", + " %2d:%02d %20s used Pattern to teleport to %s.\n"), hour, min, note_level, to); + break; + } + case DIARY_LEVELUP: + { + fprintf(fff, _(" %2d:%02d %20s レベルが%dに上がった。\n", " %2d:%02d %20s reached player level %d.\n"), hour, min, note_level, num); + break; + } + case DIARY_GAMESTART: + { + time_t ct = time((time_t*)0); + do_level = FALSE; + if (num) + fprintf(fff, "%s %s", note, ctime(&ct)); + else + fprintf(fff, " %2d:%02d %20s %s %s", hour, min, note_level, note, ctime(&ct)); + + break; + } + case DIARY_NAMED_PET: + { + fprintf(fff, " %2d:%02d %20s ", hour, min, note_level); + switch (num) + { + case RECORD_NAMED_PET_NAME: + fprintf(fff, _("%sを旅の友にすることに決めた。\n", "decided to travel together with %s.\n"), note); + break; + case RECORD_NAMED_PET_UNNAME: + fprintf(fff, _("%sの名前を消した。\n", "unnamed %s.\n"), note); + break; + case RECORD_NAMED_PET_DISMISS: + fprintf(fff, _("%sを解放した。\n", "dismissed %s.\n"), note); + break; + case RECORD_NAMED_PET_DEATH: + fprintf(fff, _("%sが死んでしまった。\n", "%s died.\n"), note); + break; + case RECORD_NAMED_PET_MOVED: + fprintf(fff, _("%sをおいて別のマップへ移動した。\n", "moved to another map leaving %s behind.\n"), note); + break; + case RECORD_NAMED_PET_LOST_SIGHT: + fprintf(fff, _("%sとはぐれてしまった。\n", "lost sight of %s.\n"), note); + break; + case RECORD_NAMED_PET_DESTROY: + fprintf(fff, _("%sが*破壊*によって消え去った。\n", "%s was killed by *destruction*.\n"), note); + break; + case RECORD_NAMED_PET_EARTHQUAKE: + fprintf(fff, _("%sが岩石に押し潰された。\n", "%s was crushed by falling rocks.\n"), note); + break; + case RECORD_NAMED_PET_GENOCIDE: + fprintf(fff, _("%sが抹殺によって消え去った。\n", "%s was a victim of genocide.\n"), note); + break; + case RECORD_NAMED_PET_WIZ_ZAP: + fprintf(fff, _("%sがデバッグコマンドによって消え去った。\n", "%s was removed by debug command.\n"), note); + break; + case RECORD_NAMED_PET_TELE_LEVEL: + fprintf(fff, _("%sがテレポート・レベルによって消え去った。\n", "%s was lost after teleporting a level.\n"), note); + break; + case RECORD_NAMED_PET_BLAST: + fprintf(fff, _("%sを爆破した。\n", "blasted %s.\n"), note); + break; + case RECORD_NAMED_PET_HEAL_LEPER: + fprintf(fff, _("%sの病気が治り旅から外れた。\n", "%s was healed and left.\n"), note); + break; + case RECORD_NAMED_PET_COMPACT: + fprintf(fff, _("%sがモンスター情報圧縮によって消え去った。\n", "%s was lost when the monster list was pruned.\n"), note); + break; + case RECORD_NAMED_PET_LOSE_PARENT: + fprintf(fff, _("%sの召喚者が既にいないため消え去った。\n", "%s disappeared because its summoner left.\n"), note); + break; + default: + fprintf(fff, "\n"); + break; + } + + break; + } + case DIARY_WIZARD_LOG: + fprintf(fff, "%s\n", note); + break; + default: + break; + } + + my_fclose(fff); + if (do_level) write_level = FALSE; + + return 0; +} diff --git a/src/io/write-diary.h b/src/io/write-diary.h new file mode 100644 index 000000000..f5ac78954 --- /dev/null +++ b/src/io/write-diary.h @@ -0,0 +1,49 @@ +#pragma once + +#include "angband.h" + +#define DIARY_DIALY 0 +#define DIARY_DESCRIPTION 1 +#define DIARY_ART 2 +#define DIARY_UNIQUE 3 +#define DIARY_FIX_QUEST_C 4 +#define DIARY_FIX_QUEST_F 5 +#define DIARY_RAND_QUEST_C 6 +#define DIARY_RAND_QUEST_F 7 +#define DIARY_MAXDEAPTH 8 +#define DIARY_TRUMP 9 +#define DIARY_STAIR 10 +#define DIARY_RECALL 11 +#define DIARY_TO_QUEST 12 +#define DIARY_TELEPORT_LEVEL 13 +#define DIARY_BUY 14 +#define DIARY_SELL 15 +#define DIARY_ARENA 16 +#define DIARY_FOUND 17 +#define DIARY_LEVELUP 18 +#define DIARY_GAMESTART 19 +#define DIARY_WIZ_TELE 20 +#define DIARY_NAMED_PET 21 +#define DIARY_PAT_TELE 22 +#define DIARY_ART_SCROLL 23 +#define DIARY_WIZARD_LOG 24 + +#define RECORD_NAMED_PET_NAME 0 +#define RECORD_NAMED_PET_UNNAME 1 +#define RECORD_NAMED_PET_DISMISS 2 +#define RECORD_NAMED_PET_DEATH 3 +#define RECORD_NAMED_PET_MOVED 4 +#define RECORD_NAMED_PET_LOST_SIGHT 5 +#define RECORD_NAMED_PET_DESTROY 6 +#define RECORD_NAMED_PET_EARTHQUAKE 7 +#define RECORD_NAMED_PET_GENOCIDE 8 +#define RECORD_NAMED_PET_WIZ_ZAP 9 +#define RECORD_NAMED_PET_TELE_LEVEL 10 +#define RECORD_NAMED_PET_BLAST 11 +#define RECORD_NAMED_PET_HEAL_LEPER 12 +#define RECORD_NAMED_PET_COMPACT 13 +#define RECORD_NAMED_PET_LOSE_PARENT 14 + +extern bool write_level; + +errr exe_write_diary(player_type *creature_ptr, int type, int num, concptr note); diff --git a/src/main-win.c b/src/main-win.c index ddbbabde9..0faa3df3c 100644 --- a/src/main-win.c +++ b/src/main-win.c @@ -99,6 +99,7 @@ #include "inet.h" #include "chuukei.h" +#include "io/write-diary.h" #include "cmd/cmd-dump.h" #include "cmd/cmd-save.h" #include "view-mainwindow.h" diff --git a/src/monster-process.c b/src/monster-process.c index a70f77fd2..447c4a824 100644 --- a/src/monster-process.c +++ b/src/monster-process.c @@ -22,8 +22,9 @@ #include "monster/monster-update.h" #include "monster/quantum-effect.h" -#include "cmd-dump.h" -#include "cmd-pet.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" +#include "cmd/cmd-pet.h" #include "creature.h" #include "melee.h" #include "spells-summon.h" diff --git a/src/monster-status.c b/src/monster-status.c index 5dbf52c70..af6f4e968 100644 --- a/src/monster-status.c +++ b/src/monster-status.c @@ -3,7 +3,8 @@ #include "util.h" #include "creature.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "dungeon.h" #include "floor.h" #include "grid.h" diff --git a/src/monster1.c b/src/monster1.c index 69b83218f..4a4a940c9 100644 --- a/src/monster1.c +++ b/src/monster1.c @@ -14,7 +14,8 @@ #include "util.h" #include "term.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "bldg.h" #include "cmd-pet.h" #include "floor.h" diff --git a/src/monster2.c b/src/monster2.c index fc558046d..36595d758 100644 --- a/src/monster2.c +++ b/src/monster2.c @@ -14,7 +14,8 @@ #include "util.h" #include "core.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "cmd-pet.h" #include "dungeon.h" #include "floor.h" diff --git a/src/mutation.c b/src/mutation.c index b93156031..9fda64a48 100644 --- a/src/mutation.c +++ b/src/mutation.c @@ -16,6 +16,7 @@ #include "core/show-file.h" #include "util.h" +#include "io/write-diary.h" #include "cmd/cmd-dump.h" #include "mutation.h" diff --git a/src/object2.c b/src/object2.c index 9913bf957..f247fc865 100644 --- a/src/object2.c +++ b/src/object2.c @@ -18,8 +18,9 @@ #include "object.h" -#include "cmd-dump.h" -#include "cmd-spell.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" +#include "cmd/cmd-spell.h" #include "spells.h" #include "dungeon.h" #include "floor.h" diff --git a/src/patron.c b/src/patron.c index 048f0c19e..5554e1ccc 100644 --- a/src/patron.c +++ b/src/patron.c @@ -2,7 +2,8 @@ #include "angband.h" #include "util.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "patron.h" #include "cmd-pet.h" #include "object-curse.h" diff --git a/src/player-damage.c b/src/player-damage.c index ac46dce83..92ca731d2 100644 --- a/src/player-damage.c +++ b/src/player-damage.c @@ -5,7 +5,8 @@ #include "avatar.h" #include "bldg.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "realm-song.h" #include "floor.h" #include "artifact.h" diff --git a/src/player-status.c b/src/player-status.c index d5a940513..7006f087f 100644 --- a/src/player-status.c +++ b/src/player-status.c @@ -29,13 +29,14 @@ #include "patron.h" #include "realm-hex.h" #include "realm-song.h" -#include "cmd-pet.h" -#include "cmd-spell.h" +#include "cmd/cmd-pet.h" +#include "cmd/cmd-spell.h" #include "dungeon.h" #include "objectkind.h" #include "monsterrace.h" #include "autopick.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "melee.h" #include "world.h" #include "view-mainwindow.h" diff --git a/src/quest.c b/src/quest.c index a799fff5f..12961ce5c 100644 --- a/src/quest.c +++ b/src/quest.c @@ -15,7 +15,8 @@ #include "artifact.h" #include "feature.h" #include "world.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "english.h" #include "view-mainwindow.h" diff --git a/src/scores.c b/src/scores.c index 9192727ef..667e8b2cf 100644 --- a/src/scores.c +++ b/src/scores.c @@ -27,7 +27,8 @@ #include "scores.h" #include "floor.h" #include "world.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "report.h" #include "japanese.h" diff --git a/src/signal-handlers.c b/src/signal-handlers.c index 217d1d9ad..e0410a549 100644 --- a/src/signal-handlers.c +++ b/src/signal-handlers.c @@ -10,6 +10,7 @@ #include "save.h" #include "world.h" #include "term.h" +#include "io/write-diary.h" #include "cmd/cmd-dump.h" #include "floor-events.h" diff --git a/src/spells-floor.c b/src/spells-floor.c index 99de94d6e..081a712ff 100644 --- a/src/spells-floor.c +++ b/src/spells-floor.c @@ -10,8 +10,9 @@ #include "object-flavor.h" #include "object-hook.h" -#include "cmd-basic.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-basic.h" +#include "cmd/cmd-dump.h" #include "floor-events.h" #include "floor-save.h" diff --git a/src/spells1.c b/src/spells1.c index d4a0fd171..04c30de8f 100644 --- a/src/spells1.c +++ b/src/spells1.c @@ -15,8 +15,9 @@ #include "core.h" #include "util.h" -#include "cmd-pet.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-pet.h" +#include "cmd/cmd-dump.h" #include "floor.h" #include "trap.h" #include "autopick.h" diff --git a/src/spells2.c b/src/spells2.c index f3018dd6a..940966302 100644 --- a/src/spells2.c +++ b/src/spells2.c @@ -18,8 +18,9 @@ #include "creature.h" #include "artifact.h" -#include "cmd-pet.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-pet.h" +#include "cmd/cmd-dump.h" #include "floor.h" #include "grid.h" #include "trap.h" diff --git a/src/spells3.c b/src/spells3.c index 5ee9916cc..1047dce58 100644 --- a/src/spells3.c +++ b/src/spells3.c @@ -42,6 +42,7 @@ #include "monster-process.h" #include "monster-status.h" #include "monster-spell.h" +#include "io/write-diary.h" #include "cmd/cmd-save.h" #include "cmd/cmd-spell.h" #include "cmd/cmd-dump.h" diff --git a/src/store.c b/src/store.c index 7cbc5b8bc..674d1bc88 100644 --- a/src/store.c +++ b/src/store.c @@ -16,6 +16,7 @@ #include "term.h" #include "floor.h" +#include "io/write-diary.h" #include "cmd/cmd-basic.h" #include "cmd/cmd-dump.h" #include "cmd/cmd-help.h" diff --git a/src/trap.c b/src/trap.c index 940d19a49..b8574bfe8 100644 --- a/src/trap.c +++ b/src/trap.c @@ -1,6 +1,7 @@ #include "angband.h" #include "util.h" +#include "io/write-diary.h" #include "cmd/cmd-dump.h" #include "cmd/cmd-save.h" #include "trap.h" diff --git a/src/util.c b/src/util.c index c330eb2b0..b9d783365 100644 --- a/src/util.c +++ b/src/util.c @@ -21,7 +21,8 @@ #include "quest.h" #include "floor.h" #include "world.h" -#include "cmd-dump.h" +#include "io/write-diary.h" +#include "cmd/cmd-dump.h" #include "japanese.h" #include "player-class.h" diff --git a/src/wizard2.c b/src/wizard2.c index 33d07b0ae..bdc6007bc 100644 --- a/src/wizard2.c +++ b/src/wizard2.c @@ -15,6 +15,7 @@ #include "term.h" #include "dungeon.h" +#include "io/write-diary.h" #include "cmd/cmd-dump.h" #include "cmd/cmd-help.h" #include "cmd/cmd-save.h" -- 2.11.0