OSDN Git Service

[Refactor] #3336 exe_write_diary() の引数にstrnfmt() で文字列を作っていた箇所をformat() に差し替え、basic_st...
authorHourier <66951241+Hourier@users.noreply.github.com>
Tue, 23 May 2023 12:40:59 +0000 (21:40 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Wed, 24 May 2023 14:30:43 +0000 (23:30 +0900)
29 files changed:
src/action/mutation-execution.cpp
src/birth/character-builder.cpp
src/cmd-action/cmd-pet.cpp
src/cmd-action/cmd-spell.cpp
src/cmd-building/cmd-inn.cpp
src/cmd-io/cmd-diary.cpp
src/core/game-play.cpp
src/effect/effect-monster.cpp
src/floor/floor-changer.cpp
src/floor/floor-leaver.cpp
src/io/input-key-processor.cpp
src/monster-floor/monster-death.cpp
src/monster/monster-compaction.cpp
src/monster/monster-damage.cpp
src/monster/monster-processor.cpp
src/perception/object-perception.cpp
src/player/patron.cpp
src/player/player-damage.cpp
src/spell-kind/earthquake.cpp
src/spell-kind/spells-enchant.cpp
src/spell-kind/spells-floor.cpp
src/spell-kind/spells-genocide.cpp
src/spell-kind/spells-perception.cpp
src/spell-kind/spells-pet.cpp
src/spell-kind/spells-world.cpp
src/store/purchase-order.cpp
src/store/sell-order.cpp
src/wizard/wizard-messages.cpp
src/wizard/wizard-special-process.cpp

index ee28ae5..7227b71 100644 (file)
@@ -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);
index da237a1..390627c 100644 (file)
@@ -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);
     }
 }
 
index 1e0145d..8512703 100644 (file)
@@ -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();
             }
index 5c5668c..b3d680c 100644 (file)
@@ -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;
 
index 4a171df..ad87bf2 100644 (file)
@@ -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);
 }
 
index 500c081..acc635c 100644 (file)
@@ -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;
 }
 
index 2e29e43..85d0942 100644 (file)
@@ -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)
index 083de38..642c404 100644 (file)
@@ -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);
index 9ff209f..3e1448c 100644 (file)
@@ -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) {
index b67ce04..0f9b51d 100644 (file)
@@ -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));
     }
 }
 
index 4e3ced2..2f64999 100644 (file)
@@ -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;
     }
 
index 5e4be32..357966d 100644 (file)
@@ -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)
index 01825ba..f8a46b1 100644 (file)
@@ -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);
index 8cc655c..1a291b6 100644 (file)
@@ -49,6 +49,7 @@
 #include "world/world.h"
 #include <algorithm>
 #include <optional>
+#include <sstream>
 #include <string>
 
 /*
@@ -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);
index 9f1d658..12edc5f 100644 (file)
@@ -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);
index e08eabe..7405d8f 100644 (file)
@@ -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);
 }
 
 /*!
index 7c93b05..2ab3640 100644 (file)
@@ -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);
     }
 }
 
index 7607032..297d2c2 100644 (file)
@@ -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) {
index a82dd0c..18b2f03 100644 (file)
@@ -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);
                     }
                 }
 
index 730f453..eca90c3 100644 (file)
@@ -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);
index 4046b82..107ea42 100644 (file)
@@ -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) */
index 99b7902..0eb67b2 100644 (file)
@@ -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);
index 8aef3f9..a4d7108 100644 (file)
@@ -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;
index 3d7371b..a173a1d 100644 (file)
@@ -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);
index 17e07d8..ae3dfbd 100644 (file)
@@ -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);
index 0324438..8bf7d16 100644 (file)
@@ -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();
index 85a3922..6cef5d8 100644 (file)
@@ -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))) {
index fc81716..33d71c9 100644 (file)
@@ -3,6 +3,8 @@
 #include "game-option/cheat-types.h"
 #include "io/write-diary.h"
 #include "view/display-messages.h"
+#include <array>
+#include <sstream>
 #include <string>
 
 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<std::string, 4> 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);
     }
 }
 
index 36ba23b..9955c91 100644 (file)
@@ -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);