Loading

Paste #p6z7gacvt

  1.             Slope tileh_end_aqueduct = GetTileSlope(tile_end);
  2.             if (tileh_end_aqueduct != ComplementSlope(tileh_start)) {
  3.                 switch (tileh_start) {
  4.                     case SLOPE_NE:
  5.                         switch (tileh_end_aqueduct) {
  6.                             case SLOPE_S:
  7.                             case SLOPE_STEEP_S:
  8.                                 tileh_end_aqueduct = SLOPE_W;
  9.                                 break;
  10.                             case SLOPE_W:
  11.                             case SLOPE_STEEP_W:
  12.                                 tileh_end_aqueduct = SLOPE_S;
  13.                                 break;
  14.                             default: NOT_REACHED();
  15.                         }
  16.                     case SLOPE_NW:
  17.                         switch (tileh_end_aqueduct) {
  18.                             case SLOPE_E:
  19.                             case SLOPE_STEEP_E:
  20.                                 tileh_end_aqueduct = SLOPE_S;
  21.                                 break;
  22.                             case SLOPE_S:
  23.                             case SLOPE_STEEP_S:
  24.                                 tileh_end_aqueduct = SLOPE_E;
  25.                                 break;
  26.                             default: NOT_REACHED();
  27.                         }
  28.                     case SLOPE_SW:
  29.                         switch (tileh_end_aqueduct) {
  30.                             case SLOPE_N:
  31.                             case SLOPE_STEEP_N:
  32.                                 tileh_end_aqueduct = SLOPE_E;
  33.                                 break;
  34.                             case SLOPE_E:
  35.                             case SLOPE_STEEP_E:
  36.                                 tileh_end_aqueduct = SLOPE_N;
  37.                                 break;
  38.                             default: NOT_REACHED();
  39.                         }
  40.                     case SLOPE_SE:
  41.                         switch (tileh_end_aqueduct) {
  42.                             case SLOPE_W:
  43.                             case SLOPE_STEEP_W:
  44.                                 tileh_end_aqueduct = SLOPE_N;
  45.                                 break;
  46.                             case SLOPE_N:
  47.                             case SLOPE_STEEP_N:
  48.                                 tileh_end_aqueduct = SLOPE_W;
  49.                                 break;
  50.                             default: NOT_REACHED();
  51.                         }
  52.                     default: NOT_REACHED();
  53.                 }
  54.                 /* Mark the tile as already cleared for the terraform command.
  55.                 * Do this for all tiles (like trees), not only objects. */
  56.                 ClearedObjectArea *coa = FindClearedObject(tile_end);
  57.                 if (coa == NULL) {
  58.                     coa = _cleared_object_areas.Append();
  59.                     coa->first_tile = tile_end;
  60.                     coa->area = TileArea(tile_end, 1, 1);
  61.                 }
  62.  
  63.                 /* Hide the tile from the terraforming command */
  64.                 TileIndex old_first_tile = coa->first_tile;
  65.                 coa->first_tile = INVALID_TILE;
  66.                 ret = DoCommand(tile_end, tileh_end_aqueduct, 1, flags, CMD_TERRAFORM_LAND);
  67.                 coa->first_tile = old_first_tile;
  68.                 if (ret.Failed()) return_cmd_error(STR_ERROR_UNABLE_TO_EXCAVATE_LAND);
  69.                 cost.AddCost(ret);
  70.             }

Comments