OSDN Git Service

[Refactor] #3381 m_name の型をchar[] からstring に変えた
authorHourier <66951241+Hourier@users.noreply.github.com>
Sat, 10 Jun 2023 03:13:21 +0000 (12:13 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sat, 10 Jun 2023 13:36:48 +0000 (22:36 +0900)
src/mspell/mspell-attack-util.h
src/mspell/mspell-attack.cpp

index 70d34a4..a27225b 100644 (file)
@@ -3,6 +3,7 @@
 #include "monster-race/race-ability-flags.h"
 #include "system/angband.h"
 #include "util/flag-group.h"
+#include <string>
 #include <vector>
 
 enum mspell_lite_type {
@@ -24,7 +25,7 @@ struct msa_type {
     bool in_no_magic_dungeon = false;
     bool success = false;
     std::vector<MonsterAbilityType> mspells{};
-    GAME_TEXT m_name[MAX_NLEN]{};
+    std::string m_name = "";
     bool can_remember = false;
     int dam = 0;
     DEPTH rlev = 0;
index 8bd5a1c..58c09c9 100644 (file)
@@ -131,7 +131,6 @@ static void set_mspell_list(msa_type *msa_ptr)
 
 static void describe_mspell_monster(PlayerType *player_ptr, msa_type *msa_ptr)
 {
-    angband_strcpy(msa_ptr->m_name, monster_desc(player_ptr, msa_ptr->m_ptr, 0x00), sizeof(msa_ptr->m_name));
 }
 
 static bool switch_do_spell(PlayerType *player_ptr, msa_type *msa_ptr)
@@ -179,7 +178,7 @@ static bool check_mspell_continuation(PlayerType *player_ptr, msa_type *msa_ptr)
         return false;
     }
 
-    describe_mspell_monster(player_ptr, msa_ptr);
+    msa_ptr->m_name = monster_desc(player_ptr, msa_ptr->m_ptr, 0x00);
     if (!switch_do_spell(player_ptr, msa_ptr) || (msa_ptr->thrown_spell == MonsterAbilityType::MAX)) {
         return false;
     }
@@ -196,12 +195,12 @@ static bool check_mspell_unexploded(PlayerType *player_ptr, msa_type *msa_ptr)
 
     if (!spell_is_inate(msa_ptr->thrown_spell) && (msa_ptr->in_no_magic_dungeon || (msa_ptr->m_ptr->get_remaining_stun() && one_in_(2)) || (randint0(100) < fail_rate))) {
         disturb(player_ptr, true, true);
-        msg_format(_("%s^は呪文を唱えようとしたが失敗した。", "%s^ tries to cast a spell, but fails."), msa_ptr->m_name);
+        msg_format(_("%s^は呪文を唱えようとしたが失敗した。", "%s^ tries to cast a spell, but fails."), msa_ptr->m_name.data());
         return true;
     }
 
     if (!spell_is_inate(msa_ptr->thrown_spell) && SpellHex(player_ptr).check_hex_barrier(msa_ptr->m_idx, HEX_ANTI_MAGIC)) {
-        msg_format(_("反魔法バリアが%s^の呪文をかき消した。", "Anti magic barrier cancels the spell which %s^ casts."), msa_ptr->m_name);
+        msg_format(_("反魔法バリアが%s^の呪文をかき消した。", "Anti magic barrier cancels the spell which %s^ casts."), msa_ptr->m_name.data());
         return true;
     }