r_ref.max_num = 100;
if (r_ref.kind_flags.has(MonsterKindType::UNIQUE)) {
r_ref.max_num = 1;
- } else if (r_ref.flags7 & RF7_NAZGUL) {
+ } else if (r_ref.population_flags.has(MonsterPopulationType::NAZGUL)) {
r_ref.max_num = MAX_NAZGUL_NUM;
}
auto cannot_capture = quest_monster;
cannot_capture |= em_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE);
cannot_capture |= any_bits(em_ptr->r_ptr->flags1, RF1_QUESTOR);
- cannot_capture |= any_bits(em_ptr->r_ptr->flags7, RF7_NAZGUL | RF7_UNIQUE2);
+ cannot_capture |= em_ptr->r_ptr->population_flags.has(MonsterPopulationType::NAZGUL);
+ cannot_capture |= any_bits(em_ptr->r_ptr->flags7, RF7_UNIQUE2);
cannot_capture |= (em_ptr->m_ptr->parent_m_idx != 0);
if (cannot_capture) {
msg_format(_("%sには効果がなかった。", "%s is unaffected."), em_ptr->m_name);
has_resistance |= is_pet(em_ptr->m_ptr);
has_resistance |= em_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE);
has_resistance |= any_bits(em_ptr->r_ptr->flags1, RF1_QUESTOR);
- has_resistance |= any_bits(em_ptr->r_ptr->flags7, RF7_NAZGUL | RF7_UNIQUE2);
+ has_resistance |= em_ptr->r_ptr->population_flags.has(MonsterPopulationType::NAZGUL);
+ has_resistance |= any_bits(em_ptr->r_ptr->flags7, RF7_UNIQUE2);
if (has_resistance) {
em_ptr->note = _("には効果がなかった。", " is unaffected.");
em_ptr->do_polymorph = false;
}
- if ((em_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(em_ptr->r_ptr->flags1, RF1_QUESTOR) || (em_ptr->r_ptr->flags7 & RF7_NAZGUL)) && !player_ptr->phase_out && (em_ptr->who > 0) && (em_ptr->dam > em_ptr->m_ptr->hp)) {
+ if ((em_ptr->r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(em_ptr->r_ptr->flags1, RF1_QUESTOR) || (em_ptr->r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) && !player_ptr->phase_out && (em_ptr->who > 0) && (em_ptr->dam > em_ptr->m_ptr->hp)) {
em_ptr->dam = em_ptr->m_ptr->hp;
}
}
if (r_ref.kind_flags.has(MonsterKindType::UNIQUE)) {
r_ref.cur_num = 0;
r_ref.max_num = 1;
- } else if (r_ref.flags7 & RF7_NAZGUL) {
+ } else if (r_ref.population_flags.has(MonsterPopulationType::NAZGUL)) {
if (r_ref.cur_num == r_ref.max_num) {
r_ref.max_num++;
}
}
r_ptr = real_r_ptr(m_ptr);
- if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) {
+ if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
r_ptr->floor_id = cur_floor_id;
}
}
}
r_ptr = real_r_ptr(m_ptr);
- if (r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE) && !(r_ptr->flags7 & RF7_NAZGUL)) {
+ if (r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE) && r_ptr->population_flags.has_not(MonsterPopulationType::NAZGUL)) {
continue;
}
}
r_ptr = real_r_ptr(m_ptr);
- if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) {
+ if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
continue;
}
if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
continue;
}
- if (r_ptr->flags7 & (RF7_NAZGUL | RF7_UNIQUE2)) {
+ if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL) || any_bits(r_ptr->flags7, RF7_UNIQUE2)) {
continue;
}
if (r_ptr->flags2 & RF2_MULTIPLY) {
return false;
}
- if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags1, RF1_QUESTOR) || (r_ptr->flags7 & RF7_NAZGUL)) && !player_ptr->phase_out) {
+ if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags1, RF1_QUESTOR) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) && !player_ptr->phase_out) {
mam_pp_ptr->m_ptr->hp = 1;
return false;
}
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
auto *r_ptr = &r_info[m_ptr->r_idx];
bool can_runaway = is_pet(m_ptr) || is_friendly(m_ptr);
- can_runaway &= (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) || ((r_ptr->flags7 & RF7_NAZGUL) != 0);
+ can_runaway &= (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL));
can_runaway &= !player_ptr->phase_out;
if (!can_runaway) {
return false;
}
}
- if (!summon_unique_okay && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL))) {
+ if (!summon_unique_okay && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)))) {
return false;
}
return true;
}
- if ((summon_specific_who < 0) && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr)) {
+ if ((summon_specific_who < 0) && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr)) {
return false;
}
}
auto *r_ptr = &r_info[r_idx];
- if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags7, RF7_NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
+ if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
return false;
}
}
msg_format_wizard(player_ptr, CHEAT_MONSTER, _("%s(Lv%d)を生成しました。", "%s(Lv%d) was generated."), name, r_ptr->level);
- if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || any_bits(r_ptr->flags7, RF7_NAZGUL) || (r_ptr->level < 10)) {
+ if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL) || (r_ptr->level < 10)) {
reset_bits(mode, PM_KAGE);
}
* 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) || any_bits(r_ptr->flags7, RF7_NAZGUL))) {
+ if (w_ptr->character_dungeon && (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
real_r_ptr(m_ptr)->floor_id = player_ptr->floor_id;
}
return false;
}
- if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+ if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
return false;
}
return;
}
- if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+ if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
r_ptr->max_num--;
return;
}
auto r_idx = i2enum<MonsterRaceId>(entry.index);
auto r_ptr = &r_info[r_idx];
if (!(option & GMN_ARENA) && !chameleon_change_m_idx) {
- if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & (RF7_NAZGUL))) && (r_ptr->cur_num >= r_ptr->max_num)) {
+ if ((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
continue;
}
gets_angry = true;
}
- if (is_pet(m_ptr) && (((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr)) || r_ptr->resistance_flags.has(MonsterResistanceType::RESIST_ALL))) {
+ if (is_pet(m_ptr) && (((r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) && monster_has_hostile_align(player_ptr, nullptr, 10, -10, r_ptr)) || r_ptr->resistance_flags.has(MonsterResistanceType::RESIST_ALL))) {
gets_angry = true;
}
}
pow += (adj_chr_chm[player_ptr->stat_index[A_CHR]] - 1);
- if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) {
+ if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
pow = pow * 2 / 3;
}
return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
}
pow += adj_chr_chm[player_ptr->stat_index[A_CHR]] - 1;
- if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->flags7 & RF7_NAZGUL)) {
+ if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL))) {
pow = pow * 2 / 3;
}
return (r_ptr->level > randint1((pow - 10) < 1 ? 1 : (pow - 10)) + 5);
if (lore_ptr->mode != MONSTER_LORE_DEBUG && lore_ptr->r_ptr->r_tkills == 0) {
return;
}
- if (!any_bits(lore_ptr->r_ptr->flags7, RF7_NAZGUL)) {
+ if (!lore_ptr->r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
return;
}
if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
sprintf(nam, "[U] %s", name_buf);
- } else if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+ } else if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
sprintf(nam, "[N] %s", name_buf);
} else {
sprintf(nam, _(" %s", "The %s"), name_buf);
auto *r_ptr = &r_info[r_idx];
if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
spoil_out("[U] ");
- } else if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+ } else if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
spoil_out("[N] ");
}
auto n = 0;
if (r_ptr->kind_flags.has(MonsterKindType::UNIQUE)) {
n = 1;
- } else if (any_bits(r_ptr->flags7, RF7_NAZGUL)) {
+ } else if (r_ptr->population_flags.has(MonsterPopulationType::NAZGUL)) {
n = MAX_NAZGUL_NUM;
}