ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/random_maps/random_map.C
(Generate patch)

Comparing deliantra/server/random_maps/random_map.C (file contents):
Revision 1.26 by root, Thu Jan 25 03:54:45 2007 UTC vs.
Revision 1.27 by root, Sat Jan 27 02:19:37 2007 UTC

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 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines