#define PM_HASTE 0x00000100 /*!< モンスター生成フラグ: 加速状態で生成する */
#define PM_KAGE 0x00000200 /*!< モンスター生成フラグ: 必ずあやしい影として生成する */
#define PM_MULTIPLY 0x00000400 /*!< モンスター生成フラグ: 増殖処理時として生成する */
+#define PM_JURAL 0x00000800 /*!< モンスター生成フラグ: ジュラル星人として誤認生成する */
extern bool place_monster_aux(player_type *player_ptr, MONSTER_IDX who, POSITION y, POSITION x, MONRACE_IDX r_idx, BIT_FLAGS mode);
extern bool place_monster(player_type *player_ptr, POSITION y, POSITION x, BIT_FLAGS mode);
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 == SEIKAKU_CHARGEMAN && !(generate_mode & (PM_MULTIPLY | PM_KAGE)))
+ if ((generate_mode | PM_JURAL) && !(generate_mode & (PM_MULTIPLY | PM_KAGE)))
{
- if ((one_in_(5) || (floor_ptr->base_level == 0)) &&
- !(r_info[r_idx].flags1 & RF1_UNIQUE) && my_strchr("hkoptuyAHLOPTUVY", r_info[r_idx].d_char)) return MON_ALIEN_JURAL;
+ return MON_ALIEN_JURAL;
}
if (!(r_info[r_idx].flags7 & RF7_TANUKI))
r_idx = get_mon_num(player_ptr, player_ptr->current_floor_ptr->monster_level);
if (!r_idx) return FALSE;
+ if ((one_in_(5) || (player_ptr->current_floor_ptr->base_level == 0)) &&
+ !(r_info[r_idx].flags1 & RF1_UNIQUE) && my_strchr("hkoptuyAHLOPTUVY", r_info[r_idx].d_char))
+ {
+ mode |= PM_JURAL;
+ }
+
if (place_monster_aux(player_ptr, 0, y, x, r_idx, mode)) return TRUE;
return FALSE;