OSDN Git Service

fa441d0c5183f64e8d3e6f7133cc7d33467f1f7c
[hengband/hengband.git] / src / melee / melee-util.c
1 #include "melee/melee-util.h"
2 #include "floor/floor.h"
3
4 mam_type *initialize_mam_type(player_type *subject_ptr, mam_type *mam_ptr, MONRACE_IDX m_idx, MONRACE_IDX t_idx)
5 {
6     mam_ptr->effect_type = 0;
7     mam_ptr->m_idx = m_idx;
8     mam_ptr->t_idx = t_idx;
9     mam_ptr->m_ptr = &subject_ptr->current_floor_ptr->m_list[m_idx];
10     mam_ptr->t_ptr = &subject_ptr->current_floor_ptr->m_list[t_idx];
11     mam_ptr->damage = 0;
12     mam_ptr->see_m = is_seen(subject_ptr, mam_ptr->m_ptr);
13     mam_ptr->see_t = is_seen(subject_ptr, mam_ptr->t_ptr);
14     mam_ptr->see_either = mam_ptr->see_m || mam_ptr->see_t;
15     mam_ptr->y_saver = mam_ptr->t_ptr->fy;
16     mam_ptr->x_saver = mam_ptr->t_ptr->fx;
17     mam_ptr->explode = FALSE;
18     mam_ptr->touched = FALSE;
19
20     monster_race *r_ptr = &r_info[mam_ptr->m_ptr->r_idx];
21     monster_race *tr_ptr = &r_info[mam_ptr->t_ptr->r_idx];
22     mam_ptr->ac = tr_ptr->ac;
23     mam_ptr->rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
24     mam_ptr->blinked = FALSE;
25     mam_ptr->do_silly_attack = (one_in_(2) && subject_ptr->image);
26     mam_ptr->power = 0;
27     mam_ptr->obvious = FALSE;
28     mam_ptr->known = (mam_ptr->m_ptr->cdis <= MAX_SIGHT) || (mam_ptr->t_ptr->cdis <= MAX_SIGHT);
29     mam_ptr->fear = FALSE;
30     mam_ptr->dead = FALSE;
31     return mam_ptr;
32 }