if (tval == ItemKindType::CAPTURE) {
const auto &r_ref = monraces_info[i2enum<MonsterRaceId>(o_ptr->pval)];
- if (r_ref.flags1 & RF1_FORCE_MAXHP) {
+ if (r_ref.misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
o_ptr->captured_monster_max_hp = maxroll(r_ref.hdice, r_ref.hside);
} else {
o_ptr->captured_monster_max_hp = damroll(r_ref.hdice, r_ref.hside);
lore_ptr->misc_flags.set(MonsterMiscType::FORCE_DEPTH);
}
- if (lore_ptr->r_ptr->flags1 & RF1_FORCE_MAXHP) {
- lore_ptr->flags1 |= (RF1_FORCE_MAXHP);
+ if (lore_ptr->r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
+ lore_ptr->misc_flags.set(MonsterMiscType::FORCE_MAXHP);
}
}
(void)set_monster_csleep(player_ptr, g_ptr->m_idx, (val * 2) + randint1(val * 10));
}
- if (any_bits(r_ptr->flags1, RF1_FORCE_MAXHP)) {
+ if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
m_ptr->max_maxhp = maxroll(r_ptr->hdice, r_ptr->hside);
} else {
m_ptr->max_maxhp = damroll(r_ptr->hdice, r_ptr->hside);
const auto *r_ptr = &monraces_info[this->r_idx];
auto num_resistances = EnumClassFlagGroup<MonsterResistanceType>(r_ptr->resistance_flags & RFR_EFF_IMMUNE_ELEMENT_MASK).count();
- if (r_ptr->flags1 & RF1_FORCE_MAXHP) {
+ if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
ret = r_ptr->hdice * r_ptr->hside * 2;
} else {
ret = r_ptr->hdice * (r_ptr->hside + 1);
auto div_l = (uint)((this->player_ptr->max_plv + 2) * speed_to_energy(r_ptr->speed));
/* Use (average maxhp * 2) as a denominator */
- auto compensation = any_bits(r_ptr->flags1, RF1_FORCE_MAXHP) ? r_ptr->hside * 2 : r_ptr->hside + 1;
+ auto compensation = r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) ? r_ptr->hside * 2 : r_ptr->hside + 1;
s64b_mul(&div_h, &div_l, 0, r_ptr->hdice * (ironman_nightmare ? 2 : 1) * compensation);
/* Special penalty in the wilderness */
m_ptr->mspeed = get_mspeed(floor_ptr, r_ptr);
int oldmaxhp = m_ptr->max_maxhp;
- if (r_ptr->flags1 & RF1_FORCE_MAXHP) {
+ if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP)) {
m_ptr->max_maxhp = maxroll(r_ptr->hdice, r_ptr->hside);
} else {
m_ptr->max_maxhp = damroll(r_ptr->hdice, r_ptr->hside);
m_ptr->ap_r_idx = m_ptr->r_idx;
r_ptr = &m_ptr->get_monrace();
- m_ptr->max_maxhp = any_bits(r_ptr->flags1, RF1_FORCE_MAXHP) ? maxroll(r_ptr->hdice, r_ptr->hside) : damroll(r_ptr->hdice, r_ptr->hside);
+ m_ptr->max_maxhp = r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) ? maxroll(r_ptr->hdice, r_ptr->hside) : damroll(r_ptr->hdice, r_ptr->hside);
if (ironman_nightmare) {
auto hp = m_ptr->max_maxhp * 2;
m_ptr->max_maxhp = std::min(MONSTER_MAXHP, hp);
}
hooked_roff(format(_("%s^は AC%d の防御力と", "%s^ has an armor rating of %d"), Who::who(lore_ptr->msex), lore_ptr->r_ptr->ac));
- if ((lore_ptr->flags1 & RF1_FORCE_MAXHP) || (lore_ptr->r_ptr->hside == 1)) {
+ if (lore_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) || (lore_ptr->r_ptr->hside == 1)) {
auto hp = lore_ptr->r_ptr->hdice * (lore_ptr->nightmare ? 2 : 1) * lore_ptr->r_ptr->hside;
hooked_roff(format(_(" %d の体力がある。", " and a life rating of %d. "), std::min(MONSTER_MAXHP, hp)));
} else {
const auto spd = format("%+d", r_ptr->speed - STANDARD_SPEED);
const auto ac = format("%d", r_ptr->ac);
std::string hp;
- if (any_bits(r_ptr->flags1, RF1_FORCE_MAXHP) || (r_ptr->hside == 1)) {
+ if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) || (r_ptr->hside == 1)) {
hp = format("%d", r_ptr->hdice * r_ptr->hside);
} else {
hp = format("%dd%d", r_ptr->hdice, r_ptr->hside);
spoil_out(format("Lev:%d ", (int)r_ptr->level));
spoil_out(format("Rar:%d ", r_ptr->rarity));
spoil_out(format("Spd:%+d ", r_ptr->speed - STANDARD_SPEED));
- if (any_bits(r_ptr->flags1, RF1_FORCE_MAXHP) || (r_ptr->hside == 1)) {
+ if (r_ptr->misc_flags.has(MonsterMiscType::FORCE_MAXHP) || (r_ptr->hside == 1)) {
spoil_out(format("Hp:%d ", r_ptr->hdice * r_ptr->hside));
} else {
spoil_out(format("Hp:%dd%d ", r_ptr->hdice, r_ptr->hside));