{
this->change_virtue_non_beginner();
this->change_virtue_unique();
- const auto &r_ref = this->m_ptr->get_real_r_ref();
+ const auto &r_ref = this->m_ptr->get_real_monrace();
if (m_ptr->r_idx == MonsterRaceId::BEGGAR || m_ptr->r_idx == MonsterRaceId::LEPER) {
chg_virtue(this->player_ptr, Virtue::COMPASSION, -1);
}
m_ptr->mtimed[MTIMED_CSLEEP] = 0;
m_ptr->hold_o_idx_list.clear();
m_ptr->target_y = 0;
- auto &r_ref = m_ptr->get_real_r_ref();
+ auto &r_ref = m_ptr->get_real_monrace();
if (r_ref.behavior_flags.has(MonsterBehaviorType::PREVENT_SUDDEN_MAGIC) && !ironman_nightmare) {
m_ptr->mflag.set(MonsterTemporaryFlagType::PREVENT_MAGIC);
}
}
} else {
auto *m_ptr = &party_mon[current_monster];
- auto &r_ref = m_ptr->get_real_r_ref();
+ auto &r_ref = m_ptr->get_real_monrace();
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, DiaryKind::NAMED_PET, RECORD_NAMED_PET_LOST_SIGHT, monster_desc(player_ptr, m_ptr, MD_INDEF_VISIBLE));
continue;
}
- auto &r_ref = m_ref.get_real_r_ref();
+ auto &r_ref = m_ref.get_real_monrace();
if (r_ref.kind_flags.has(MonsterKindType::UNIQUE) || (r_ref.population_flags.has(MonsterPopulationType::NAZGUL))) {
r_ref.floor_id = cur_floor_id;
}
(void)set_monster_invulner(player_ptr, i, 0, false);
}
- const auto &r_ref = m_ptr->get_real_r_ref();
+ const auto &r_ref = m_ptr->get_real_monrace();
if (r_ref.kind_flags.has_not(MonsterKindType::UNIQUE) && r_ref.population_flags.has_not(MonsterPopulationType::NAZGUL)) {
continue;
}
continue;
}
- const auto &r_ref = m_ptr->get_real_r_ref();
+ const auto &r_ref = m_ptr->get_real_monrace();
if (r_ref.kind_flags.has(MonsterKindType::UNIQUE) || (r_ref.population_flags.has(MonsterPopulationType::NAZGUL))) {
continue;
}
continue;
}
- m_ptr->get_real_r_ref().cur_num++;
+ m_ptr->get_real_monrace().cur_num++;
}
}
monster_loader->rd_monster(m_ptr);
auto *g_ptr = &floor_ptr->grid_array[m_ptr->fy][m_ptr->fx];
g_ptr->m_idx = m_idx;
- m_ptr->get_real_r_ref().cur_num++;
+ m_ptr->get_real_monrace().cur_num++;
}
return 0;
monster_loader->rd_monster(m_ptr);
auto *g_ptr = &floor_ptr->grid_array[m_ptr->fy][m_ptr->fx];
g_ptr->m_idx = m_idx;
- m_ptr->get_real_r_ref().cur_num++;
+ m_ptr->get_real_monrace().cur_num++;
}
if (h_older_than(0, 3, 13) && !floor_ptr->dun_level && !floor_ptr->inside_arena) {
POSITION y = m_ptr->fy;
POSITION x = m_ptr->fx;
- m_ptr->get_real_r_ref().cur_num--;
+ m_ptr->get_real_monrace().cur_num--;
if (r_ptr->flags2 & (RF2_MULTIPLY)) {
floor_ptr->num_repro--;
}
update_monster(player_ptr, g_ptr->m_idx, true);
- m_ptr->get_real_r_ref().cur_num++;
+ m_ptr->get_real_monrace().cur_num++;
/*
* Memorize location of the unique monster in saved floors.
* A unique monster move from old saved floor.
*/
if (w_ptr->character_dungeon && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
- m_ptr->get_real_r_ref().floor_id = player_ptr->floor_id;
+ m_ptr->get_real_monrace().floor_id = player_ptr->floor_id;
}
if (any_bits(r_ptr->flags2, RF2_MULTIPLY)) {
bool MonsterDamageProcessor::process_dead_exp_virtue(std::string_view note, MonsterEntity *exp_mon)
{
auto *m_ptr = &this->player_ptr->current_floor_ptr->m_list[this->m_idx];
- auto &r_ref = m_ptr->get_real_r_ref();
+ auto &r_ref = m_ptr->get_real_monrace();
if (m_ptr->hp >= 0) {
return false;
}
}
if (m_ptr->mflag2.has(MonsterConstantFlagType::CHAMELEON)) {
- auto &real_r_ref = m_ptr->get_real_r_ref();
- r_idx = m_ptr->get_real_r_idx();
+ auto &real_r_ref = m_ptr->get_real_monrace();
+ r_idx = m_ptr->get_real_monrace_id();
if (real_r_ref.r_sights < MAX_SHORT) {
real_r_ref.r_sights++;
}
void MonsterDamageProcessor::increase_kill_numbers()
{
auto *m_ptr = &this->player_ptr->current_floor_ptr->m_list[this->m_idx];
- auto &r_ref = m_ptr->get_real_r_ref();
+ auto &r_ref = m_ptr->get_real_monrace();
auto is_hallucinated = this->player_ptr->effects()->hallucination()->is_hallucinated();
if (((m_ptr->ml == 0) || is_hallucinated) && r_ref.kind_flags.has_not(MonsterKindType::UNIQUE)) {
return;
void MonsterDamageProcessor::death_amberites(std::string_view m_name)
{
auto *m_ptr = &this->player_ptr->current_floor_ptr->m_list[this->m_idx];
- const auto &r_ref = m_ptr->get_real_r_ref();
+ const auto &r_ref = m_ptr->get_real_monrace();
if (r_ref.kind_flags.has_not(MonsterKindType::AMBERITE) || one_in_(2)) {
return;
}
void MonsterDamageProcessor::dying_scream(std::string_view m_name)
{
auto *m_ptr = &this->player_ptr->current_floor_ptr->m_list[this->m_idx];
- const auto &r_ref = m_ptr->get_real_r_ref();
+ const auto &r_ref = m_ptr->get_real_monrace();
if (r_ref.speak_flags.has_none_of({ MonsterSpeakType::SPEAK_ALL, MonsterSpeakType::SPEAK_DEATH })) {
return;
}
{
auto *floor_ptr = this->player_ptr->current_floor_ptr;
auto *m_ptr = &floor_ptr->m_list[this->m_idx];
- const auto &r_ref = m_ptr->get_real_r_ref();
+ const auto &r_ref = m_ptr->get_real_monrace();
if (r_ref.kind_flags.has_not(MonsterKindType::UNIQUE) || m_ptr->mflag2.has(MonsterConstantFlagType::CLONED) || vanilla_town) {
return;
}
{
const auto &monrace = monraces_info[monster.ap_r_idx];
if (!is_hallucinated || any_bits(mode, MD_IGNORE_HALLU)) {
- return any_bits(mode, MD_TRUE_NAME) ? monster.get_real_r_ref().name : monrace.name;
+ return any_bits(mode, MD_TRUE_NAME) ? monster.get_real_monrace().name : monrace.name;
}
if (one_in_(2)) {
auto old_sub_align = m_ptr->sub_align;
/* Hack -- Reduce the racial counter of previous monster */
- m_ptr->get_real_r_ref().cur_num--;
+ m_ptr->get_real_monrace().cur_num--;
const auto m_name = monster_desc(player_ptr, m_ptr, 0);
m_ptr->r_idx = r_ptr->next_r_idx;
/* Count the monsters on the level */
- m_ptr->get_real_r_ref().cur_num++;
+ m_ptr->get_real_monrace().cur_num++;
m_ptr->ap_r_idx = m_ptr->r_idx;
r_ptr = &monraces_info[m_ptr->r_idx];
return MonsterRace(this->r_idx).is_valid();
}
-MonsterRaceId MonsterEntity::get_real_r_idx() const
+MonsterRaceId MonsterEntity::get_real_monrace_id() const
{
- const auto &r_ref = monraces_info[this->r_idx];
+ const auto &monrace = monraces_info[this->r_idx];
if (this->mflag2.has_not(MonsterConstantFlagType::CHAMELEON)) {
return this->r_idx;
}
- return r_ref.kind_flags.has(MonsterKindType::UNIQUE) ? MonsterRaceId::CHAMELEON_K : MonsterRaceId::CHAMELEON;
+ return monrace.kind_flags.has(MonsterKindType::UNIQUE) ? MonsterRaceId::CHAMELEON_K : MonsterRaceId::CHAMELEON;
}
/*!
- * @brief モンスターの真の種族を返す / Extract monster race pointer of a monster's true form
- * @return 本当のモンスター種族参照ポインタ
+ * @brief モンスターの真の種族定義を返す (CHAMAELEONフラグ専用)
+ * @return 真のモンスター種族参照
*/
-MonsterRaceInfo &MonsterEntity::get_real_r_ref() const
+MonsterRaceInfo &MonsterEntity::get_real_monrace() const
{
- return monraces_info[this->get_real_r_idx()];
+ return monraces_info[this->get_real_monrace_id()];
}
short MonsterEntity::get_remaining_sleep() const
bool is_original_ap() const;
bool is_mimicry() const;
bool is_valid() const;
- MonsterRaceId get_real_r_idx() const;
- MonsterRaceInfo &get_real_r_ref() const;
+ MonsterRaceId get_real_monrace_id() const;
+ MonsterRaceInfo &get_real_monrace() const;
short get_remaining_sleep() const;
short get_remaining_acceleration() const;
short get_remaining_deceleration() const;