3 * @brief ダンジョン生成処理のヘッダーファイル
9 #define ALLOW_CAVERNS_AND_LAKES
11 #define SAFE_MAX_ATTEMPTS 5000 /*!< 生成処理基本試行回数 */
15 extern int dun_tun_rnd; /*!< ダンジョンの通路方向を掻き回す頻度(一回の試行ごとに%で判定している) */
16 extern int dun_tun_chg; /*!< ダンジョンの通路をクランクさせる頻度(一回の試行ごとに%で判定している) */
17 extern int dun_tun_con; /*!< ダンジョンの通路を継続して引き延ばす頻度(一回の試行ごとに%で判定している) */
18 extern int dun_tun_pen; /*!< ダンジョンの部屋入口にドアを設置する頻度(一回の試行ごとに%で判定している) */
19 extern int dun_tun_jct; /*!< ダンジョンの通路交差地点付近にドアを設置する頻度(一回の試行ごとに%で判定している) */
22 * Hack -- Dungeon allocation "places"
24 #define ALLOC_SET_CORR 1 /* Hallway */
25 #define ALLOC_SET_ROOM 2 /* Room */
26 #define ALLOC_SET_BOTH 3 /* Anywhere */
29 * Hack -- Dungeon allocation "types"
31 #define ALLOC_TYP_RUBBLE 1 /* Rubble */
32 #define ALLOC_TYP_TRAP 3 /* Trap */
33 #define ALLOC_TYP_GOLD 4 /* Gold */
34 #define ALLOC_TYP_OBJECT 5 /* Object */
35 #define ALLOC_TYP_INVIS 6 /* Invisible wall */
40 * The "size" of a "generation block" in grids
46 * Maximum numbers of rooms along each axis (currently 6x6)
48 #define MAX_ROOMS_ROW (MAX_HGT / BLOCK_HGT)
49 #define MAX_ROOMS_COL (MAX_WID / BLOCK_WID)
53 * Bounds on some arrays used in the "dun_data" structure.
54 * These bounds are checked, though usually this is a formality.
63 * Structure to hold all "dungeon generation" data
66 typedef struct dun_data dun_data;
70 /* Array of centers of rooms */
74 /* Array of possible door locations */
78 /* Array of wall piercing locations */
82 /* Array of tunnel grids */
86 /* Number of blocks along each axis */
90 /* Array of which blocks are used */
91 bool room_map[MAX_ROOMS_ROW][MAX_ROOMS_COL];
93 /* Various type of dungeon floors */
100 extern dun_data *dun;