bool can_move = true;
bool do_past = false;
if (g_ptr->m_idx && (m_ptr->ml || p_can_enter || p_can_kill_walls)) {
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
auto effects = player_ptr->effects();
auto is_stunned = effects->stun()->is_stunned();
if (!is_hostile(m_ptr) && !(player_ptr->confused || player_ptr->hallucinated || !m_ptr->ml || is_stunned || (player_ptr->muta.has(PlayerMutationType::BERS_RAGE) && is_shero(player_ptr))) && pattern_seq(player_ptr, player_ptr->y, player_ptr->x, y, x) && (p_can_enter || p_can_kill_walls)) {
{
WEIGHT n_weight = 0;
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
int dice_num, dice_side;
concptr atk_desc;
{
auto *g_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[g_ptr->m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
GAME_TEXT m_name[MAX_NLEN];
const std::initializer_list<PlayerMutationType> mutation_attack_methods = { PlayerMutationType::HORNS, PlayerMutationType::BEAK, PlayerMutationType::SCOR_TAIL, PlayerMutationType::TRUNK, PlayerMutationType::TENTACLES };
static MONRACE_IDX r = 0;
prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0);
while (true) {
- monster_race *r_ptr = &r_info[r];
+ auto *r_ptr = &r_info[r];
int c;
IDX t;
{
bool success_hit = false;
auto *o_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND + pa_ptr->hand];
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if (((o_ptr->tval == ItemKindType::SWORD) && (o_ptr->sval == SV_POISON_NEEDLE)) || (pa_ptr->mode == HISSATSU_KYUSHO)) {
int n = 1;
*/
static void ninja_critical(PlayerType *player_ptr, player_attack_type *pa_ptr)
{
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
int maxhp = pa_ptr->m_ptr->maxhp;
if (one_in_(pa_ptr->backstab ? 13 : (pa_ptr->stab_fleeing || pa_ptr->surprise_attack) ? 15
: 27)) {
void critical_attack(PlayerType *player_ptr, player_attack_type *pa_ptr)
{
auto *o_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND + pa_ptr->hand];
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if (((o_ptr->tval == ItemKindType::SWORD) && (o_ptr->sval == SV_POISON_NEEDLE)) || (pa_ptr->mode == HISSATSU_KYUSHO)) {
if ((randint1(randint1(r_ptr->level / 7) + 5) == 1) && !(r_ptr->flags1 & RF1_UNIQUE) && !(r_ptr->flags7 & RF7_UNIQUE2)) {
pa_ptr->attack_damage = pa_ptr->m_ptr->hp + 1;
if (!has_sh_fire(player_ptr) || !monap_ptr->alive || player_ptr->is_dead)
return;
- monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
if ((r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK) != 0) {
if (is_original_ap_and_seen(player_ptr, monap_ptr->m_ptr))
r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_FIRE_MASK);
if (!has_sh_elec(player_ptr) || !monap_ptr->alive || player_ptr->is_dead)
return;
- monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
if ((r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK) != 0) {
if (is_original_ap_and_seen(player_ptr, monap_ptr->m_ptr))
r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_ELEC_MASK);
if (!has_sh_cold(player_ptr) || !monap_ptr->alive || player_ptr->is_dead)
return;
- monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
if ((r_ptr->flagsr & RFR_EFF_IM_COLD_MASK) != 0) {
if (is_original_ap_and_seen(player_ptr, monap_ptr->m_ptr))
r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_IM_COLD_MASK);
if (!player_ptr->dustrobe || !monap_ptr->alive || player_ptr->is_dead)
return;
- monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
if ((r_ptr->flagsr & RFR_EFF_RES_SHAR_MASK) != 0) {
if (is_original_ap_and_seen(player_ptr, monap_ptr->m_ptr))
r_ptr->r_flagsr |= (r_ptr->flagsr & RFR_EFF_RES_SHAR_MASK);
if (!player_ptr->tim_sh_holy || !monap_ptr->alive || player_ptr->is_dead)
return;
- monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
if ((r_ptr->flags3 & RF3_EVIL) == 0)
return;
if (!player_ptr->tim_sh_touki || !monap_ptr->alive || player_ptr->is_dead)
return;
- monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
if ((r_ptr->flagsr & RFR_RES_ALL) != 0) {
if (is_original_ap_and_seen(player_ptr, monap_ptr->m_ptr))
r_ptr->r_flagsr |= RFR_RES_ALL;
HIT_POINT dam = 1;
ObjectType *o_armed_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND];
- monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
if (((r_ptr->flagsr & RFR_RES_ALL) != 0) || ((r_ptr->flagsr & RFR_RES_DARK) != 0)) {
if (is_original_ap_and_seen(player_ptr, monap_ptr->m_ptr))
r_ptr->r_flagsr |= (RFR_RES_ALL | RFR_RES_DARK);
grid_type *c_mon_ptr = &player_ptr->current_floor_ptr->grid_array[y][x];
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[c_mon_ptr->m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
/* Check the visibility */
visible = m_ptr->ml;
{
int k;
ARMOUR_CLASS ac;
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
/* Percentile dice */
k = randint1(100);
#undef OFFSET
};
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
for (size_t i = 0; i < sizeof(slay_table) / sizeof(slay_table[0]); ++i) {
const struct slay_table_t *p = &slay_table[i];
{ TR_BRAND_POIS, RFR_EFF_IM_POIS_MASK, 0U },
};
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
for (size_t i = 0; i < sizeof(brand_table) / sizeof(brand_table[0]); ++i) {
const struct brand_table_t *p = &brand_table[i];
return;
MONRACE_IDX pet_r_idx = pc.equals(PlayerClassType::CAVALRY) ? MON_HORSE : MON_YASE_HORSE;
- monster_race *r_ptr = &r_info[pet_r_idx];
+ auto *r_ptr = &r_info[pet_r_idx];
place_monster_aux(player_ptr, 0, player_ptr->y, player_ptr->x - 1, pet_r_idx, (PM_FORCE_PET | PM_NO_KAGE));
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[hack_m_idx_ii];
m_ptr->mspeed = r_ptr->speed;
if (player_ptr->riding && !player_ptr->confused && !player_ptr->blind) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[player_ptr->riding];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (monster_csleep_remaining(m_ptr)) {
GAME_TEXT m_name[MAX_NLEN];
(void)set_monster_csleep(player_ptr, player_ptr->riding, 0);
void quest_discovery(QuestId q_idx)
{
quest_type *q_ptr = &quest[enum2i(q_idx)];
- monster_race *r_ptr = &r_info[q_ptr->r_idx];
+ auto *r_ptr = &r_info[q_ptr->r_idx];
MONSTER_NUMBER q_num = q_ptr->max_num;
if (!inside_quest(q_idx))
static void describe_monster_ball(flavor_type *flavor_ptr)
{
- monster_race *r_ptr = &r_info[flavor_ptr->o_ptr->pval];
+ auto *r_ptr = &r_info[flavor_ptr->o_ptr->pval];
if (!flavor_ptr->known)
return;
static void describe_statue(flavor_type *flavor_ptr)
{
- monster_race *r_ptr = &r_info[flavor_ptr->o_ptr->pval];
+ auto *r_ptr = &r_info[flavor_ptr->o_ptr->pval];
#ifdef JP
flavor_ptr->modstr = r_ptr->name.c_str();
#else
static void describe_corpse(flavor_type *flavor_ptr)
{
- monster_race *r_ptr = &r_info[flavor_ptr->o_ptr->pval];
+ auto *r_ptr = &r_info[flavor_ptr->o_ptr->pval];
flavor_ptr->modstr = r_ptr->name.c_str();
#ifdef JP
flavor_ptr->basenm = "#%";
player_ptr->current_floor_ptr->num_repro++;
} else {
auto *m_ptr = &party_mon[current_monster];
- monster_race *r_ptr = real_r_ptr(m_ptr);
+ auto *r_ptr = real_r_ptr(m_ptr);
GAME_TEXT m_name[MAX_NLEN];
monster_desc(player_ptr, m_name, m_ptr, 0);
msg_format(_("%sとはぐれてしまった。", "You have lost sight of %s."), m_name);
} else if (f_ptr->flags.has(FloorFeatureType::MORE)) {
QuestId q_idx = quest_number(player_ptr, floor_ptr->dun_level);
if (floor_ptr->dun_level > 1 && inside_quest(q_idx)) {
- monster_race *r_ptr = &r_info[quest[enum2i(q_idx)].r_idx];
+ auto *r_ptr = &r_info[quest[enum2i(q_idx)].r_idx];
if (!(r_ptr->flags1 & RF1_UNIQUE) || 0 < r_ptr->max_num)
return true;
}
{
for (int i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
char buf[80];
for (auto it = who.rbegin(); it != who.rend() && std::distance(who.rbegin(), it) < 10; it++) {
- monster_race *r_ptr = &r_info[*it];
+ auto *r_ptr = &r_info[*it];
if (r_ptr->defeat_level && r_ptr->defeat_time)
sprintf(buf, _(" - レベル%2d - %d:%02d:%02d", " - level %2d - %d:%02d:%02d"), r_ptr->defeat_level, r_ptr->defeat_time / (60 * 60),
(r_ptr->defeat_time / 60) % 60, r_ptr->defeat_time % 60);
char buf[80];
ang_sort(player_ptr, who.data(), &why, who.size(), ang_sort_comp_hook, ang_sort_swap_hook);
for (auto r_idx : who) {
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (any_bits(r_ptr->flags1, RF1_UNIQUE)) {
bool dead = (r_ptr->max_num == 0);
if (dead) {
for (i = 0; i < per_page && (mon_idx[mon_top + i] >= 0); i++) {
TERM_COLOR attr;
MONRACE_IDX r_idx = mon_idx[mon_top + i];
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
attr = ((i + mon_top == mon_cur) ? TERM_L_BLUE : TERM_WHITE);
c_prt(attr, (r_ptr->name.c_str()), row + i, col);
if (per_page == 1)
char buf[80];
for (auto r_idx : unique_list_ptr->who) {
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (r_ptr->defeat_level && r_ptr->defeat_time)
sprintf(buf, _(" - レベル%2d - %d:%02d:%02d", " - level %2d - %d:%02d:%02d"), r_ptr->defeat_level, r_ptr->defeat_time / (60 * 60),
m_ptr->ap_r_idx = rd_s16b();
if (h_older_than(1, 0, 14)) {
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
m_ptr->sub_align = SUB_ALIGN_NEUTRAL;
if (r_ptr->flags3 & RF3_EVIL)
*/
bool know_armour(MONRACE_IDX r_idx, const bool know_everything)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
DEPTH level = r_ptr->level;
MONSTER_NUMBER kills = r_ptr->r_tkills;
*/
bool know_damage(MONRACE_IDX r_idx, int i)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
DEPTH level = r_ptr->level;
int32_t a = r_ptr->r_blows[i];
int lore_do_probe(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
int n = 0;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (r_ptr->r_wake != MAX_UCHAR)
n++;
if (r_ptr->r_ignore != MAX_UCHAR)
void lore_treasure(PlayerType *player_ptr, MONSTER_IDX m_idx, ITEM_NUMBER num_item, ITEM_NUMBER num_gold)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!is_original_ap(m_ptr))
return;
}
for (i = 0; i < 4; i++) {
- monster_race *r_ptr = &r_info[battle_mon[i]];
+ auto *r_ptr = &r_info[battle_mon[i]];
power[i] = calc_monrace_power(r_ptr);
total += power[i];
}
prt(_("モンスター 倍率", "Monsters Odds"), 4, 4);
for (int i = 0; i < 4; i++) {
char buf[MAX_MONSTER_NAME];
- monster_race *r_ptr = &r_info[battle_mon[i]];
+ auto *r_ptr = &r_info[battle_mon[i]];
sprintf(buf, _("%d) %-58s %4ld.%02ld倍", "%d) %-58s %4ld.%02ld"), i + 1,
_(format("%s%s", r_ptr->name.c_str(), (r_ptr->flags1 & RF1_UNIQUE) ? "もどき" : " "),
void today_target(PlayerType *player_ptr)
{
char buf[160];
- monster_race *r_ptr = &r_info[w_ptr->today_mon];
+ auto *r_ptr = &r_info[w_ptr->today_mon];
clear_bldg(4, 18);
c_put_str(TERM_YELLOW, _("本日の賞金首", "Wanted monster that changes from day to day"), 5, 10);
*/
static bool process_all_resistances(mam_pp_type *mam_pp_ptr)
{
- monster_race *r_ptr = &r_info[mam_pp_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_pp_ptr->m_ptr->r_idx];
if ((r_ptr->flagsr & RFR_RES_ALL) == 0)
return false;
*/
static bool check_monster_hp(PlayerType *player_ptr, mam_pp_type *mam_pp_ptr)
{
- monster_race *r_ptr = &r_info[mam_pp_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_pp_ptr->m_ptr->r_idx];
if (mam_pp_ptr->m_ptr->hp < 0)
return false;
*/
static void make_monster_fear(PlayerType *player_ptr, mam_pp_type *mam_pp_ptr)
{
- monster_race *r_ptr = &r_info[mam_pp_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_pp_ptr->m_ptr->r_idx];
if (monster_fear_remaining(mam_pp_ptr->m_ptr) || ((r_ptr->flags3 & RF3_NO_FEAR) == 0))
return;
mam_ptr->explode = false;
mam_ptr->touched = false;
- monster_race *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
monster_race *tr_ptr = &r_info[mam_ptr->t_ptr->r_idx];
mam_ptr->ac = tr_ptr->ac;
mam_ptr->rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
static void process_blow_effect(PlayerType *player_ptr, mam_type *mam_ptr)
{
- monster_race *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
switch (mam_ptr->attribute) {
case BLOW_EFFECT_TYPE_FEAR:
project(player_ptr, mam_ptr->m_idx, 0, mam_ptr->t_ptr->fy, mam_ptr->t_ptr->fx, mam_ptr->damage,
static void aura_fire_by_melee(PlayerType *player_ptr, mam_type *mam_ptr)
{
- monster_race *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
monster_race *tr_ptr = &r_info[mam_ptr->t_ptr->r_idx];
if (tr_ptr->aura_flags.has_not(MonsterAuraType::FIRE) || (mam_ptr->m_ptr->r_idx == 0))
return;
static void aura_cold_by_melee(PlayerType *player_ptr, mam_type *mam_ptr)
{
- monster_race *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
monster_race *tr_ptr = &r_info[mam_ptr->t_ptr->r_idx];
if (tr_ptr->aura_flags.has_not(MonsterAuraType::COLD) || (mam_ptr->m_ptr->r_idx == 0))
return;
static void aura_elec_by_melee(PlayerType *player_ptr, mam_type *mam_ptr)
{
- monster_race *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
monster_race *tr_ptr = &r_info[mam_ptr->t_ptr->r_idx];
if (tr_ptr->aura_flags.has_not(MonsterAuraType::ELEC) || (mam_ptr->m_ptr->r_idx == 0))
return;
if (mam_ptr->m_idx == mam_ptr->t_idx)
return false;
- monster_race *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
if (r_ptr->behavior_flags.has(MonsterBehaviorType::NEVER_BLOW))
return false;
*/
void repeat_melee(PlayerType *player_ptr, mam_type *mam_ptr)
{
- monster_race *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
for (int ap_cnt = 0; ap_cnt < MAX_NUM_BLOWS; ap_cnt++) {
mam_ptr->effect = r_ptr->blow[ap_cnt].effect;
mam_ptr->method = r_ptr->blow[ap_cnt].method;
continue;
POSITION d = distance(dy, dx, y, x);
- monster_race *r_ptr = &r_info[f_ptr->m_list[m_idx].r_idx];
+ auto *r_ptr = &r_info[f_ptr->m_list[m_idx].r_idx];
if (d <= 1 && any_bits(r_ptr->flags7, RF7_HAS_LITE_1 | RF7_SELF_LITE_1))
return false;
if (d <= 2 && any_bits(r_ptr->flags7, RF7_HAS_LITE_2 | RF7_SELF_LITE_2))
POSITION oy = y, ox = x;
MONSTER_IDX m_idx = player_ptr->current_floor_ptr->grid_array[y][x].m_idx;
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
GAME_TEXT m_name[MAX_NLEN];
monster_desc(player_ptr, m_name, m_ptr, 0);
*/
void process_surprise_attack(PlayerType *player_ptr, player_attack_type *pa_ptr)
{
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if (!has_melee_weapon(player_ptr, INVEN_MAIN_HAND + pa_ptr->hand) || player_ptr->is_icky_wield[pa_ptr->hand])
return;
*/
MULTIPLY mult_hissatsu(PlayerType *player_ptr, MULTIPLY mult, const TrFlags &flags, monster_type *m_ptr, combat_options mode)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
samurai_slaying_type tmp_slaying;
samurai_slaying_type *samurai_slaying_ptr = initialize_samurai_slaying_type(&tmp_slaying, mult, flags, m_ptr, mode, r_ptr);
hissatsu_burning_strike(player_ptr, samurai_slaying_ptr);
pa_ptr->attack_damage = 0;
anger_monster(player_ptr, pa_ptr->m_ptr);
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if ((r_ptr->flags3 & (RF3_NO_STUN))) {
msg_format(_("%s には効果がなかった。", "%s is not effected."), pa_ptr->m_name);
return;
*/
MULTIPLY calc_snipe_damage_with_slay(PlayerType *player_ptr, MULTIPLY mult, monster_type *m_ptr, SPELL_IDX snipe_type)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
bool seen = is_seen(player_ptr, m_ptr);
auto sniper_data = PlayerClass(player_ptr).get_specific_data<sniper_data_type>();
*/
static int calc_stun_resistance(player_attack_type *pa_ptr)
{
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
int resist_stun = 0;
if (r_ptr->flags1 & RF1_UNIQUE)
resist_stun += 88;
static int process_monk_additional_effect(player_attack_type *pa_ptr, int *stun_effect)
{
int special_effect = 0;
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if (pa_ptr->ma_ptr->effect == MA_KNEE) {
if (r_ptr->flags1 & RF1_MALE) {
msg_format(_("%sに金的膝蹴りをくらわした!", "You hit %s in the groin with your knee!"), pa_ptr->m_name);
*/
static void process_attack_vital_spot(PlayerType *player_ptr, player_attack_type *pa_ptr, int *stun_effect, int *resist_stun, const int special_effect)
{
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if ((special_effect == MA_KNEE) && ((pa_ptr->attack_damage + player_ptr->to_d[pa_ptr->hand]) < pa_ptr->m_ptr->hp)) {
msg_format(_("%^sは苦痛にうめいている!", "%^s moans in agony!"), pa_ptr->m_name);
*stun_effect = 7 + randint1(13);
*/
static void print_stun_effect(PlayerType *player_ptr, player_attack_type *pa_ptr, const int stun_effect, const int resist_stun)
{
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if (stun_effect && ((pa_ptr->attack_damage + player_ptr->to_d[pa_ptr->hand]) < pa_ptr->m_ptr->hp)) {
if (player_ptr->lev > randint1(r_ptr->level + resist_stun + 10)) {
if (set_monster_stunned(player_ptr, pa_ptr->g_ptr->m_idx, stun_effect + monster_stunned_remaining(pa_ptr->m_ptr))) {
void exe_monster_attack_to_player(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, POSITION ny, POSITION nx)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!turn_flags_ptr->do_move || !player_bold(player_ptr, ny, nx))
return;
static bool exe_monster_attack_to_monster(PlayerType *player_ptr, MONSTER_IDX m_idx, grid_type *g_ptr)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
monster_type *y_ptr;
y_ptr = &player_ptr->current_floor_ptr->m_list[g_ptr->m_idx];
if (r_ptr->behavior_flags.has(MonsterBehaviorType::NEVER_BLOW))
bool process_monster_attack_to_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, grid_type *g_ptr, bool can_cross)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
monster_type *y_ptr;
y_ptr = &player_ptr->current_floor_ptr->m_list[g_ptr->m_idx];
if (!turn_flags_ptr->do_move || (g_ptr->m_idx == 0))
*/
concptr extract_note_dies(MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (monster_living(r_idx))
return _("は死んだ。", " dies.");
*/
static bool decide_pet_approch_direction(PlayerType *player_ptr, monster_type *m_ptr, monster_type *t_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!is_pet(m_ptr))
return false;
{
auto *floor_ptr = player_ptr->current_floor_ptr;
auto *m_ptr = &floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
for (int i = start; ((i < start + floor_ptr->m_max) && (i > start - floor_ptr->m_max)); i += plus) {
MONSTER_IDX dummy = (i % floor_ptr->m_max);
if (dummy == 0)
*/
static bool random_walk(PlayerType *player_ptr, DIRECTION *mm, monster_type *m_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (r_ptr->behavior_flags.has_all_of({ MonsterBehaviorType::RAND_MOVE_50, MonsterBehaviorType::RAND_MOVE_25 }) && (randint0(100) < 75)) {
if (is_original_ap_and_seen(player_ptr, m_ptr))
r_ptr->r_behavior_flags.set({ MonsterBehaviorType::RAND_MOVE_50, MonsterBehaviorType::RAND_MOVE_25 });
bool decide_monster_movement_direction(PlayerType *player_ptr, DIRECTION *mm, MONSTER_IDX m_idx, bool aware)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (monster_confused_remaining(m_ptr) || !aware) {
mm[0] = mm[1] = mm[2] = mm[3] = 5;
if (!projectable(player_ptr, y, x, ny, nx))
continue;
if (r_idx > 0) {
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!monster_can_enter(player_ptr, ny, nx, r_ptr, 0))
continue;
} else {
*/
static bool place_monster_group(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSITION x, MONRACE_IDX r_idx, BIT_FLAGS mode)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
int total = randint1(10);
auto *floor_ptr = player_ptr->current_floor_ptr;
*/
static bool place_monster_can_escort(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[place_monster_idx];
+ auto *r_ptr = &r_info[place_monster_idx];
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[place_monster_m_idx];
monster_race *z_ptr = &r_info[r_idx];
*/
bool place_monster_aux(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSITION x, MONRACE_IDX r_idx, BIT_FLAGS mode)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!(mode & PM_NO_KAGE) && one_in_(333))
mode |= PM_KAGE;
*/
static bool process_wall(PlayerType *player_ptr, turn_flags *turn_flags_ptr, monster_type *m_ptr, POSITION ny, POSITION nx, bool can_cross)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
grid_type *g_ptr;
g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
feature_type *f_ptr;
*/
static bool bash_normal_door(PlayerType *player_ptr, turn_flags *turn_flags_ptr, monster_type *m_ptr, POSITION ny, POSITION nx)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
grid_type *g_ptr;
g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
feature_type *f_ptr;
*/
static void bash_glass_door(PlayerType *player_ptr, turn_flags *turn_flags_ptr, monster_type *m_ptr, feature_type *f_ptr, bool may_bash)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!may_bash || (r_ptr->behavior_flags.has_not(MonsterBehaviorType::BASH_DOOR)) || f_ptr->flags.has_not(FloorFeatureType::BASH) || (is_pet(m_ptr) && ((player_ptr->pet_extra_flags & PF_OPEN_DOORS) == 0)))
return;
*/
static bool process_door(PlayerType *player_ptr, turn_flags *turn_flags_ptr, monster_type *m_ptr, POSITION ny, POSITION nx)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
grid_type *g_ptr;
g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
if (!is_closed_door(player_ptr, g_ptr->feat))
{
grid_type *g_ptr;
g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!turn_flags_ptr->do_move || !g_ptr->is_rune_protection() || ((r_ptr->behavior_flags.has(MonsterBehaviorType::NEVER_BLOW)) && player_bold(player_ptr, ny, nx)))
return false;
{
grid_type *g_ptr;
g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!turn_flags_ptr->do_move || !g_ptr->is_rune_explosion() || ((r_ptr->behavior_flags.has(MonsterBehaviorType::NEVER_BLOW)) && player_bold(player_ptr, ny, nx)))
return true;
*/
static bool process_post_dig_wall(PlayerType *player_ptr, turn_flags *turn_flags_ptr, monster_type *m_ptr, POSITION ny, POSITION nx)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
grid_type *g_ptr;
g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
feature_type *f_ptr;
grid_type *g_ptr;
g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
bool can_cross = monster_can_cross_terrain(player_ptr, g_ptr->feat, r_ptr, turn_flags_ptr->is_riding_mon ? CEM_RIDING : 0);
if (!process_wall(player_ptr, turn_flags_ptr, m_ptr, ny, nx, can_cross)) {
POSITION ny, POSITION nx, GAME_TEXT *m_name, GAME_TEXT *o_name, OBJECT_IDX this_o_idx)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (is_special_object) {
if (turn_flags_ptr->do_take && r_ptr->behavior_flags.has(MonsterBehaviorType::STUPID)) {
turn_flags_ptr->did_take_item = true;
void update_object_by_monster_movement(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx, POSITION ny, POSITION nx)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
grid_type *g_ptr;
g_ptr = &player_ptr->current_floor_ptr->grid_array[ny][nx];
{
auto *floor_ptr = player_ptr->current_floor_ptr;
auto *m_ptr = &floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
POSITION y = m_ptr->fy;
POSITION x = m_ptr->fx;
*/
static void escape_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, monster_type *m_ptr, GAME_TEXT *m_name)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (turn_flags_ptr->is_riding_mon) {
msg_format(_("%sはあなたの束縛から脱出した。", "%^s succeeded to escape from your restriction!"), m_name);
if (process_fall_off_horse(player_ptr, -1, false)) {
bool runaway_monster(PlayerType *player_ptr, turn_flags *turn_flags_ptr, MONSTER_IDX m_idx)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_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->flags1 & RF1_UNIQUE) != 0) || ((r_ptr->flags7 & RF7_NAZGUL) != 0);
can_runaway &= !player_ptr->phase_out;
if (!in_bounds(floor_ptr, y, x))
continue;
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
grid_type *g_ptr;
g_ptr = &floor_ptr->grid_array[y][x];
static void sweep_hiding_candidate(
PlayerType *player_ptr, monster_type *m_ptr, const POSITION *y_offsets, const POSITION *x_offsets, coordinate_candidate *candidate)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
for (POSITION i = 0, dx = x_offsets[0], dy = y_offsets[0]; dx != 0 || dy != 0; i++, dx = x_offsets[i], dy = y_offsets[i]) {
POSITION y = m_ptr->fy + dy;
POSITION x = m_ptr->fx + dx;
*/
static bool summon_specific_okay(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!mon_hook_dungeon(player_ptr, r_idx))
return false;
*/
static bool monster_hook_tanuki(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
bool unselectable = any_bits(r_ptr->flags1, RF1_UNIQUE);
unselectable |= any_bits(r_ptr->flags2, RF2_MULTIPLY);
unselectable |= r_ptr->behavior_flags.has(MonsterBehaviorType::FRIENDLY);
if (player_ptr->phase_out)
return true;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if ((any_bits(r_ptr->flags1, RF1_UNIQUE) || any_bits(r_ptr->flags7, RF7_NAZGUL)) && (r_ptr->cur_num >= r_ptr->max_num)) {
return false;
}
if (!g_ptr->is_rune_protection())
return true;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (randint1(BREAK_RUNE_PROTECTION) >= (r_ptr->level + 20))
return false;
if (!player_ptr->warning || !w_ptr->character_dungeon)
return;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (none_bits(r_ptr->flags1, RF1_UNIQUE))
return;
{
auto *floor_ptr = player_ptr->current_floor_ptr;
auto *g_ptr = &floor_ptr->grid_array[y][x];
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
concptr name = r_ptr->name.c_str();
if (player_ptr->wild_mode || !in_bounds(floor_ptr, y, x) || (r_idx == 0) || r_ptr->name.empty())
bool process_quantum_effect(PlayerType *player_ptr, MONSTER_IDX m_idx, bool see_m)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if ((r_ptr->flags2 & RF2_QUANTUM) == 0)
return false;
if (!randint0(2))
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (any_bits(r_ptr->flags8, RF8_WILD_ONLY))
return false;
if (!is_in_dungeon(player_ptr) && !inside_quest(player_ptr->current_floor_ptr->quest_number))
return true;
- monster_race *r_ptr = &r_info[r_idx];
+ 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))
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return any_bits(r_ptr->flags8, RF8_WILD_OCEAN);
}
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return any_bits(r_ptr->flags8, RF8_WILD_SHORE);
}
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return any_bits(r_ptr->flags8, (RF8_WILD_WASTE | RF8_WILD_ALL));
}
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return any_bits(r_ptr->flags8, (RF8_WILD_TOWN | RF8_WILD_ALL));
}
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return any_bits(r_ptr->flags8, (RF8_WILD_WOOD | RF8_WILD_ALL));
}
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return any_bits(r_ptr->flags8, RF8_WILD_VOLCANO);
}
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return any_bits(r_ptr->flags8, RF8_WILD_MOUNTAIN);
}
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return any_bits(r_ptr->flags8, (RF8_WILD_GRASS | RF8_WILD_ALL));
}
*/
bool mon_hook_deep_water(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!mon_hook_dungeon(player_ptr, r_idx))
return false;
*/
bool mon_hook_shallow_water(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!mon_hook_dungeon(player_ptr, r_idx))
return false;
*/
bool mon_hook_lava(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!mon_hook_dungeon(player_ptr, r_idx))
return false;
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (none_bits(r_ptr->flags7, RF7_AQUATIC) || any_bits(r_ptr->flags7, RF7_CAN_FLY))
return true;
else
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_shards(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_jelly(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_animal(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_undead(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
static int chapel_list[] = { MON_NOV_PRIEST, MON_NOV_PALADIN, MON_NOV_PRIEST_G, MON_NOV_PALADIN_G, MON_PRIEST, MON_JADE_MONK, MON_IVORY_MONK,
MON_ULTRA_PALADIN, MON_EBONY_MONK, MON_W_KNIGHT, MON_KNI_TEMPLAR, MON_PALADIN, MON_TOPAZ_MONK, 0 };
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_kennel(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_mimic(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_symbol_e(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_symbol_g(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_orc(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_troll(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_giant(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_dragon(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_demon(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool vault_aux_cthulhu(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
bool monster_living(MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
return none_bits(r_ptr->flags3, (RF3_DEMON | RF3_UNDEAD | RF3_NONLIVING));
}
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (any_bits(r_ptr->flags1, RF1_UNIQUE))
return false;
*/
bool get_nightmare(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (none_bits(r_ptr->flags2, RF2_ELDRITCH_HORROR))
return false;
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (any_bits(r_ptr->flags7, RF7_AQUATIC) && none_bits(r_ptr->flags1, RF1_UNIQUE) && angband_strchr("Jjlw", r_ptr->d_char))
return true;
else
(void)player_ptr;
HIT_POINT dam = 0;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
bool unselectable = r_ptr->behavior_flags.has(MonsterBehaviorType::NEVER_MOVE);
unselectable |= any_bits(r_ptr->flags2, RF2_MULTIPLY);
unselectable |= any_bits(r_ptr->flags2, RF2_QUANTUM) && none_bits(r_ptr->flags1, RF1_UNIQUE);
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (any_bits(r_ptr->flags1, RF1_UNIQUE))
return false;
int cur_dis = 5 * (20 - cnt);
for (MONSTER_IDX i = 1; i < floor_ptr->m_max; i++) {
auto *m_ptr = &floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
if (r_ptr->level > cur_lev)
void message_pain(PlayerType *player_ptr, MONSTER_IDX m_idx, HIT_POINT dam)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
GAME_TEXT m_name[MAX_NLEN];
*/
bool are_enemies(PlayerType *player_ptr, monster_type *m_ptr, monster_type *n_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
monster_race *s_ptr = &r_info[n_ptr->r_idx];
if (player_ptr->phase_out) {
if (m_ptr->ap_r_idx == MON_IT || m_ptr->ap_r_idx == MON_NULL || m_ptr->ap_r_idx == MON_BEHINDER)
return true;
- monster_race *r_ptr = &r_info[m_ptr->ap_r_idx];
+ auto *r_ptr = &r_info[m_ptr->ap_r_idx];
if (angband_strchr("/|\\()[]=$,.!?&`#%<>+~", r_ptr->d_char) == nullptr)
return false;
MONRACE_IDX real_r_idx(monster_type *m_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (m_ptr->mflag2.has(MonsterConstantFlagType::CHAMELEON)) {
if (r_ptr->flags1 & RF1_UNIQUE)
return MON_CHAMELEON_K;
static bool monster_hook_chameleon_lord(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
auto *floor_ptr = player_ptr->current_floor_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
auto *m_ptr = &floor_ptr->m_list[chameleon_change_m_idx];
monster_race *old_r_ptr = &r_info[m_ptr->r_idx];
static bool monster_hook_chameleon(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
auto *floor_ptr = player_ptr->current_floor_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
auto *m_ptr = &floor_ptr->m_list[chameleon_change_m_idx];
monster_race *old_r_ptr = &r_info[m_ptr->r_idx];
void process_monster(PlayerType *player_ptr, MONSTER_IDX m_idx)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
turn_flags tmp_flags;
turn_flags *turn_flags_ptr = init_turn_flags(player_ptr->riding, m_idx, &tmp_flags);
turn_flags_ptr->see_m = is_seen(player_ptr, m_ptr);
return true;
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
int tmp = player_ptr->lev * 6 + (player_ptr->skill_stl + 10) * 4;
if (player_ptr->monlite)
tmp /= 3;
void decide_drop_from_monster(PlayerType *player_ptr, MONSTER_IDX m_idx, bool is_riding_mon)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!is_riding_mon || ((r_ptr->flags7 & RF7_RIDING) != 0))
return;
bool awake_monster(PlayerType *player_ptr, MONSTER_IDX m_idx)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_csleep_remaining(m_ptr))
return true;
void process_angar(PlayerType *player_ptr, MONSTER_IDX m_idx, bool see_m)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
bool gets_angry = false;
if (is_friendly(m_ptr) && has_aggravate(player_ptr))
gets_angry = true;
void process_special(PlayerType *player_ptr, MONSTER_IDX m_idx)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (r_ptr->ability_flags.has_not(MonsterAbilityType::SPECIAL) || (m_ptr->r_idx != MON_OHMU) || player_ptr->current_floor_ptr->inside_arena || player_ptr->phase_out
|| (r_ptr->freq_spell == 0) || (randint1(100) > r_ptr->freq_spell))
return;
bool decide_monster_multiplication(PlayerType *player_ptr, MONSTER_IDX m_idx, POSITION oy, POSITION ox)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (((r_ptr->flags2 & RF2_MULTIPLY) == 0) || (player_ptr->current_floor_ptr->num_repro >= MAX_REPRO))
return false;
bool cast_spell(PlayerType *player_ptr, MONSTER_IDX m_idx, bool aware)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if ((r_ptr->freq_spell == 0) || (randint1(100) > r_ptr->freq_spell))
return false;
*/
void update_monster_race_flags(PlayerType *player_ptr, turn_flags *turn_flags_ptr, monster_type *m_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!is_original_ap_and_seen(player_ptr, m_ptr))
return;
*/
static bool update_weird_telepathy(PlayerType *player_ptr, um_type *um_ptr, MONSTER_IDX m_idx)
{
- monster_race *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
if ((r_ptr->flags2 & RF2_WEIRD_MIND) == 0)
return false;
static void update_telepathy_sight(PlayerType *player_ptr, um_type *um_ptr, MONSTER_IDX m_idx)
{
- monster_race *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
if (PlayerClass(player_ptr).samurai_stance_is(SamuraiStanceType::MUSOU)) {
um_ptr->flag = true;
um_ptr->m_ptr->mflag.set(MonsterTemporaryFlagType::ESP);
static void update_specific_race_telepathy(PlayerType *player_ptr, um_type *um_ptr)
{
- monster_race *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
if ((player_ptr->esp_animal) && (r_ptr->flags3 & RF3_ANIMAL)) {
um_ptr->flag = true;
um_ptr->m_ptr->mflag.set(MonsterTemporaryFlagType::ESP);
if (distance > player_ptr->see_infra)
return false;
- monster_race *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
if (any_bits(r_ptr->flags2, RF2_COLD_BLOOD) && r_ptr->aura_flags.has_not(MonsterAuraType::FIRE))
return false;
if (!player_can_see_bold(player_ptr, um_ptr->fy, um_ptr->fx))
return false;
- monster_race *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
if (r_ptr->flags2 & RF2_INVISIBLE) {
if (player_ptr->see_inv) {
um_ptr->easy = true;
static void decide_sight_invisible_monster(PlayerType *player_ptr, um_type *um_ptr, MONSTER_IDX m_idx)
{
POSITION distance = decide_updated_distance(player_ptr, um_ptr);
- monster_race *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
um_ptr->m_ptr->mflag.reset(MonsterTemporaryFlagType::ESP);
player_ptr->redraw |= PR_UHEALTH;
if (!player_ptr->hallucinated) {
- monster_race *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[um_ptr->m_ptr->r_idx];
if ((um_ptr->m_ptr->ap_r_idx == MON_KAGE) && (r_info[MON_KAGE].r_sights < MAX_SHORT))
r_info[MON_KAGE].r_sights++;
else if (is_original_ap(um_ptr->m_ptr) && (r_ptr->r_sights < MAX_SHORT))
void update_smart_learn(PlayerType *player_ptr, MONSTER_IDX m_idx, int what)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!smart_learn || (r_ptr->behavior_flags.has(MonsterBehaviorType::STUPID)) || ((r_ptr->behavior_flags.has_not(MonsterBehaviorType::SMART)) && (randint0(100) < 50)))
return;
{
DUNGEON_IDX d_idx = player_ptr->dungeon_idx;
dungeon_type *d_ptr = &d_info[d_idx];
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (d_ptr->flags.has(DungeonFeatureType::CHAMELEON)) {
if (chameleon_change_m_idx)
ProjectResult breath(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx, AttributeType typ, int dam_hp, POSITION rad, bool breath, int target_type)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
BIT_FLAGS flg = 0x00;
switch (target_type) {
case MONSTER_TO_MONSTER:
{
auto *floor_ptr = player_ptr->current_floor_ptr;
auto *m_ptr = &floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
HIT_POINT hp = (TYPE == DAM_ROLL) ? m_ptr->hp : m_ptr->max_maxhp;
int shoot_dd, shoot_ds;
*/
HIT_POINT monspell_race_damage(PlayerType *player_ptr, MonsterAbilityType ms_type, MONRACE_IDX r_idx, int TYPE)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
DEPTH rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
bool powerful = any_bits(r_ptr->flags2, RF2_POWERFUL);
HIT_POINT hp = r_ptr->hdice * (ironman_nightmare ? 2 : 1) * r_ptr->hside;
auto *floor_ptr = player_ptr->current_floor_ptr;
auto *m_ptr = &floor_ptr->m_list[m_idx];
monster_type *t_ptr = &floor_ptr->m_list[t_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
bool can_use_lite_area = false;
bool monster_to_monster = TARGET_TYPE == MONSTER_TO_MONSTER;
bool monster_to_player = TARGET_TYPE == MONSTER_TO_PLAYER;
return true;
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (r_ptr->ability_flags.has(MonsterAbilityType::BR_ACID)) {
if (!has_immune_acid(player_ptr) && (player_ptr->oppose_acid || music_singing(player_ptr, MUSIC_RESIST)))
return true;
std::vector<MonsterAbilityType> dispel;
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[msa_ptr->m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (r_ptr->flags2 & RF2_STUPID) {
return (msa_ptr->mspells[randint0(msa_ptr->mspells.size())]);
}
{
auto *floor_ptr = player_ptr->current_floor_ptr;
auto *m_ptr = &floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
switch (m_ptr->r_idx) {
case MON_OHMU:
if (mon_to_player)
msg_format(_("%^sが何かをつぶやいた。", "%^s mumbles."), m_name);
} else if (mon_to_player || (mon_to_mon && known && see_either)) {
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
#ifdef JP
(void)m_poss;
#endif
summon_disturb(player_ptr, TARGET_TYPE, known, see_either);
auto *m_ptr = &floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
int num = 1;
if (any_bits(r_ptr->flags1, RF1_UNIQUE)) {
num += r_ptr->level / 40;
MONSTER_NUMBER summon_DEMON_SLAYER(PlayerType *player_ptr, POSITION y, POSITION x, MONSTER_IDX m_idx)
{
- monster_race *r_ptr = &r_info[MON_DEMON_SLAYER_MEMBER];
+ auto *r_ptr = &r_info[MON_DEMON_SLAYER_MEMBER];
if (r_ptr->max_num == 0) {
msg_print(_("しかし、隊士は全滅していた…。", "However, all demon slayer members were murdered..."));
return 0;
*/
bool check_summon_specific(PlayerType *player_ptr, MONRACE_IDX summoner_idx, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
bool is_match = false;
switch (summon_specific_type) {
case SUMMON_ANT:
int danger_amount = 0;
for (MONSTER_IDX monster = 0; monster < player_ptr->current_floor_ptr->m_max; monster++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[monster];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
vorpal_magnification++;
pa_ptr->attack_damage *= (HIT_POINT)vorpal_magnification;
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if (((r_ptr->flagsr & RFR_RES_ALL) ? pa_ptr->attack_damage / 100 : pa_ptr->attack_damage) > pa_ptr->m_ptr->hp)
msg_format(_("%sを真っ二つにした!", "You cut %s in half!"), pa_ptr->m_name);
else
*/
static void spell_damcalc(PlayerType *player_ptr, monster_type *m_ptr, AttributeType typ, HIT_POINT dam, int *max)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
int rlev = r_ptr->level;
bool ignore_wraith_form = false;
}
if (o_ptr->tval == ItemKindType::STATUE) {
- monster_race *r_ptr = &r_info[o_ptr->pval];
+ auto *r_ptr = &r_info[o_ptr->pval];
if (o_ptr->pval == MON_BULLGATES)
info[i++] = _("それは部屋に飾ると恥ずかしい。", "It is shameful.");
else if (r_ptr->flags2 & (RF2_ELDRITCH_HORROR))
}
if ((o_ptr->tval == ItemKindType::STATUE) && (o_ptr->sval == SV_PHOTO)) {
- monster_race *r_ptr = &r_info[o_ptr->pval];
+ auto *r_ptr = &r_info[o_ptr->pval];
int namelen = strlen(r_ptr->name.c_str());
prt(format("%s: '", r_ptr->name.c_str()), 1, 15);
term_queue_bigchar(18 + namelen, 1, r_ptr->x_attr, r_ptr->x_char, 0, 0);
int sn = 0;
GAME_TEXT m_name[MAX_NLEN];
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[player_ptr->riding];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!player_ptr->riding || player_ptr->wild_mode)
return false;
player_ptr->redraw |= (PR_STATUS);
}
- monster_race *r_ptr = pa_ptr->r_ptr;
+ auto *r_ptr = pa_ptr->r_ptr;
if (r_ptr->flags3 & RF3_NO_CONF) {
if (is_original_ap_and_seen(player_ptr, pa_ptr->m_ptr))
r_ptr->r_flags3 |= RF3_NO_CONF;
*/
static void attack_stun(PlayerType *player_ptr, player_attack_type *pa_ptr, bool can_resist = true)
{
- monster_race *r_ptr = pa_ptr->r_ptr;
+ auto *r_ptr = pa_ptr->r_ptr;
if (any_bits(r_ptr->flags3, RF3_NO_STUN)) {
if (is_original_ap_and_seen(player_ptr, pa_ptr->m_ptr))
set_bits(r_ptr->flags3, RF3_NO_STUN);
*/
static void attack_scare(PlayerType *player_ptr, player_attack_type *pa_ptr, bool can_resist = true)
{
- monster_race *r_ptr = pa_ptr->r_ptr;
+ auto *r_ptr = pa_ptr->r_ptr;
if (any_bits(r_ptr->flags3, RF3_NO_FEAR)) {
if (is_original_ap_and_seen(player_ptr, pa_ptr->m_ptr))
set_bits(r_ptr->flags3, RF3_NO_FEAR);
*/
static bool judge_tereprt_resistance(PlayerType *player_ptr, player_attack_type *pa_ptr)
{
- monster_race *r_ptr = pa_ptr->r_ptr;
+ auto *r_ptr = pa_ptr->r_ptr;
if ((r_ptr->flagsr & RFR_RES_TELE) == 0)
return false;
*/
static void attack_polymorph(PlayerType *player_ptr, player_attack_type *pa_ptr, POSITION y, POSITION x)
{
- monster_race *r_ptr = pa_ptr->r_ptr;
+ auto *r_ptr = pa_ptr->r_ptr;
if (((r_ptr->flags1 & (RF1_UNIQUE | RF1_QUESTOR)) != 0) || ((r_ptr->flagsr & RFR_EFF_RES_CHAO_MASK) != 0))
return;
*/
void change_monster_stat(PlayerType *player_ptr, player_attack_type *pa_ptr, const POSITION y, const POSITION x, int *num)
{
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
auto *o_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND + pa_ptr->hand];
if (any_bits(player_ptr->special_attack, ATTACK_CONFUSE) || pa_ptr->chaos_effect == CE_CONFUSION || pa_ptr->mode == HISSATSU_CONF
*/
static void get_bare_knuckle_exp(PlayerType *player_ptr, player_attack_type *pa_ptr)
{
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if ((r_ptr->level + 10) <= player_ptr->lev)
return;
*/
static void get_attack_exp(PlayerType *player_ptr, player_attack_type *pa_ptr)
{
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
auto *o_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND + pa_ptr->hand];
if (o_ptr->k_idx == 0) {
get_bare_knuckle_exp(player_ptr, pa_ptr);
if (pa_ptr->attack_damage < 0)
pa_ptr->attack_damage = 0;
- monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+ auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
if ((pa_ptr->mode == HISSATSU_ZANMA) && !(!monster_living(pa_ptr->m_ptr->r_idx) && (r_ptr->flags3 & RF3_EVIL))) {
pa_ptr->attack_damage = 0;
}
int power = 100;
if (!necro && m_ptr) {
GAME_TEXT m_name[MAX_NLEN];
- monster_race *r_ptr = &r_info[m_ptr->ap_r_idx];
+ auto *r_ptr = &r_info[m_ptr->ap_r_idx];
power = r_ptr->level / 2;
monster_desc(player_ptr, m_name, m_ptr, 0);
if (!(r_ptr->flags1 & RF1_UNIQUE)) {
/* Unused */
(void)player_ptr;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (!vault_monster_okay(player_ptr, r_idx))
return false;
*/
void wr_lore(MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
wr_s16b((int16_t)r_ptr->r_sights);
wr_s16b((int16_t)r_ptr->r_deaths);
wr_s16b((int16_t)r_ptr->r_pkills);
continue;
auto *m_ptr = &floor_ptr->m_list[gg_ptr->m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (r_ptr->flags1 & RF1_QUESTOR) {
map[16 + yy - cy][16 + xx - cx] = false;
continue;
bool flag = false;
for (MONSTER_IDX i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
bool flag = false;
for (MONSTER_IDX i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
bool flag = false;
for (MONSTER_IDX i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
bool flag = false;
for (MONSTER_IDX i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
bool flag = false;
for (MONSTER_IDX i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
bool flag = false;
for (MONSTER_IDX i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
if (g_ptr->m_idx) {
auto *m_ptr = &floor_ptr->m_list[g_ptr->m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (in_generate) /* In generation */
{
bool genocide_aux(PlayerType *player_ptr, MONSTER_IDX m_idx, int power, bool player_cast, int dam_side, concptr spell_name)
{
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (is_pet(m_ptr) && !player_cast)
return false;
bool result = false;
for (MONSTER_IDX i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
if (r_ptr->d_char != typ)
bool result = false;
for (MONSTER_IDX i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
if (!(r_ptr->flags3 & RF3_UNDEAD))
if (g_ptr->m_idx) {
PERCENTAGE chance = 25;
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[g_ptr->m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
update_monster(player_ptr, g_ptr->m_idx, false);
if (r_ptr->behavior_flags.has(MonsterBehaviorType::STUPID))
chance = 10;
*/
static MONRACE_IDX poly_r_idx(PlayerType *player_ptr, MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if ((r_ptr->flags1 & RF1_UNIQUE) || (r_ptr->flags1 & RF1_QUESTOR))
return (r_idx);
char buf[256];
for (int i = 1; i < player_ptr->current_floor_ptr->m_max; i++) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[i];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (!monster_is_valid(m_ptr))
continue;
if (!player_has_los_bold(player_ptr, m_ptr->fy, m_ptr->fx))
MONSTER_IDX tmp_m_idx = player_ptr->current_floor_ptr->grid_array[oy + yy][ox + xx].m_idx;
if (tmp_m_idx && (player_ptr->riding != tmp_m_idx)) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[tmp_m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
bool can_follow = r_ptr->ability_flags.has(MonsterAbilityType::TPORT);
can_follow &= none_bits(r_ptr->flagsr, RFR_RES_TELE);
}
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[tmp_m_idx];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
bool can_follow = r_ptr->ability_flags.has(MonsterAbilityType::TPORT);
can_follow &= none_bits(r_ptr->flagsr, RFR_RES_TELE);
*/
bool common_saving_throw_charm(PlayerType *player_ptr, HIT_POINT pow, monster_type *m_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (player_ptr->current_floor_ptr->inside_arena)
return true;
*/
bool common_saving_throw_control(PlayerType *player_ptr, HIT_POINT pow, monster_type *m_ptr)
{
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (player_ptr->current_floor_ptr->inside_arena)
return true;
return true;
case ItemKindType::FIGURINE:
case ItemKindType::STATUE: {
- monster_race *r_ptr = &r_info[o_ptr->pval];
+ auto *r_ptr = &r_info[o_ptr->pval];
if (!(r_ptr->flags3 & RF3_EVIL))
if (((r_ptr->flags3 & RF3_GOOD) != 0) || ((r_ptr->flags3 & RF3_ANIMAL) != 0) || (angband_strchr("?!", r_ptr->d_char) != nullptr))
return true;
}
} else if (player_ptr->riding && with_steed) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[player_ptr->riding];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (monster_confused_remaining(m_ptr)) {
if (randint0(100) < 75)
dir = ddd[randint0(8)];
dir = ddd[randint0(8)];
} else if (player_ptr->riding) {
auto *m_ptr = &player_ptr->current_floor_ptr->m_list[player_ptr->riding];
- monster_race *r_ptr = &r_info[m_ptr->r_idx];
+ auto *r_ptr = &r_info[m_ptr->r_idx];
if (monster_confused_remaining(m_ptr)) {
if (randint0(100) < 75)
dir = ddd[randint0(8)];
*/
void roff_top(MONRACE_IDX r_idx)
{
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
char c1 = r_ptr->d_char;
char c2 = r_ptr->x_char;
static void image_monster(TERM_COLOR *ap, SYMBOL_CODE *cp)
{
if (use_graphics) {
- monster_race *r_ptr = &r_info[randint1(r_info.size() - 1)];
+ auto *r_ptr = &r_info[randint1(r_info.size() - 1)];
*cp = r_ptr->x_char;
*ap = r_ptr->x_attr;
return;
return;
}
- monster_race *r_ptr = &r_info[m_ptr->ap_r_idx];
+ auto *r_ptr = &r_info[m_ptr->ap_r_idx];
feat_priority = 30;
if (player_ptr->hallucinated) {
if (r_ptr->visual_flags.has_all_of({ MonsterVisualType::CLEAR, MonsterVisualType::CLEAR_COLOR })) {
{
char buf[256];
MONRACE_IDX r_idx = m_ptr->ap_r_idx;
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
term_erase(0, y, 255);
term_gotoxy(x, y);
if (!player_bold(player_ptr, y, x))
return;
- monster_race *r_ptr = &r_info[0];
+ auto *r_ptr = &r_info[0];
*ap = r_ptr->x_attr;
*cp = r_ptr->x_char;
feat_priority = 31;
ang_sort(&dummy, who.data(), &why, who.size(), ang_sort_comp_hook, ang_sort_swap_hook);
for (auto r_idx : who) {
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
concptr name = r_ptr->name.c_str();
if (filter_monster && !filter_monster(r_ptr)) {
continue;
uint16_t why = 2;
ang_sort(&dummy, who.data(), &why, who.size(), ang_sort_comp_hook, ang_sort_swap_hook);
for (auto r_idx : who) {
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
BIT_FLAGS flags1 = r_ptr->flags1;
if (any_bits(flags1, RF1_UNIQUE)) {
spoil_out("[U] ");
return;
}
- monster_race *r_ptr = &r_info[r_idx];
+ auto *r_ptr = &r_info[r_idx];
if (r_ptr->name.empty()) {
msg_print("そのモンスターは存在しません。");
msg_print(nullptr);