From: Hourier <66951241+Hourier@users.noreply.github.com> Date: Tue, 23 May 2023 12:40:59 +0000 (+0900) Subject: [Refactor] #3336 exe_write_diary() の引数にstrnfmt() で文字列を作っていた箇所をformat() に差し替え、basic_st... X-Git-Tag: 3.0.0Alpha84^2~2^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=0c62dbcd24ea229972c6be2422b5c7fe3b95cd7a;p=hengbandforosx%2Fhengbandosx.git [Refactor] #3336 exe_write_diary() の引数にstrnfmt() で文字列を作っていた箇所をformat() に差し替え、basic_string::data() を呼んでいた箇所を全て差し替えた --- diff --git a/src/action/mutation-execution.cpp b/src/action/mutation-execution.cpp index ee28ae509..7227b71a4 100644 --- a/src/action/mutation-execution.cpp +++ b/src/action/mutation-execution.cpp @@ -265,7 +265,7 @@ bool exe_mutation_power(PlayerType *player_ptr, PlayerMutationType power) if (can_banish) { if (record_named_pet && monster.is_named_pet()) { const auto m_name = monster_desc(player_ptr, &monster, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_GENOCIDE, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_GENOCIDE, m_name); } delete_monster_idx(player_ptr, grid.m_idx); diff --git a/src/birth/character-builder.cpp b/src/birth/character-builder.cpp index da237a1e7..390627cab 100644 --- a/src/birth/character-builder.cpp +++ b/src/birth/character-builder.cpp @@ -59,27 +59,29 @@ static void write_birth_diary(PlayerType *player_ptr) exe_write_diary(player_ptr, DIARY_GAMESTART, 1, _("-------- 新規ゲーム開始 --------", "------- Started New Game -------")); exe_write_diary(player_ptr, DIARY_DIALY, 0); - char buf[80]; - strnfmt(buf, sizeof(buf), _("%s性別に%sを選択した。", "%schose %s gender."), indent, sex_info[player_ptr->psex].title); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, buf); - strnfmt(buf, sizeof(buf), _("%s種族に%sを選択した。", "%schose %s race."), indent, race_info[enum2i(player_ptr->prace)].title); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, buf); - strnfmt(buf, sizeof(buf), _("%s職業に%sを選択した。", "%schose %s class."), indent, class_info[enum2i(player_ptr->pclass)].title); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, buf); + const auto mes_sex = format(_("%s性別に%sを選択した。", "%schose %s gender."), indent, sex_info[player_ptr->psex].title); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, mes_sex); + const auto mes_race = format(_("%s種族に%sを選択した。", "%schose %s race."), indent, race_info[enum2i(player_ptr->prace)].title); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, mes_race); + const auto mes_class = format(_("%s職業に%sを選択した。", "%schose %s class."), indent, class_info[enum2i(player_ptr->pclass)].title); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, mes_class); if (player_ptr->realm1) { - strnfmt(buf, sizeof(buf), _("%s魔法の領域に%s%sを選択した。", "%schose %s%s."), indent, realm_names[player_ptr->realm1], - player_ptr->realm2 ? format(_("と%s", " and %s realms"), realm_names[player_ptr->realm2]).data() : _("", " realm")); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, buf); + const std::string mes_realm2 = player_ptr->realm2 ? format(_("と%s", " and %s realms"), realm_names[player_ptr->realm2]) : _("", " realm"); + const auto mes_realm = format(_("%s魔法の領域に%s%sを選択した。", "%schose %s%s."), indent, realm_names[player_ptr->realm1], mes_realm2.data()); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, mes_realm); } + if (player_ptr->element) { - strnfmt(buf, sizeof(buf), _("%s元素系統に%sを選択した。", "%schose %s system."), indent, get_element_title(player_ptr->element)); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, buf); + const auto mes_element = format(_("%s元素系統に%sを選択した。", "%schose %s system."), indent, get_element_title(player_ptr->element)); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, mes_element); } - strnfmt(buf, sizeof(buf), _("%s性格に%sを選択した。", "%schose %s personality."), indent, personality_info[player_ptr->ppersonality].title); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, buf); + + const auto mes_personality = format(_("%s性格に%sを選択した。", "%schose %s personality."), indent, personality_info[player_ptr->ppersonality].title); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, mes_personality); if (PlayerClass(player_ptr).equals(PlayerClassType::CHAOS_WARRIOR)) { - strnfmt(buf, sizeof(buf), _("%s守護神%sと契約を交わした。", "%smade a contract with patron %s."), indent, patron_list[player_ptr->chaos_patron].name.data()); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, buf); + const auto fmt_patron = _("%s守護神%sと契約を交わした。", "%smade a contract with patron %s."); + const auto mes_patron = format(fmt_patron, indent, patron_list[player_ptr->chaos_patron].name.data()); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 1, mes_patron); } } diff --git a/src/cmd-action/cmd-pet.cpp b/src/cmd-action/cmd-pet.cpp index 1e0145d36..851270310 100644 --- a/src/cmd-action/cmd-pet.cpp +++ b/src/cmd-action/cmd-pet.cpp @@ -153,7 +153,7 @@ void do_cmd_pet_dismiss(PlayerType *player_ptr) if ((all_pets && !should_ask) || (!all_pets && delete_this)) { if (record_named_pet && m_ptr->is_named()) { const auto m_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_DISMISS, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_DISMISS, m_name); } if (pet_ctr == player_ptr->riding) { @@ -366,11 +366,11 @@ static void do_name_pet(PlayerType *player_ptr) /* Save the inscription */ m_ptr->nickname = out_val; if (record_named_pet) { - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_NAME, monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE).data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_NAME, monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE)); } } else { if (record_named_pet && old_name) { - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_UNNAME, monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE).data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_UNNAME, monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE)); } m_ptr->nickname.clear(); } diff --git a/src/cmd-action/cmd-spell.cpp b/src/cmd-action/cmd-spell.cpp index 5c5668cc7..b3d680c38 100644 --- a/src/cmd-action/cmd-spell.cpp +++ b/src/cmd-action/cmd-spell.cpp @@ -679,8 +679,6 @@ void do_cmd_browse(PlayerType *player_ptr) static void change_realm2(PlayerType *player_ptr, int16_t next_realm) { int i, j = 0; - char tmp[80]; - for (i = 0; i < 64; i++) { player_ptr->spell_order[j] = player_ptr->spell_order[i]; if (player_ptr->spell_order[i] < 32) { @@ -698,9 +696,9 @@ static void change_realm2(PlayerType *player_ptr, int16_t next_realm) player_ptr->spell_worked2 = 0L; player_ptr->spell_forgotten2 = 0L; - constexpr auto mes = _("魔法の領域を%sから%sに変更した。", "changed magic realm from %s to %s."); - strnfmt(tmp, sizeof(tmp), mes, realm_names[player_ptr->realm2], realm_names[next_realm]); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, tmp); + constexpr auto fmt_realm = _("魔法の領域を%sから%sに変更した。", "changed magic realm from %s to %s."); + const auto mes = format(fmt_realm, realm_names[player_ptr->realm2], realm_names[next_realm]); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, mes); player_ptr->old_realm |= 1U << (player_ptr->realm2 - 1); player_ptr->realm2 = next_realm; diff --git a/src/cmd-building/cmd-inn.cpp b/src/cmd-building/cmd-inn.cpp index 4a171df8e..ad87bf266 100644 --- a/src/cmd-building/cmd-inn.cpp +++ b/src/cmd-building/cmd-inn.cpp @@ -57,12 +57,10 @@ static bool is_healthy_stay(PlayerType *player_ptr) return false; } -#ifdef JP static bool is_player_undead(PlayerType *player_ptr) { return PlayerRace(player_ptr, true).life() == PlayerRaceLifeType::UNDEAD; } -#endif /*! * @brief 宿屋に泊まったことを日記に残す @@ -72,12 +70,12 @@ static bool is_player_undead(PlayerType *player_ptr) static void write_diary_stay_inn(PlayerType *player_ptr, int prev_hour) { if ((prev_hour >= 6) && (prev_hour < 18)) { - concptr stay_message = _(is_player_undead(player_ptr) ? "宿屋に泊まった。" : "日が暮れるまで宿屋で過ごした。", "stayed during the day at the inn."); + const auto stay_message = _(is_player_undead(player_ptr) ? "宿屋に泊まった。" : "日が暮れるまで宿屋で過ごした。", "stayed during the day at the inn."); exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, stay_message); return; } - concptr stay_message = _(is_player_undead(player_ptr) ? "夜が明けるまで宿屋で過ごした。" : "宿屋に泊まった。", "stayed overnight at the inn."); + const auto stay_message = _(is_player_undead(player_ptr) ? "夜が明けるまで宿屋で過ごした。" : "宿屋に泊まった。", "stayed overnight at the inn."); exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, stay_message); } @@ -171,15 +169,15 @@ static void display_stay_result(PlayerType *player_ptr, int prev_hour) #if JP msg_format("あなたはリフレッシュして目覚め、%sを迎えた。", is_player_undead(player_ptr) ? "夜" : "夕方"); #else - msg_print("You awake refreshed for the evening."); + msg_format("You awake refreshed for the %s.", is_player_undead(player_ptr) ? "evening" : "twilight"); #endif - concptr awake_message = _(is_player_undead(player_ptr) ? "すがすがしい夜を迎えた。" : "夕方を迎えた。", "awoke refreshed."); + const auto awake_message = _(is_player_undead(player_ptr) ? "すがすがしい夜を迎えた。" : "夕方を迎えた。", "awoke refreshed."); exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, awake_message); return; } msg_print(_("あなたはリフレッシュして目覚め、新たな日を迎えた。", "You awake refreshed for the new day.")); - concptr awake_message = _(is_player_undead(player_ptr) ? "すがすがしい朝を迎えた。" : "朝を迎えた。", "awoke refreshed."); + const auto awake_message = _(is_player_undead(player_ptr) ? "すがすがしい朝を迎えた。" : "朝を迎えた。", "awoke refreshed."); exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, awake_message); } diff --git a/src/cmd-io/cmd-diary.cpp b/src/cmd-io/cmd-diary.cpp index 500c08160..acc635cdd 100644 --- a/src/cmd-io/cmd-diary.cpp +++ b/src/cmd-io/cmd-diary.cpp @@ -47,11 +47,9 @@ static void display_diary(PlayerType *player_ptr) */ static void add_diary_note(PlayerType *player_ptr) { - char tmp[80] = "\0"; - char bunshou[80] = "\0"; + char tmp[80]{}; if (get_string(_("内容: ", "diary note: "), tmp, 79)) { - strcpy(bunshou, tmp); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, bunshou); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, tmp); } } @@ -64,16 +62,15 @@ static void do_cmd_last_get(PlayerType *player_ptr) return; } - char buf[256]; - strnfmt(buf, sizeof(buf), _("%sの入手を記録します。", "Do you really want to record getting %s? "), record_o_name); - if (!get_check(buf)) { + const auto record = format(_("%sの入手を記録します。", "Do you really want to record getting %s? "), record_o_name); + if (!get_check(record)) { return; } GAME_TURN turn_tmp = w_ptr->game_turn; w_ptr->game_turn = record_turn; - strnfmt(buf, sizeof(buf), _("%sを手に入れた。", "discover %s."), record_o_name); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, buf); + const auto mes = format(_("%sを手に入れた。", "discover %s."), record_o_name); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, mes); w_ptr->game_turn = turn_tmp; } diff --git a/src/core/game-play.cpp b/src/core/game-play.cpp index 2e29e434a..85d0942c5 100644 --- a/src/core/game-play.cpp +++ b/src/core/game-play.cpp @@ -290,9 +290,8 @@ static void generate_world(PlayerType *player_ptr, bool new_game) return; } - char buf[80]; - strnfmt(buf, sizeof(buf), _("%sに降り立った。", "arrived in %s."), map_name(player_ptr).data()); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, buf); + const auto mes = format(_("%sに降り立った。", "arrived in %s."), map_name(player_ptr).data()); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, mes); } static void init_io(PlayerType *player_ptr) diff --git a/src/effect/effect-monster.cpp b/src/effect/effect-monster.cpp index 083de38fe..642c40454 100644 --- a/src/effect/effect-monster.cpp +++ b/src/effect/effect-monster.cpp @@ -277,7 +277,7 @@ static bool heal_leaper(PlayerType *player_ptr, effect_monster_type *em_ptr) if (record_named_pet && em_ptr->m_ptr->is_named_pet()) { const auto m2_name = monster_desc(player_ptr, em_ptr->m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_HEAL_LEPER, m2_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_HEAL_LEPER, m2_name); } delete_monster_idx(player_ptr, em_ptr->g_ptr->m_idx); diff --git a/src/floor/floor-changer.cpp b/src/floor/floor-changer.cpp index 9ff209f7d..3e1448c4b 100644 --- a/src/floor/floor-changer.cpp +++ b/src/floor/floor-changer.cpp @@ -153,7 +153,7 @@ static void place_pet(PlayerType *player_ptr) auto &r_ref = m_ptr->get_real_r_ref(); msg_format(_("%sとはぐれてしまった。", "You have lost sight of %s."), monster_desc(player_ptr, m_ptr, 0).data()); if (record_named_pet && m_ptr->is_named()) { - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_LOST_SIGHT, monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE).data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_LOST_SIGHT, monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE)); } if (r_ref.cur_num) { diff --git a/src/floor/floor-leaver.cpp b/src/floor/floor-leaver.cpp index b67ce04ca..0f9b51d88 100644 --- a/src/floor/floor-leaver.cpp +++ b/src/floor/floor-leaver.cpp @@ -103,7 +103,7 @@ static void record_pet_diary(PlayerType *player_ptr) continue; } - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_MOVED, monster_desc(player_ptr, m_ptr, MD_ASSUME_VISIBLE | MD_INDEF_VISIBLE).data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_MOVED, monster_desc(player_ptr, m_ptr, MD_ASSUME_VISIBLE | MD_INDEF_VISIBLE)); } } diff --git a/src/io/input-key-processor.cpp b/src/io/input-key-processor.cpp index 4e3ced20c..2f6499988 100644 --- a/src/io/input-key-processor.cpp +++ b/src/io/input-key-processor.cpp @@ -118,8 +118,8 @@ bool enter_wizard_mode(PlayerType *player_ptr) return false; } - exe_write_diary( - player_ptr, DIARY_DESCRIPTION, 0, _("ウィザードモードに突入してスコアを残せなくなった。", "gave up recording score to enter wizard mode.")); + constexpr auto mes = _("ウィザードモードに突入してスコアを残せなくなった。", "gave up recording score to enter wizard mode."); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, mes); w_ptr->noscore |= 0x0002; } @@ -147,8 +147,8 @@ static bool enter_debug_mode(PlayerType *player_ptr) return false; } - exe_write_diary( - player_ptr, DIARY_DESCRIPTION, 0, _("デバッグモードに突入してスコアを残せなくなった。", "gave up sending score to use debug commands.")); + constexpr auto mes = _("デバッグモードに突入してスコアを残せなくなった。", "gave up sending score to use debug commands."); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, mes); w_ptr->noscore |= 0x0008; } diff --git a/src/monster-floor/monster-death.cpp b/src/monster-floor/monster-death.cpp index 5e4be32c2..357966d65 100644 --- a/src/monster-floor/monster-death.cpp +++ b/src/monster-floor/monster-death.cpp @@ -58,7 +58,7 @@ static void write_pet_death(PlayerType *player_ptr, monster_death_type *md_ptr) md_ptr->md_x = md_ptr->m_ptr->fx; if (record_named_pet && md_ptr->m_ptr->is_named_pet()) { const auto m_name = monster_desc(player_ptr, md_ptr->m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, 3, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, 3, m_name); } } @@ -113,7 +113,7 @@ static void on_defeat_arena_monster(PlayerType *player_ptr, monster_death_type * } const auto m_name = monster_desc(player_ptr, md_ptr->m_ptr, MD_WRONGDOER_NAME); - exe_write_diary(player_ptr, DIARY_ARENA, player_ptr->arena_number, m_name.data()); + exe_write_diary(player_ptr, DIARY_ARENA, player_ptr->arena_number, m_name); } static void drop_corpse(PlayerType *player_ptr, monster_death_type *md_ptr) diff --git a/src/monster/monster-compaction.cpp b/src/monster/monster-compaction.cpp index 01825ba60..f8a46b1e0 100644 --- a/src/monster/monster-compaction.cpp +++ b/src/monster/monster-compaction.cpp @@ -142,7 +142,7 @@ void compact_monsters(PlayerType *player_ptr, int size) if (record_named_pet && m_ptr->is_named_pet()) { const auto m_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_COMPACT, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_COMPACT, m_name); } delete_monster_idx(player_ptr, i); diff --git a/src/monster/monster-damage.cpp b/src/monster/monster-damage.cpp index 8cc655ce4..1a291b6c3 100644 --- a/src/monster/monster-damage.cpp +++ b/src/monster/monster-damage.cpp @@ -49,6 +49,7 @@ #include "world/world.h" #include #include +#include #include /* @@ -156,8 +157,9 @@ bool MonsterDamageProcessor::process_dead_exp_virtue(concptr note, MonsterEntity AvatarChanger ac(player_ptr, m_ptr); ac.change_virtue(); if (r_ref.kind_flags.has(MonsterKindType::UNIQUE) && record_destroy_uniq) { - const auto clone_name = std::string(r_ref.name).append(m_ptr->mflag2.has(MonsterConstantFlagType::CLONED) ? _("(クローン)", "(Clone)") : ""); - exe_write_diary(this->player_ptr, DIARY_UNIQUE, 0, clone_name.data()); + std::stringstream ss; + ss << r_ref.name << (m_ptr->mflag2.has(MonsterConstantFlagType::CLONED) ? _("(クローン)", "(Clone)") : ""); + exe_write_diary(this->player_ptr, DIARY_UNIQUE, 0, ss.str()); } sound(SOUND_KILL); diff --git a/src/monster/monster-processor.cpp b/src/monster/monster-processor.cpp index 9f1d65838..12edc5f7b 100644 --- a/src/monster/monster-processor.cpp +++ b/src/monster/monster-processor.cpp @@ -292,7 +292,7 @@ bool vanish_summoned_children(PlayerType *player_ptr, MONSTER_IDX m_idx, bool se if (record_named_pet && m_ptr->is_named_pet()) { const auto m_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_LOSE_PARENT, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_LOSE_PARENT, m_name); } delete_monster_idx(player_ptr, m_idx); diff --git a/src/perception/object-perception.cpp b/src/perception/object-perception.cpp index e08eabeeb..7405d8f42 100644 --- a/src/perception/object-perception.cpp +++ b/src/perception/object-perception.cpp @@ -73,7 +73,7 @@ void object_aware(PlayerType *player_ptr, const ItemEntity *o_ptr) q_ptr->copy_from(o_ptr); q_ptr->number = 1; const auto item_name = describe_flavor(player_ptr, q_ptr, OD_NAME_ONLY); - exe_write_diary(player_ptr, DIARY_FOUND, 0, item_name.data()); + exe_write_diary(player_ptr, DIARY_FOUND, 0, item_name); } /*! diff --git a/src/player/patron.cpp b/src/player/patron.cpp index 7c93b05e6..2ab3640f6 100644 --- a/src/player/patron.cpp +++ b/src/player/patron.cpp @@ -517,7 +517,7 @@ void Patron::gain_level_reward(PlayerType *player_ptr_, int chosen_reward) if (!reward.empty()) { const auto note = format(_("パトロンの報酬で%s", "The patron rewarded you with %s."), reward.data()); - exe_write_diary(this->player_ptr, DIARY_DESCRIPTION, 0, note.data()); + exe_write_diary(this->player_ptr, DIARY_DESCRIPTION, 0, note); } } diff --git a/src/player/player-damage.cpp b/src/player/player-damage.cpp index 760703243..297d2c21f 100644 --- a/src/player/player-damage.cpp +++ b/src/player/player-damage.cpp @@ -378,8 +378,8 @@ int take_hit(PlayerType *player_ptr, int damage_type, int damage, std::string_vi const auto &floor = *player_ptr->current_floor_ptr; if (floor.inside_arena) { - concptr m_name = monraces_info[arena_info[player_ptr->arena_number].r_idx].name.data(); - msg_format(_("あなたは%sの前に敗れ去った。", "You are beaten by %s."), m_name); + const auto &m_name = monraces_info[arena_info[player_ptr->arena_number].r_idx].name; + msg_format(_("あなたは%sの前に敗れ去った。", "You are beaten by %s."), m_name.data()); msg_print(nullptr); if (record_arena) { exe_write_diary(player_ptr, DIARY_ARENA, -1 - player_ptr->arena_number, m_name); @@ -433,11 +433,11 @@ int take_hit(PlayerType *player_ptr, int damage_type, int damage, std::string_vi } #ifdef JP - std::string note = format("%sで%sに殺された。", place.data(), player_ptr->died_from.data()); + const auto note = format("%sで%sに殺された。", place.data(), player_ptr->died_from.data()); #else - std::string note = format("killed by %s %s.", player_ptr->died_from.data(), place.data()); + const auto note = format("killed by %s %s.", player_ptr->died_from.data(), place.data()); #endif - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, note.data()); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, note); } exe_write_diary(player_ptr, DIARY_GAMESTART, 1, _("-------- ゲームオーバー --------", "-------- Game Over --------")); @@ -573,7 +573,7 @@ int take_hit(PlayerType *player_ptr, int damage_type, int damage, std::string_vi ss << _(hit_from, "was in a critical situation because of "); ss << _("によってピンチに陥った。", hit_from); ss << _("", "."); - exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, ss.str().data()); + exe_write_diary(player_ptr, DIARY_DESCRIPTION, 0, ss.str()); } if (auto_more) { diff --git a/src/spell-kind/earthquake.cpp b/src/spell-kind/earthquake.cpp index a82dd0c66..18b2f03b9 100644 --- a/src/spell-kind/earthquake.cpp +++ b/src/spell-kind/earthquake.cpp @@ -263,7 +263,7 @@ bool earthquake(PlayerType *player_ptr, POSITION cy, POSITION cx, POSITION r, MO const auto &m_ref = floor_ptr->m_list[gg_ptr->m_idx]; if (record_named_pet && m_ref.is_named_pet()) { const auto m2_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_EARTHQUAKE, m2_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_EARTHQUAKE, m2_name); } } diff --git a/src/spell-kind/spells-enchant.cpp b/src/spell-kind/spells-enchant.cpp index 730f45350..eca90c3f3 100644 --- a/src/spell-kind/spells-enchant.cpp +++ b/src/spell-kind/spells-enchant.cpp @@ -98,7 +98,7 @@ bool artifact_scroll(PlayerType *player_ptr) if (record_rand_art) { const auto diary_item_name = describe_flavor(player_ptr, o_ptr, OD_NAME_ONLY); - exe_write_diary(player_ptr, DIARY_ART_SCROLL, 0, diary_item_name.data()); + exe_write_diary(player_ptr, DIARY_ART_SCROLL, 0, diary_item_name); } chg_virtue(player_ptr, Virtue::ENCHANT, 1); diff --git a/src/spell-kind/spells-floor.cpp b/src/spell-kind/spells-floor.cpp index 4046b8278..107ea42e5 100644 --- a/src/spell-kind/spells-floor.cpp +++ b/src/spell-kind/spells-floor.cpp @@ -339,7 +339,7 @@ bool destroy_area(PlayerType *player_ptr, POSITION y1, POSITION x1, POSITION r, } else { if (record_named_pet && m_ptr->is_named_pet()) { const auto m_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_DESTROY, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_DESTROY, m_name); } /* Delete the monster (if any) */ diff --git a/src/spell-kind/spells-genocide.cpp b/src/spell-kind/spells-genocide.cpp index 99b7902f4..0eb67b262 100644 --- a/src/spell-kind/spells-genocide.cpp +++ b/src/spell-kind/spells-genocide.cpp @@ -73,7 +73,7 @@ bool genocide_aux(PlayerType *player_ptr, MONSTER_IDX m_idx, int power, bool pla } else { if (record_named_pet && m_ptr->is_named_pet()) { const auto m_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_GENOCIDE, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_GENOCIDE, m_name); } delete_monster_idx(player_ptr, m_idx); diff --git a/src/spell-kind/spells-perception.cpp b/src/spell-kind/spells-perception.cpp index 8aef3f912..a4d71084a 100644 --- a/src/spell-kind/spells-perception.cpp +++ b/src/spell-kind/spells-perception.cpp @@ -84,11 +84,11 @@ bool identify_item(PlayerType *player_ptr, ItemEntity *o_ptr) const auto item_name = describe_flavor(player_ptr, o_ptr, OD_NAME_ONLY); if (record_fix_art && !old_known && o_ptr->is_fixed_artifact()) { - exe_write_diary(player_ptr, DIARY_ART, 0, item_name.data()); + exe_write_diary(player_ptr, DIARY_ART, 0, item_name); } if (record_rand_art && !old_known && o_ptr->is_random_artifact()) { - exe_write_diary(player_ptr, DIARY_ART, 0, item_name.data()); + exe_write_diary(player_ptr, DIARY_ART, 0, item_name); } return old_known; diff --git a/src/spell-kind/spells-pet.cpp b/src/spell-kind/spells-pet.cpp index 3d7371bcb..a173a1d7a 100644 --- a/src/spell-kind/spells-pet.cpp +++ b/src/spell-kind/spells-pet.cpp @@ -69,7 +69,7 @@ void discharge_minion(PlayerType *player_ptr) if (record_named_pet && m_ptr->is_named()) { const auto m_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_BLAST, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_BLAST, m_name); } delete_monster_idx(player_ptr, i); diff --git a/src/spell-kind/spells-world.cpp b/src/spell-kind/spells-world.cpp index 17e07d897..ae3dfbdfa 100644 --- a/src/spell-kind/spells-world.cpp +++ b/src/spell-kind/spells-world.cpp @@ -226,7 +226,7 @@ void teleport_level(PlayerType *player_ptr, MONSTER_IDX m_idx) QuestCompletionChecker(player_ptr, m_ptr).complete(); if (record_named_pet && m_ptr->is_named_pet()) { const auto m2_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_TELE_LEVEL, m2_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_TELE_LEVEL, m2_name); } delete_monster_idx(player_ptr, m_idx); diff --git a/src/store/purchase-order.cpp b/src/store/purchase-order.cpp index 032443877..8bf7d1626 100644 --- a/src/store/purchase-order.cpp +++ b/src/store/purchase-order.cpp @@ -291,12 +291,12 @@ void store_purchase(PlayerType *player_ptr, StoreSaleType store_num) record_turn = w_ptr->game_turn; if (record_buy) { - exe_write_diary(player_ptr, DIARY_BUY, 0, purchased_item_name.data()); + exe_write_diary(player_ptr, DIARY_BUY, 0, purchased_item_name); } const auto diary_item_name = describe_flavor(player_ptr, o_ptr, OD_NAME_ONLY); if (record_rand_art && o_ptr->is_random_artifact()) { - exe_write_diary(player_ptr, DIARY_ART, 0, diary_item_name.data()); + exe_write_diary(player_ptr, DIARY_ART, 0, diary_item_name); } j_ptr->inscription.reset(); diff --git a/src/store/sell-order.cpp b/src/store/sell-order.cpp index 85a392267..6cef5d803 100644 --- a/src/store/sell-order.cpp +++ b/src/store/sell-order.cpp @@ -170,7 +170,7 @@ void store_sell(PlayerType *player_ptr, StoreSaleType store_num) msg_format(_("%sを $%dで売却しました。", "You sold %s for %d gold."), sold_item_name.data(), price); if (record_sell) { - exe_write_diary(player_ptr, DIARY_SELL, 0, sold_item_name.data()); + exe_write_diary(player_ptr, DIARY_SELL, 0, sold_item_name); } if (!((tval == ItemKindType::FIGURINE) && (value > 0))) { diff --git a/src/wizard/wizard-messages.cpp b/src/wizard/wizard-messages.cpp index fc8171606..33d71c9a0 100644 --- a/src/wizard/wizard-messages.cpp +++ b/src/wizard/wizard-messages.cpp @@ -3,6 +3,8 @@ #include "game-option/cheat-types.h" #include "io/write-diary.h" #include "view/display-messages.h" +#include +#include #include void msg_print_wizard(PlayerType *player_ptr, int cheat_type, concptr msg) @@ -20,13 +22,13 @@ void msg_print_wizard(PlayerType *player_ptr, int cheat_type, concptr msg) return; } - concptr cheat_mes[] = { "ITEM:", "MONS:", "DUNG:", "MISC:" }; - std::string buf = "WIZ-"; - buf.append(cheat_mes[cheat_type]).append(msg); - msg_print(buf); - + static const std::array cheat_mes = { { "ITEM:", "MONS:", "DUNG:", "MISC:" } }; + std::stringstream ss; + ss << "WIZ-" << cheat_mes[cheat_type] << msg; + const auto mes = ss.str(); + msg_print(mes); if (cheat_diary_output) { - exe_write_diary(player_ptr, DIARY_WIZARD_LOG, 0, buf.data()); + exe_write_diary(player_ptr, DIARY_WIZARD_LOG, 0, mes); } } diff --git a/src/wizard/wizard-special-process.cpp b/src/wizard/wizard-special-process.cpp index 36ba23bda..9955c91e3 100644 --- a/src/wizard/wizard-special-process.cpp +++ b/src/wizard/wizard-special-process.cpp @@ -821,7 +821,7 @@ void wiz_zap_surrounding_monsters(PlayerType *player_ptr) if (record_named_pet && m_ptr->is_named_pet()) { const auto m_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_WIZ_ZAP, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_WIZ_ZAP, m_name); } delete_monster_idx(player_ptr, i); @@ -842,7 +842,7 @@ void wiz_zap_floor_monsters(PlayerType *player_ptr) if (record_named_pet && m_ptr->is_named_pet()) { const auto m_name = monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE); - exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_WIZ_ZAP, m_name.data()); + exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_WIZ_ZAP, m_name); } delete_monster_idx(player_ptr, i);