#include "monster-race/race-ability-flags.h"
#include "system/angband.h"
#include "util/flag-group.h"
+#include <string>
#include <vector>
enum mspell_lite_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;
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)
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;
}
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;
}