mirror of https://github.com/OpenTTD/OpenTTD
(svn r24439) -Fix [FS#5254]: In some cases ships could be covered with land.
parent
13bfb09cbb
commit
59a3bbcbe6
|
@ -2930,6 +2930,14 @@ static CommandCost TestAutoslopeOnRailTile(TileIndex tile, uint flags, int z_old
|
||||||
return cost;
|
return cost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test-procedure for HasVehicleOnPos to check for a ship.
|
||||||
|
*/
|
||||||
|
static Vehicle *EnsureNoShipProc(Vehicle *v, void *data)
|
||||||
|
{
|
||||||
|
return v->type == VEH_SHIP ? v : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static CommandCost TerraformTile_Track(TileIndex tile, DoCommandFlag flags, int z_new, Slope tileh_new)
|
static CommandCost TerraformTile_Track(TileIndex tile, DoCommandFlag flags, int z_new, Slope tileh_new)
|
||||||
{
|
{
|
||||||
int z_old;
|
int z_old;
|
||||||
|
@ -2939,6 +2947,9 @@ static CommandCost TerraformTile_Track(TileIndex tile, DoCommandFlag flags, int
|
||||||
/* Is there flat water on the lower halftile that must be cleared expensively? */
|
/* Is there flat water on the lower halftile that must be cleared expensively? */
|
||||||
bool was_water = (GetRailGroundType(tile) == RAIL_GROUND_WATER && IsSlopeWithOneCornerRaised(tileh_old));
|
bool was_water = (GetRailGroundType(tile) == RAIL_GROUND_WATER && IsSlopeWithOneCornerRaised(tileh_old));
|
||||||
|
|
||||||
|
/* Allow clearing the water only if there is no ship */
|
||||||
|
if (was_water && HasVehicleOnPos(tile, NULL, &EnsureNoShipProc)) return_cmd_error(STR_ERROR_SHIP_IN_THE_WAY);
|
||||||
|
|
||||||
/* First test autoslope. However if it succeeds we still have to test the rest, because non-autoslope terraforming is cheaper. */
|
/* First test autoslope. However if it succeeds we still have to test the rest, because non-autoslope terraforming is cheaper. */
|
||||||
CommandCost autoslope_result = TestAutoslopeOnRailTile(tile, flags, z_old, tileh_old, z_new, tileh_new, rail_bits);
|
CommandCost autoslope_result = TestAutoslopeOnRailTile(tile, flags, z_old, tileh_old, z_new, tileh_new, rail_bits);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue