OSDN Git Service

Merge pull request #1458 from Hourier/feature/Replace-Typedef
[hengbandforosx/hengbandosx.git] / src / monster / monster-processor-util.h
1 /*!
2  * @brief monster-processのための構造体群
3  * @date 2020/03/07
4  * @author Hourier
5  */
6
7 #pragma once
8
9 #include "system/angband.h"
10 #include "monster-race/race-ability-flags.h"
11 #include "util/flag-group.h"
12
13 typedef struct turn_flags {
14         bool see_m;
15         bool aware;
16         bool is_riding_mon;
17         bool do_turn;
18         bool do_move;
19         bool do_view;
20         bool do_take;
21         bool must_alter_to_move;
22
23         bool did_open_door;
24         bool did_bash_door;
25         bool did_take_item;
26         bool did_kill_item;
27         bool did_move_body;
28         bool did_pass_wall;
29         bool did_kill_wall;
30 } turn_flags;
31
32 typedef struct old_race_flags {
33         BIT_FLAGS old_r_flags1;
34         BIT_FLAGS old_r_flags2;
35         BIT_FLAGS old_r_flags3;
36         BIT_FLAGS old_r_flagsr;
37         EnumClassFlagGroup<RF_ABILITY> old_r_ability_flags;
38
39         byte old_r_blows0;
40         byte old_r_blows1;
41         byte old_r_blows2;
42         byte old_r_blows3;
43
44         byte old_r_cast_spell;
45 } old_race_flags;
46
47 typedef struct coordinate_candidate {
48         POSITION gy;
49         POSITION gx;
50         POSITION gdis;
51 } coordinate_candidate;
52
53 struct monster_type;
54 turn_flags *init_turn_flags(MONSTER_IDX riding_idx, MONSTER_IDX m_idx, turn_flags *turn_flags_ptr);
55 old_race_flags *init_old_race_flags(old_race_flags *old_race_flags_ptr);
56 coordinate_candidate init_coordinate_candidate(void);
57
58 void store_enemy_approch_direction(int *mm, POSITION y, POSITION x);
59 void store_moves_val(int *mm, int y, int x);
60 void save_old_race_flags(MONRACE_IDX monster_race_idx, old_race_flags *old_race_flags_ptr);
61 SPEED decide_monster_speed(monster_type *m_ptr);