Loading

Paste #pyxuf1a7i

  1.     /* Create additional river tiles around possible lock locations to connect them. */
  2.     for (uint tile = 0; tile != MapSize(); tile++) {
  3.         if (IsValidTile(tile) && IsTileType(tile, MP_WATER) && IsRiver(tile) && IsInclinedSlope(GetTileSlope(tile))) {
  4.  
  5.             Slope slope = GetTileSlope(tile);
  6.             DiagDirection dir = GetInclinedSlopeDirection(slope);
  7.             int delta_side = TileOffsByDiagDir(ChangeDiagDir(dir, DIAGDIRDIFF_90RIGHT));
  8.             int delta_mid = TileOffsByDiagDir(dir);
  9.  
  10.             // Partial example, for the first 3 tiles:
  11.  
  12.             int delta_counts[] = {2, 1, 1};
  13.             int side_counts[] = {0, 1, -1};
  14.  
  15.             for (int m = -1; m <= 1; m += 2) {
  16.                 for (int i = 0; i < lengthof(delta_counts); i++) {
  17.                     TileIndex tc = tile + delta_counts[i] * delta_mid + m * delta_side * side_counts[i];
  18.                     // Process tile.
  19.                     if (side_counts[i] != 0) {
  20.                         if (IsWaterTile(tc)) {
  21.                             TileIndex tr = tc + delta_mid;
  22.                             if (!IsWaterTile(tr) && IsTileFlat(tr)) {
  23.                                 MakeRiver(tr, Random());
  24.                                 /* Remove desert directly around the river tile. */
  25.                                 CircularTileSearch(&tr, 5, RiverModifyDesertZone, NULL);
  26.                             }
  27.                         }
  28.                     } else {
  29.                         if (!IsWaterTile(tc)) {
  30.                             MakeRiver(tc, Random());
  31.                             /* Remove desert directly around the river tile. */
  32.                             CircularTileSearch(&tc, 5, RiverModifyDesertZone, NULL);
  33.                         }
  34.                     }
  35.                 }
  36.             }
  37.         }
  38.     }

Version history

Revision # Author Created at
pxyftsh2y Anonymous 23 Nov 2017, 16:57:20 UTC Diff
pduluvw6w Anonymous 23 Nov 2017, 12:51:59 UTC Diff

Comments