| Old revision #ps2m2br1i | New revision #pm51wvliq | ||
|---|---|---|---|
| 2 | =================================================================== | 2 | =================================================================== |
| 3 | --- src/water_cmd.cpp (revision 27527) | 3 | --- src/water_cmd.cpp (revision 27527) |
| 4 | +++ src/water_cmd.cpp (working copy) | 4 | +++ src/water_cmd.cpp (working copy) |
| 5 | @@ -489,7 +489,9 @@ | 5 | @@ -409,7 +409,7 @@ |
| 6 | Company::Get(owner)->infrastructure.water--; | 6 | CommandCost ret; |
| 7 | DirtyCompanyInfrastructureWindows(owner); | ||
| 8 | } | ||
| 9 | + bool river = HasTileWaterClass(tile) && GetWaterClass(tile) == WATER_CLASS_RIVER; | ||
| 10 | DoClearSquare(tile); | ||
| 11 | + if (river) MakeRiver(tile, Random()); | ||
| 12 | MarkCanalsAndRiversAroundDirty(tile); | ||
| 13 | } | ||
| 14 | 7 | ||
| 15 | @@ -1233,6 +1235,7 @@ | 8 | Slope slope = GetTileSlope(tile); |
| 9 | - if (slope != SLOPE_FLAT && (wc != WATER_CLASS_RIVER || !IsInclinedSlope(slope))) { | ||
| 10 | + if (slope != SLOPE_FLAT && wc != WATER_CLASS_RIVER) { | ||
| 11 | return_cmd_error(STR_ERROR_FLAT_LAND_REQUIRED); | ||
| 12 | } | ||
| 13 | |||
| 14 | @@ -1233,6 +1233,7 @@ | ||
| 16 | 15 | ||
| 17 | static TrackStatus GetTileTrackStatus_Water(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side) | 16 | static TrackStatus GetTileTrackStatus_Water(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side) |
| 18 | { | 17 | { | … | … |
| 20 | static const byte coast_tracks[] = {0, 32, 4, 0, 16, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0}; | 19 | static const byte coast_tracks[] = {0, 32, 4, 0, 16, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0}; |
| 21 | 20 | ||
| 22 | TrackBits ts; | 21 | TrackBits ts; |
| 23 | @@ -1240,7 +124 | 23 | @@ -1240,7 +1241,7 @@ |
| 24 | if (mode != TRANSPORT_WATER) return 0; | 23 | if (mode != TRANSPORT_WATER) return 0; |
| 25 | 24 | ||
| 26 | switch (GetWaterTileType(tile)) { | 25 | switch (GetWaterTileType(tile)) { | … | … |
| 28 | + case WATER_TILE_CLEAR: ts = IsTileFlat(tile) ? TRACK_BIT_ALL : (TrackBits)clear_tracks[GetTileSlope(tile) & 0xF]; break; | 27 | + case WATER_TILE_CLEAR: ts = IsTileFlat(tile) ? TRACK_BIT_ALL : (TrackBits)clear_tracks[GetTileSlope(tile) & 0xF]; break; |
| 29 | case WATER_TILE_COAST: ts = (TrackBits)coast_tracks[GetTileSlope(tile) & 0xF]; break; | 28 | case WATER_TILE_COAST: ts = (TrackBits)coast_tracks[GetTileSlope(tile) & 0xF]; break; |
| 30 | case WATER_TILE_LOCK: ts = DiagDirToDiagTrackBits(GetLockDirection(tile)); break; | 29 | case WATER_TILE_LOCK: ts = DiagDirToDiagTrackBits(GetLockDirection(tile)); break; |
| 31 | case WATER_TILE_DEPOT: ts = AxisToTrackBits(GetShipDepotAxis(tile)); break; | 30 | case WATER_TILE_DEPOT: ts = AxisToTrackBits(GetShipDepotAxis(tile)); break; |
| 31 | @@ -1312,6 +1313,8 @@ | ||
| 32 | /* Canals can't be terraformed */ | ||
| 33 | if (IsWaterTile(tile) && IsCanal(tile)) return_cmd_error(STR_ERROR_MUST_DEMOLISH_CANAL_FIRST); | ||
| 34 | |||
| 35 | + if (IsWaterTile(tile) && IsRiver(tile)) return CommandCost(EXPENSES_CONSTRUCTION, _price[PR_CLEAR_WATER]); | ||
| 36 | + | ||
| 37 | return DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR); | ||
| 38 | } | ||