mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-10 08:00:05 +00:00
(svn r13485) -Fix: let ships also navigate on half-tile sloped watery rail tiles.
This commit is contained in:
parent
d61da119d3
commit
43622f95e1
@ -1383,6 +1383,8 @@ static CommandCost ClearTile_Track(TileIndex tile, byte flags)
|
||||
}
|
||||
|
||||
if (water_ground) {
|
||||
if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
|
||||
|
||||
/* The track was removed, and left a coast tile. Now also clear the water. */
|
||||
if (flags & DC_EXEC) DoClearSquare(tile);
|
||||
cost.AddCost(_price.clear_water);
|
||||
@ -2112,6 +2114,19 @@ set_ground:
|
||||
|
||||
static TrackStatus GetTileTrackStatus_Track(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side)
|
||||
{
|
||||
/* Case of half tile slope with water. */
|
||||
if (mode == TRANSPORT_WATER && IsPlainRailTile(tile) && GetRailGroundType(tile) == RAIL_GROUND_WATER) {
|
||||
TrackBits tb = GetTrackBits(tile);
|
||||
switch (tb) {
|
||||
default: NOT_REACHED();
|
||||
case TRACK_BIT_UPPER: tb = TRACK_BIT_LOWER; break;
|
||||
case TRACK_BIT_LOWER: tb = TRACK_BIT_UPPER; break;
|
||||
case TRACK_BIT_LEFT: tb = TRACK_BIT_RIGHT; break;
|
||||
case TRACK_BIT_RIGHT: tb = TRACK_BIT_LEFT; break;
|
||||
}
|
||||
return CombineTrackStatus(TrackBitsToTrackdirBits(tb), TRACKDIR_BIT_NONE);
|
||||
}
|
||||
|
||||
if (mode != TRANSPORT_RAIL) return 0;
|
||||
|
||||
TrackBits trackbits = TRACK_BIT_NONE;
|
||||
|
Loading…
Reference in New Issue
Block a user