OSDN Git Service

[Refactor] #37353 max_f_idx を feature.c/h へ移動.
[hengband/hengband.git] / src / feature.h
1 #pragma once
2
3 /*!
4  * @struct feature_state
5  * @brief 地形状態変化指定構造体 / Feature state structure
6  */
7 typedef struct feature_state feature_state;
8
9 struct feature_state
10 {
11         FF_FLAGS_IDX action; /*!< 変化条件をFF_*のIDで指定 / Action (FF_*) */
12         STR_OFFSET result_tag; /*!< 変化先ID / Result (f_info ID) */
13         FEAT_IDX result; /*!< 変化先ID / Result (f_info ID) */
14 };
15
16 typedef struct
17 {
18         FEAT_IDX feat;    /* Feature tile */
19         PERCENTAGE percent; /* Chance of type */
20 }
21 feat_prob;
22
23 /*!
24  * @struct feature_type
25  * @brief 地形情報の構造体 / Information about terrain "features"
26  */
27
28 typedef struct feature_type feature_type;
29
30 struct feature_type
31 {
32         STR_OFFSET name;                /*!< 地形名参照のためのネームバッファオフセット値 / Name (offset) */
33         STR_OFFSET text;                /*!< 地形説明参照のためのネームバッファオフセット値 /  Text (offset) */
34         STR_OFFSET tag;                 /*!< 地形特性タグ参照のためのネームバッファオフセット値 /  Tag (offset) */
35
36         STR_OFFSET mimic_tag;
37         STR_OFFSET destroyed_tag;
38
39         FEAT_IDX mimic;               /*!< 未確定時の外形地形ID / Feature to mimic */
40         FEAT_IDX destroyed;           /*!< *破壊*に巻き込まれた時の地形移行先(未実装?) / Default destroyed state */
41
42         BIT_FLAGS flags[FF_FLAG_SIZE]; /*!< 地形の基本特性ビット配列 / Flags */
43
44         FEAT_PRIORITY priority;            /*!< 縮小表示で省略する際の表示優先度 / Map priority */
45
46         feature_state state[MAX_FEAT_STATES]; /*!< feature_state テーブル */
47
48         FEAT_SUBTYPE subtype;  /*!< 副特性値 */
49         FEAT_POWER power;    /*!< 地形強度 */
50
51         TERM_COLOR d_attr[F_LIT_MAX];   /*!< デフォルトの地形シンボルカラー / Default feature attribute */
52         SYMBOL_CODE d_char[F_LIT_MAX];   /*!< デフォルトの地形シンボルアルファベット / Default feature character */
53
54         TERM_COLOR x_attr[F_LIT_MAX];   /*!< 設定変更後の地形シンボルカラー / Desired feature attribute */
55         SYMBOL_CODE x_char[F_LIT_MAX];   /*!< 設定変更後の地形シンボルアルファベット / Desired feature character */
56 };
57
58 extern FEAT_IDX max_f_idx;
59
60 extern feature_type *f_info;
61
62 extern bool is_closed_door(FEAT_IDX feat);
63 extern bool is_trap(FEAT_IDX feat);
64
65 /*** Terrain feature variables ***/
66 extern FEAT_IDX feat_none;
67 extern FEAT_IDX feat_floor;
68 extern FEAT_IDX feat_glyph;
69 extern FEAT_IDX feat_explosive_rune;
70 extern FEAT_IDX feat_mirror;
71 extern FEAT_IDX feat_up_stair;
72 extern FEAT_IDX feat_down_stair;
73 extern FEAT_IDX feat_entrance;
74 extern FEAT_IDX feat_trap_open;
75 extern FEAT_IDX feat_trap_armageddon;
76 extern FEAT_IDX feat_trap_piranha;
77 extern FEAT_IDX feat_rubble;
78 extern FEAT_IDX feat_magma_vein;
79 extern FEAT_IDX feat_quartz_vein;
80 extern FEAT_IDX feat_granite;
81 extern FEAT_IDX feat_permanent;
82 extern FEAT_IDX feat_glass_floor;
83 extern FEAT_IDX feat_glass_wall;
84 extern FEAT_IDX feat_permanent_glass_wall;
85 extern FEAT_IDX feat_pattern_start;
86 extern FEAT_IDX feat_pattern_1;
87 extern FEAT_IDX feat_pattern_2;
88 extern FEAT_IDX feat_pattern_3;
89 extern FEAT_IDX feat_pattern_4;
90 extern FEAT_IDX feat_pattern_end;
91 extern FEAT_IDX feat_pattern_old;
92 extern FEAT_IDX feat_pattern_exit;
93 extern FEAT_IDX feat_pattern_corrupted;
94 extern FEAT_IDX feat_black_market;
95 extern FEAT_IDX feat_town;
96 extern FEAT_IDX feat_deep_water;
97 extern FEAT_IDX feat_shallow_water;
98 extern FEAT_IDX feat_deep_lava;
99 extern FEAT_IDX feat_shallow_lava;
100 extern FEAT_IDX feat_heavy_cold_zone;
101 extern FEAT_IDX feat_cold_zone;
102 extern FEAT_IDX feat_heavy_electrical_zone;
103 extern FEAT_IDX feat_electrical_zone;
104 extern FEAT_IDX feat_deep_acid_puddle;
105 extern FEAT_IDX feat_shallow_acid_puddle;
106 extern FEAT_IDX feat_deep_poisonous_puddle;
107 extern FEAT_IDX feat_shallow_poisonous_puddle;
108 extern FEAT_IDX feat_dirt;
109 extern FEAT_IDX feat_grass;
110 extern FEAT_IDX feat_flower;
111 extern FEAT_IDX feat_brake;
112 extern FEAT_IDX feat_tree;
113 extern FEAT_IDX feat_mountain;
114 extern FEAT_IDX feat_swamp;
115 extern FEAT_IDX feat_undetected;
116
117 extern FEAT_IDX feat_wall_outer;
118 extern FEAT_IDX feat_wall_inner;
119 extern FEAT_IDX feat_wall_solid;
120 extern FEAT_IDX feat_ground_type[100], feat_wall_type[100];