1 #include "angband.h"
\r
3 #include "generate.h"
\r
5 #include "rooms-normal.h"
\r
8 * @brief タイプ9の部屋…フラクタルカーブによる洞窟生成 / Type 9 -- Driver routine to create fractal cave system
\r
11 bool build_type9(void)
\r
13 int grd, roug, cutoff;
\r
14 POSITION xsize, ysize, y0, x0;
\r
16 bool done, light, room;
\r
18 /* get size: note 'Evenness'*/
\r
19 xsize = randint1(22) * 2 + 6;
\r
20 ysize = randint1(15) * 2 + 6;
\r
22 /* Find and reserve some space in the dungeon. Get center of room. */
\r
23 if (!find_space(&y0, &x0, ysize + 1, xsize + 1))
\r
25 /* Limit to the minimum room size, and retry */
\r
29 /* Find and reserve some space in the dungeon. Get center of room. */
\r
30 if (!find_space(&y0, &x0, ysize + 1, xsize + 1))
\r
36 return build_type1();
\r
40 light = done = FALSE;
\r
43 if ((dun_level <= randint1(25)) && !(d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS)) light = TRUE;
\r
47 /* Note: size must be even or there are rounding problems
\r
48 * This causes the tunnels not to connect properly to the room */
\r
50 /* testing values for these parameters feel free to adjust */
\r
51 grd = 1 << (randint0(4));
\r
53 /* want average of about 16 */
\r
54 roug = randint1(8) * randint1(4);
\r
57 cutoff = randint1(xsize / 4) + randint1(ysize / 4) +
\r
58 randint1(xsize / 4) + randint1(ysize / 4);
\r
61 generate_hmap(y0, x0, xsize, ysize, grd, roug, cutoff);
\r
63 /* Convert to normal format + clean up */
\r
64 done = generate_fracave(y0, x0, xsize, ysize, cutoff, light, room);
\r