4 /*** Terrain feature variables ***/
7 * The terrain feature arrays
21 FEAT_IDX feat_explosive_rune;
25 FEAT_IDX feat_up_stair;
26 FEAT_IDX feat_down_stair;
27 FEAT_IDX feat_entrance;
30 FEAT_IDX feat_trap_open;
31 FEAT_IDX feat_trap_armageddon;
32 FEAT_IDX feat_trap_piranha;
38 FEAT_IDX feat_magma_vein;
39 FEAT_IDX feat_quartz_vein;
42 FEAT_IDX feat_granite;
43 FEAT_IDX feat_permanent;
46 FEAT_IDX feat_glass_floor;
49 FEAT_IDX feat_glass_wall;
50 FEAT_IDX feat_permanent_glass_wall;
53 FEAT_IDX feat_pattern_start;
54 FEAT_IDX feat_pattern_1;
55 FEAT_IDX feat_pattern_2;
56 FEAT_IDX feat_pattern_3;
57 FEAT_IDX feat_pattern_4;
58 FEAT_IDX feat_pattern_end;
59 FEAT_IDX feat_pattern_old;
60 FEAT_IDX feat_pattern_exit;
61 FEAT_IDX feat_pattern_corrupted;
64 FEAT_IDX feat_black_market;
68 FEAT_IDX feat_deep_water;
69 FEAT_IDX feat_shallow_water;
70 FEAT_IDX feat_deep_lava;
71 FEAT_IDX feat_shallow_lava;
72 FEAT_IDX feat_heavy_cold_zone;
73 FEAT_IDX feat_cold_zone;
74 FEAT_IDX feat_heavy_electrical_zone;
75 FEAT_IDX feat_electrical_zone;
76 FEAT_IDX feat_deep_acid_puddle;
77 FEAT_IDX feat_shallow_acid_puddle;
78 FEAT_IDX feat_deep_poisonous_puddle;
79 FEAT_IDX feat_shallow_poisonous_puddle;
85 FEAT_IDX feat_mountain;
88 /* Unknown grid (not detected) */
89 FEAT_IDX feat_undetected;
91 FEAT_IDX feat_wall_outer;
92 FEAT_IDX feat_wall_inner;
93 FEAT_IDX feat_wall_solid;
94 FEAT_IDX feat_ground_type[100], feat_wall_type[100];
97 * Maximum number of terrain features in f_info.txt
102 * @brief 地形が罠持ちであるかの判定を行う。 / Return TRUE if the given feature is a trap
103 * @param feat 地形情報のID
104 * @return 罠持ちの地形ならばTRUEを返す。
106 bool is_trap(FEAT_IDX feat)
108 return have_flag(f_info[feat].flags, FF_TRAP);
112 * @brief 地形が閉じたドアであるかの判定を行う。 / Return TRUE if the given grid is a closed door
113 * @param feat 地形情報のID
114 * @return 閉じたドアのある地形ならばTRUEを返す。
116 bool is_closed_door(FEAT_IDX feat)
118 feature_type *f_ptr = &f_info[feat];
120 return (have_flag(f_ptr->flags, FF_OPEN) || have_flag(f_ptr->flags, FF_BASH)) &&
121 !have_flag(f_ptr->flags, FF_MOVE);