player_ptr->running = 0;
can_move = false;
} else if (f_ptr->flags.has(FloorFeatureType::TREE) && !p_can_kill_walls) {
- auto riding_wild_wood = player_ptr->riding && any_bits(r_info[riding_m_ptr->r_idx].flags8, RF8_WILD_WOOD);
+ auto riding_wild_wood = player_ptr->riding && r_info[riding_m_ptr->r_idx].wilderness_flags.has(MonsterWildernessType::WILD_WOOD);
if (!PlayerClass(player_ptr).equals(PlayerClassType::RANGER) && !player_ptr->levitation && !riding_wild_wood) {
energy.mul_player_turn_energy(2);
}
if (r_ptr->flags7 & RF7_AQUATIC) {
continue;
}
- if (r_ptr->flags8 & RF8_WILD_ONLY) {
+ if (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY)) {
continue;
}
if (no_questor_or_bounty_uniques(r_idx)) {
turn_flags_ptr->do_turn = true;
feature_type *f_ptr;
f_ptr = &f_info[g_ptr->feat];
- if (f_ptr->flags.has(FloorFeatureType::TREE) && ((r_ptr->flags7 & RF7_CAN_FLY) == 0) && ((r_ptr->flags8 & RF8_WILD_WOOD) == 0)) {
+ if (f_ptr->flags.has(FloorFeatureType::TREE) && ((r_ptr->flags7 & RF7_CAN_FLY) == 0) && (r_ptr->wilderness_flags.has_not(MonsterWildernessType::WILD_WOOD))) {
m_ptr->energy_need += ENERGY_NEED();
}
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- if (any_bits(r_ptr->flags8, RF8_WILD_ONLY)) {
+ if (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY)) {
return false;
}
auto *r_ptr = &r_info[r_idx];
dungeon_type *d_ptr = &d_info[player_ptr->dungeon_idx];
- if (any_bits(r_ptr->flags8, RF8_WILD_ONLY)) {
- return any_bits(d_ptr->mflags8, RF8_WILD_MOUNTAIN) && any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN);
+ if (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY)) {
+ return d_ptr->mon_wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN) && r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN);
}
- bool land = none_bits(r_ptr->flags7, RF7_AQUATIC);
- return none_bits(d_ptr->mflags8, RF8_WILD_MOUNTAIN | RF8_WILD_VOLCANO) || (any_bits(d_ptr->mflags8, RF8_WILD_MOUNTAIN) && (land || any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN))) || (any_bits(d_ptr->mflags8, RF8_WILD_VOLCANO) && (land || any_bits(r_ptr->flags8, RF8_WILD_VOLCANO)));
+ auto land = none_bits(r_ptr->flags7, RF7_AQUATIC);
+ auto is_mountain_monster = d_ptr->mon_wilderness_flags.has_none_of({ MonsterWildernessType::WILD_MOUNTAIN, MonsterWildernessType::WILD_VOLCANO });
+ is_mountain_monster |= d_ptr->mon_wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN) && (land || r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN));
+ is_mountain_monster |= d_ptr->mon_wilderness_flags.has(MonsterWildernessType::WILD_VOLCANO) && (land || r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_VOLCANO));
+ return is_mountain_monster;
}
/*!
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- return any_bits(r_ptr->flags8, RF8_WILD_OCEAN);
+ return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_OCEAN);
}
/*!
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- return any_bits(r_ptr->flags8, RF8_WILD_SHORE);
+ return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_SHORE);
}
/*!
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- return any_bits(r_ptr->flags8, (RF8_WILD_WASTE | RF8_WILD_ALL));
+ return r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_WASTE, MonsterWildernessType::WILD_ALL });
}
/*!
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- return any_bits(r_ptr->flags8, (RF8_WILD_TOWN | RF8_WILD_ALL));
+ return r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_TOWN, MonsterWildernessType::WILD_ALL });
}
/*!
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- return any_bits(r_ptr->flags8, (RF8_WILD_WOOD | RF8_WILD_ALL));
+ return r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_WOOD, MonsterWildernessType::WILD_ALL });
}
/*!
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- return any_bits(r_ptr->flags8, RF8_WILD_VOLCANO);
+ return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_VOLCANO);
}
/*!
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- return any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN);
+ return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN);
}
/*!
(void)player_ptr;
auto *r_ptr = &r_info[r_idx];
- return any_bits(r_ptr->flags8, (RF8_WILD_GRASS | RF8_WILD_ALL));
+ return r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_GRASS, MonsterWildernessType::WILD_ALL });
}
/*!
s64b_mul(&div_h, &div_l, 0, r_ptr->hdice * (ironman_nightmare ? 2 : 1) * compensation);
/* Special penalty in the wilderness */
- if (!this->player_ptr->current_floor_ptr->dun_level && (none_bits(r_ptr->flags8, RF8_WILD_ONLY) || r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE))) {
+ if (!this->player_ptr->current_floor_ptr->dun_level && (r_ptr->wilderness_flags.has_not(MonsterWildernessType::WILD_ONLY) || r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE))) {
s64b_mul(&div_h, &div_l, 0, 5);
}
return false;
}
- if (f_ptr->flags.has(FloorFeatureType::MOUNTAIN) && (r_ptr->flags8 & RF8_WILD_MOUNTAIN)) {
+ if (f_ptr->flags.has(FloorFeatureType::MOUNTAIN) && (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN))) {
return true;
}
return true;
}
- if ((r_ptr->flags8 & (RF8_WILD_TOWN | RF8_WILD_ALL)) && (s_ptr->flags8 & (RF8_WILD_TOWN | RF8_WILD_ALL))) {
+ if (r_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_TOWN, MonsterWildernessType::WILD_ALL }) && s_ptr->wilderness_flags.has_any_of({ MonsterWildernessType::WILD_TOWN, MonsterWildernessType::WILD_ALL })) {
if (!is_pet(m_ptr) && !is_pet(n_ptr)) {
return false;
}
is_match = ((r_idx == MonsterRaceId::NOV_PALADIN) || (r_idx == MonsterRaceId::NOV_PALADIN_G) || (r_idx == MonsterRaceId::PALADIN) || (r_idx == MonsterRaceId::W_KNIGHT) || (r_idx == MonsterRaceId::ULTRA_PALADIN) || (r_idx == MonsterRaceId::KNI_TEMPLAR));
break;
case SUMMON_EAGLES:
- is_match = (r_ptr->d_char == 'B') && ((r_ptr->flags8 & RF8_WILD_MOUNTAIN) != 0) && ((r_ptr->flags8 & RF8_WILD_ONLY) != 0);
+ is_match = (r_ptr->d_char == 'B') && (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN)) && (r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY));
break;
case SUMMON_PIRANHAS:
is_match = r_idx == MonsterRaceId::PIRANHA;
{
auto status = spoil_mon_desc("mon-desc-ridable.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags7, RF7_RIDING); });
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-wildonly.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_ONLY); });
+ status = spoil_mon_desc("mon-desc-wildonly.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ONLY); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-town.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_TOWN); });
+ status = spoil_mon_desc("mon-desc-town.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_TOWN); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-shore.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_SHORE); });
+ status = spoil_mon_desc("mon-desc-shore.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_SHORE); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-ocean.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_OCEAN); });
+ status = spoil_mon_desc("mon-desc-ocean.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_OCEAN); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-waste.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_WASTE); });
+ status = spoil_mon_desc("mon-desc-waste.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_WASTE); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-wood.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_WOOD); });
+ status = spoil_mon_desc("mon-desc-wood.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_WOOD); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-volcano.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_VOLCANO); });
+ status = spoil_mon_desc("mon-desc-volcano.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_VOLCANO); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-mountain.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN); });
+ status = spoil_mon_desc("mon-desc-mountain.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_MOUNTAIN); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-grass.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_GRASS); });
+ status = spoil_mon_desc("mon-desc-grass.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_GRASS); });
}
if (status == SpoilerOutputResultType::SPOILER_OUTPUT_SUCCESS) {
- status = spoil_mon_desc("mon-desc-wildall.txt", [](const monster_race *r_ptr) { return any_bits(r_ptr->flags8, RF8_WILD_ALL); });
+ status = spoil_mon_desc("mon-desc-wildall.txt", [](const monster_race *r_ptr) { return r_ptr->wilderness_flags.has(MonsterWildernessType::WILD_ALL); });
}
return status;