#include "player-base/player-class.h"
#include "player/player-personality.h"
#include "system/player-type-definition.h"
+#include "term/gameterm.h"
#include "term/screen-processor.h"
#include "term/z-form.h"
#include "util/angband-files.h"
*/
static void display_diary(PlayerType *player_ptr)
{
- std::stringstream file_name;
- file_name << _("playrecord-", "playrec-") << savefile_base << ".txt";
- char buf[1024];
- path_build(buf, sizeof(buf), ANGBAND_DIR_USER, file_name.str().data());
-
PlayerClass pc(player_ptr);
const auto max_subtitles = diary_subtitles.size();
std::string subtitle;
strnfmt(diary_title, sizeof(diary_title), "Legend of %s %s '%s'", ap_ptr->title, player_ptr->name, subtitle.data());
#endif
- (void)show_file(player_ptr, false, buf, diary_title, -1, 0);
+ std::stringstream ss;
+ ss << _("playrecord-", "playrec-") << savefile_base << ".txt";
+ const auto &path = path_build(ANGBAND_DIR_USER, ss.str());
+ const auto &filename = path.string();
+ (void)show_file(player_ptr, false, filename.data(), diary_title, -1, 0);
}
/*!
/*!
* @brief ファイル中の全日記記録を消去する /
*/
-static void do_cmd_erase_diary(void)
+static void do_cmd_erase_diary()
{
- char buf[256];
- FILE *fff = nullptr;
-
if (!get_check(_("本当に記録を消去しますか?", "Do you really want to delete all your records? "))) {
return;
}
- std::string file_name = _("playrecord-", "playrec-");
- file_name.append(savefile_base).append(".txt");
- path_build(buf, sizeof(buf), ANGBAND_DIR_USER, file_name.data());
- fd_kill(buf);
- fff = angband_fopen(buf, FileOpenMode::WRITE);
+ std::stringstream ss;
+ ss << _("playrecord-", "playrec-") << savefile_base << ".txt";
+ const auto &path = path_build(ANGBAND_DIR_USER, ss.str());
+ const auto &filename = path.string();
+ fd_kill(filename);
+
+ auto *fff = angband_fopen(path, FileOpenMode::WRITE);
if (fff) {
angband_fclose(fff);
msg_format(_("記録を消去しました。", "deleted record."));
} else {
- msg_format(_("%s の消去に失敗しました。", "failed to delete %s."), buf);
+ msg_format(_("%s の消去に失敗しました。", "failed to delete %s."), filename.data());
}
msg_print(nullptr);
void do_cmd_diary(PlayerType *player_ptr)
{
screen_save();
+ TermCenteredOffsetSetter tcos(MAIN_TERM_MIN_COLS, MAIN_TERM_MIN_ROWS);
+
while (true) {
term_clear();
prt(_("[ 記録の設定 ]", "[ Play Record ]"), 2, 0);