static bool monster_hook_tanuki(player_type *player_ptr, MONRACE_IDX r_idx)
{
monster_race *r_ptr = &r_info[r_idx];
-
- if (r_ptr->flags1 & (RF1_UNIQUE))
- return FALSE;
- if (r_ptr->flags2 & RF2_MULTIPLY)
- return FALSE;
- if (r_ptr->flags7 & (RF7_FRIENDLY | RF7_CHAMELEON))
- return FALSE;
- if (r_ptr->flags7 & RF7_AQUATIC)
+ bool unselectable = (r_ptr->flags1 & RF1_UNIQUE) != 0;
+ unselectable |= (r_ptr->flags2 & RF2_MULTIPLY) != 0;
+ unselectable |= (r_ptr->flags7 & (RF7_FRIENDLY | RF7_CHAMELEON)) != 0;
+ unselectable |= (r_ptr->flags7 & RF7_AQUATIC) != 0;
+ if (unselectable)
return FALSE;
- if ((r_ptr->blow[0].method == RBM_EXPLODE) || (r_ptr->blow[1].method == RBM_EXPLODE) || (r_ptr->blow[2].method == RBM_EXPLODE)
- || (r_ptr->blow[3].method == RBM_EXPLODE))
- return FALSE;
+ for (int i = 0; i < 4; i++)
+ if (r_ptr->blow[i].method == RBM_EXPLODE)
+ return FALSE;
return (*(get_monster_hook(player_ptr)))(player_ptr, r_idx);
}
static MONRACE_IDX initial_r_appearance(player_type *player_ptr, MONRACE_IDX r_idx, BIT_FLAGS generate_mode)
{
floor_type *floor_ptr = player_ptr->current_floor_ptr;
- if (player_ptr->pseikaku == PERSONALITY_CHARGEMAN && (generate_mode & PM_JURAL) && !(generate_mode & (PM_MULTIPLY | PM_KAGE))) {
+ if (player_ptr->pseikaku == PERSONALITY_CHARGEMAN && (generate_mode & PM_JURAL) && !(generate_mode & (PM_MULTIPLY | PM_KAGE)))
return MON_ALIEN_JURAL;
- }
if (!(r_info[r_idx].flags7 & RF7_TANUKI))
return r_idx;
get_mon_num_prep(player_ptr, monster_hook_tanuki, NULL);
-
int attempts = 1000;
DEPTH min = MIN(floor_ptr->base_level - 5, 50);
while (--attempts) {
HIT_POINT dam = 0;
monster_race *r_ptr = &r_info[r_idx];
- if (r_ptr->flags1 & (RF1_NEVER_MOVE))
- return FALSE;
-
- if (r_ptr->flags2 & (RF2_MULTIPLY))
- return FALSE;
-
- if (r_ptr->flags2 & (RF2_QUANTUM))
- return FALSE;
-
- if (r_ptr->flags7 & (RF7_AQUATIC))
- return FALSE;
-
- if (r_ptr->flags7 & (RF7_CHAMELEON))
+ bool unselectable = (r_ptr->flags1 & RF1_NEVER_MOVE) != 0;
+ unselectable |= (r_ptr->flags2 & RF2_MULTIPLY) != 0;
+ unselectable |= ((r_ptr->flags2 & RF2_QUANTUM) != 0);
+ unselectable |= (r_ptr->flags7 & RF7_AQUATIC) != 0;
+ unselectable |= (r_ptr->flags7 & RF7_CHAMELEON) != 0;
+ if (unselectable)
return FALSE;
for (int i = 0; i < 4; i++) {