… | |
… | |
90 | |
90 | |
91 | if (RP->Ysize < MIN_RANDOM_MAP_SIZE) |
91 | if (RP->Ysize < MIN_RANDOM_MAP_SIZE) |
92 | RP->Ysize = MIN_RANDOM_MAP_SIZE + rndm (25) + 5; |
92 | RP->Ysize = MIN_RANDOM_MAP_SIZE + rndm (25) + 5; |
93 | |
93 | |
94 | if (RP->symmetry == SYMMETRY_RANDOM) |
94 | if (RP->symmetry == SYMMETRY_RANDOM) |
95 | RP->symmetry_used = (RANDOM () % (SYMMETRY_XY)) + 1; |
95 | RP->symmetry_used = rndm (SYMMETRY_XY) + 1; |
96 | else |
96 | else |
97 | RP->symmetry_used = RP->symmetry; |
97 | RP->symmetry_used = RP->symmetry; |
98 | |
98 | |
99 | if (RP->symmetry_used == SYMMETRY_Y || RP->symmetry_used == SYMMETRY_XY) |
99 | if (RP->symmetry_used == SYMMETRY_Y || RP->symmetry_used == SYMMETRY_XY) |
100 | RP->Ysize = RP->Ysize / 2 + 1; |
100 | RP->Ysize = RP->Ysize / 2 + 1; |
… | |
… | |
133 | if (strstr (RP->layoutstyle, "squarespiral")) |
133 | if (strstr (RP->layoutstyle, "squarespiral")) |
134 | RP->map_layout_style = LAYOUT_SQUARE_SPIRAL; |
134 | RP->map_layout_style = LAYOUT_SQUARE_SPIRAL; |
135 | |
135 | |
136 | /* No style found - choose one randomly */ |
136 | /* No style found - choose one randomly */ |
137 | if (RP->map_layout_style == LAYOUT_NONE) |
137 | if (RP->map_layout_style == LAYOUT_NONE) |
138 | RP->map_layout_style = (RANDOM () % (NROFLAYOUTS - 1)) + 1; |
138 | RP->map_layout_style = rndm (NROFLAYOUTS - 1) + 1; |
139 | |
139 | |
140 | layout = layoutgen (RP); |
140 | layout = layoutgen (RP); |
141 | |
141 | |
142 | #ifdef RMAP_DEBUG |
142 | #ifdef RMAP_DEBUG |
143 | dump_layout (layout, RP); |
143 | dump_layout (layout, RP); |
… | |
… | |
450 | for (ti = 0; ti < tries; ti++) |
450 | for (ti = 0; ti < tries; ti++) |
451 | { |
451 | { |
452 | int dx, dy; /* starting location for looking at creating a door */ |
452 | int dx, dy; /* starting location for looking at creating a door */ |
453 | int cx, cy; /* results of checking on creating walls. */ |
453 | int cx, cy; /* results of checking on creating walls. */ |
454 | |
454 | |
455 | dx = RANDOM () % RP->Xsize; |
455 | dx = rndm (RP->Xsize); |
456 | dy = RANDOM () % RP->Ysize; |
456 | dy = rndm (RP->Ysize); |
|
|
457 | |
457 | cx = can_make_wall (maze, dx, dy, 0, RP); /* horizontal */ |
458 | cx = can_make_wall (maze, dx, dy, 0, RP); /* horizontal */ |
458 | cy = can_make_wall (maze, dx, dy, 1, RP); /* vertical */ |
459 | cy = can_make_wall (maze, dx, dy, 1, RP); /* vertical */ |
459 | if (cx == -1) |
460 | if (cx == -1) |
460 | { |
461 | { |
461 | if (cy != -1) |
462 | if (cy != -1) |
462 | make_wall (maze, dx, dy, 1); |
463 | make_wall (maze, dx, dy, 1); |
|
|
464 | |
463 | continue; |
465 | continue; |
464 | } |
466 | } |
|
|
467 | |
465 | if (cy == -1) |
468 | if (cy == -1) |
466 | { |
469 | { |
467 | make_wall (maze, dx, dy, 0); |
470 | make_wall (maze, dx, dy, 0); |
468 | continue; |
471 | continue; |
469 | } |
472 | } |
|
|
473 | |
470 | if (cx < cy) |
474 | if (cx < cy) |
471 | make_wall (maze, dx, dy, 0); |
475 | make_wall (maze, dx, dy, 0); |
472 | else |
476 | else |
473 | make_wall (maze, dx, dy, 1); |
477 | make_wall (maze, dx, dy, 1); |
474 | } |
478 | } |
… | |
… | |
620 | while (ndoors > 0 && doorlocs > 0) |
624 | while (ndoors > 0 && doorlocs > 0) |
621 | { |
625 | { |
622 | int di; |
626 | int di; |
623 | int sindex; |
627 | int sindex; |
624 | |
628 | |
625 | di = RANDOM () % doorlocs; |
629 | di = rndm (doorlocs); |
626 | i = doorlist_x[di]; |
630 | i = doorlist_x[di]; |
627 | j = doorlist_y[di]; |
631 | j = doorlist_y[di]; |
628 | sindex = surround_flag (maze, i, j, RP); |
632 | sindex = surround_flag (maze, i, j, RP); |
|
|
633 | |
629 | if (sindex == 3 || sindex == 12) /* these are possible door sindex */ |
634 | if (sindex == 3 || sindex == 12) /* these are possible door sindex */ |
630 | { |
635 | { |
631 | maze[i][j] = 'D'; |
636 | maze[i][j] = 'D'; |
632 | ndoors--; |
637 | ndoors--; |
633 | } |
638 | } |
|
|
639 | |
634 | /* reduce the size of the list */ |
640 | /* reduce the size of the list */ |
635 | doorlocs--; |
641 | doorlocs--; |
636 | doorlist_x[di] = doorlist_x[doorlocs]; |
642 | doorlist_x[di] = doorlist_x[doorlocs]; |
637 | doorlist_y[di] = doorlist_y[doorlocs]; |
643 | doorlist_y[di] = doorlist_y[doorlocs]; |
638 | } |
644 | } |