|
|
|
@ -501,10 +501,9 @@ static Track ChooseShipTrack(Ship *v, TileIndex tile, DiagDirection enterdir, Tr
|
|
|
|
|
* Get the available water tracks on a tile for a ship entering a tile.
|
|
|
|
|
* @param tile The tile about to enter.
|
|
|
|
|
* @param dir The entry direction.
|
|
|
|
|
* @param trackdir The trackdir the ship has on the old tile.
|
|
|
|
|
* @return The available trackbits on the next tile.
|
|
|
|
|
*/
|
|
|
|
|
static inline TrackBits GetAvailShipTracks(TileIndex tile, DiagDirection dir, Trackdir trackdir)
|
|
|
|
|
static inline TrackBits GetAvailShipTracks(TileIndex tile, DiagDirection dir)
|
|
|
|
|
{
|
|
|
|
|
TrackBits tracks = GetTileShipTrackStatus(tile) & DiagdirReachesTracks(dir);
|
|
|
|
|
|
|
|
|
@ -715,7 +714,7 @@ static void ShipController(Ship *v)
|
|
|
|
|
|
|
|
|
|
DiagDirection diagdir = DiagdirBetweenTiles(gp.old_tile, gp.new_tile);
|
|
|
|
|
assert(diagdir != INVALID_DIAGDIR);
|
|
|
|
|
tracks = GetAvailShipTracks(gp.new_tile, diagdir, v->GetVehicleTrackdir());
|
|
|
|
|
tracks = GetAvailShipTracks(gp.new_tile, diagdir);
|
|
|
|
|
if (tracks == TRACK_BIT_NONE) goto reverse_direction;
|
|
|
|
|
|
|
|
|
|
/* Choose a direction, and continue if we find one */
|
|
|
|
|