From b6d64012e34f97cc1ba56fe42c9a7a7a13a66e62 Mon Sep 17 00:00:00 2001 From: Hourier <66951241+Hourier@users.noreply.github.com> Date: Sat, 1 Jul 2023 18:17:53 +0900 Subject: [PATCH] =?utf8?q?[Fix]=20#3487=20=E3=83=97=E3=83=AC=E3=82=A4?= =?utf8?q?=E3=83=A4=E3=83=BC=E3=81=AE=E5=90=8D=E5=89=8D=E5=85=A5=E5=8A=9B?= =?utf8?q?=E6=99=82=E3=81=AE=E6=8C=99=E5=8B=95=E3=82=92=E4=BF=AE=E6=AD=A3?= =?utf8?q?=E3=81=97=E3=81=9F=20(=E5=88=9D=E6=9C=9F=E5=80=A4=E3=81=8C?= =?utf8?q?=E3=81=AA=E3=81=84=E5=A0=B4=E5=90=88=E3=81=AB=E9=99=90=E3=82=8AP?= =?utf8?q?LAYER=E3=82=92=E4=BB=98=E3=81=91=E3=82=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/player/process-name.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/player/process-name.cpp b/src/player/process-name.cpp index 8f91c1ae5..ba0e791ed 100644 --- a/src/player/process-name.cpp +++ b/src/player/process-name.cpp @@ -8,6 +8,7 @@ #include "term/screen-processor.h" #include "term/term-color-types.h" #include "util/angband-files.h" +#include "util/finalizer.h" #include "util/string-processor.h" #include "view/display-player-misc-info.h" #include "world/world.h" @@ -133,15 +134,23 @@ void process_player_name(PlayerType *player_ptr, bool is_new_savefile) */ void get_name(PlayerType *player_ptr) { + const auto finalizer = util::make_finalizer([player_ptr]() { + display_player_misc_info(player_ptr); + }); + std::string initial_name(player_ptr->name); const auto max_name_size = sizeof(player_ptr->name); constexpr auto prompt = _("キャラクターの名前を入力して下さい: ", "Enter a name for your character: "); const auto name = input_string(prompt, max_name_size, initial_name); - if (name.has_value() && !name->empty()) { - angband_strcpy(player_ptr->name, name.value(), max_name_size); - } else { - angband_strcpy(player_ptr->name, "PLAYER", max_name_size); + if (name.has_value()) { + if (!name->empty()) { + angband_strcpy(player_ptr->name, name.value(), max_name_size); + } + + return; } - display_player_misc_info(player_ptr); + if (initial_name.empty()) { + angband_strcpy(player_ptr->name, "PLAYER", max_name_size); + } } -- 2.11.0