OSDN Git Service

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