diff options
Diffstat (limited to 'src/ship_cmd.cpp')
-rw-r--r-- | src/ship_cmd.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 718a5a6e7..7fffc3ec9 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -353,16 +353,21 @@ static void ShipArrivesAt(const Vehicle *v, Station *st) * reverse. The tile given is the tile we are about to enter, enterdir is the * direction in which we are entering the tile */ -static Track ChooseShipTrack(const Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks) +static Track ChooseShipTrack(Ship *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks) { assert(IsValidDiagDirection(enterdir)); + bool path_found = true; + Track track; switch (_settings_game.pf.pathfinder_for_ships) { - case VPF_OPF: return OPFShipChooseTrack(v, tile, enterdir, tracks); - case VPF_NPF: return NPFShipChooseTrack(v, tile, enterdir, tracks); - case VPF_YAPF: return YapfShipChooseTrack(v, tile, enterdir, tracks); + case VPF_OPF: track = OPFShipChooseTrack(v, tile, enterdir, tracks, path_found); break; + case VPF_NPF: track = NPFShipChooseTrack(v, tile, enterdir, tracks, path_found); break; + case VPF_YAPF: track = YapfShipChooseTrack(v, tile, enterdir, tracks, path_found); break; default: NOT_REACHED(); } + + v->HandlePathfindingResult(path_found); + return track; } static const Direction _new_vehicle_direction_table[] = { |