1 #include "system/grid-type-definition.h"
2 #include "monster-race/race-flags7.h"
3 #include "system/monster-race-definition.h"
4 #include "system/terrain-type-definition.h"
5 #include "util/bit-flags-calculator.h"
8 * @brief 指定座標がFLOOR属性を持ったマスかどうかを返す
11 * @return FLOOR属性を持っているならばTRUE
13 bool grid_type::is_floor() const
15 return any_bits(this->info, CAVE_FLOOR);
18 bool grid_type::is_room() const
20 return any_bits(this->info, CAVE_ROOM);
23 bool grid_type::is_extra() const
25 return any_bits(this->info, CAVE_EXTRA);
28 bool grid_type::is_inner() const
30 return any_bits(this->info, CAVE_INNER);
33 bool grid_type::is_outer() const
35 return any_bits(this->info, CAVE_OUTER);
38 bool grid_type::is_solid() const
40 return any_bits(this->info, CAVE_SOLID);
43 bool grid_type::is_icky() const
45 return any_bits(this->info, CAVE_ICKY);
48 bool grid_type::is_lite() const
50 return any_bits(this->info, CAVE_LITE);
53 bool grid_type::is_redraw() const
55 return any_bits(this->info, CAVE_REDRAW);
58 bool grid_type::is_view() const
60 return any_bits(this->info, CAVE_VIEW);
63 bool grid_type::is_object() const
65 return any_bits(this->info, CAVE_OBJECT);
68 bool grid_type::is_mark() const
70 return any_bits(this->info, CAVE_MARK);
73 bool grid_type::is_mirror() const
75 return this->is_object() && terrains_info[this->mimic].flags.has(TerrainCharacteristics::MIRROR);
79 * @brief 守りのルーンで守られているかを返す
81 bool grid_type::is_rune_protection() const
83 return this->is_object() && terrains_info[this->mimic].flags.has(TerrainCharacteristics::RUNE_PROTECTION);
87 * @brief 爆発のルーンが仕掛けられているかを返す
89 bool grid_type::is_rune_explosion() const
91 return this->is_object() && terrains_info[this->mimic].flags.has(TerrainCharacteristics::RUNE_EXPLOSION);
94 byte grid_type::get_cost(MonsterRaceInfo *r_ptr) const
96 return this->costs[get_grid_flow_type(r_ptr)];
99 byte grid_type::get_distance(MonsterRaceInfo *r_ptr) const
101 return this->dists[get_grid_flow_type(r_ptr)];
104 flow_type grid_type::get_grid_flow_type(MonsterRaceInfo *r_ptr) const
106 return r_ptr->feature_flags.has(MonsterFeatureType::CAN_FLY) ? FLOW_CAN_FLY : FLOW_NORMAL;
110 * @brief グリッドのミミック特性地形を返す
111 * @param g_ptr グリッドへの参照ポインタ
114 FEAT_IDX grid_type::get_feat_mimic() const
116 return terrains_info[this->mimic ? this->mimic : this->feat].mimic;
119 bool grid_type::cave_has_flag(TerrainCharacteristics feature_flags) const
121 return terrains_info[this->feat].flags.has(feature_flags);
125 * @brief グリッドのシンボルが指定した記号かどうかを調べる
126 * @param ch 指定するシンボル文字
127 * @return シンボルが指定した記号か否か
129 bool grid_type::is_symbol(const int ch) const
131 return terrains_info[this->feat].x_char[0] == ch;