Mercurial > hg > openttd
changeset 15239:7af339d59bab draft
(svn r19873) -Fix [FS#3817]: if the (guessed initial) destination tile of a road stop wasn't a road stop but was a T-junction or turn, the road vehicles would jump around in circles
author | rubidium <rubidium@openttd.org> |
---|---|
date | Fri, 21 May 2010 15:53:02 +0000 |
parents | 1cfb0b93d2c6 |
children | 673afd3a2e81 |
files | src/pathfinder/yapf/yapf_road.cpp |
diffstat | 1 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/pathfinder/yapf/yapf_road.cpp +++ b/src/pathfinder/yapf/yapf_road.cpp @@ -326,8 +326,11 @@ FORCEINLINE Trackdir ChooseRoadTrack(const RoadVehicle *v, TileIndex tile, DiagDirection enterdir) { - /* handle special case - when next tile is destination tile */ - if (tile == v->dest_tile) { + /* Handle special case - when next tile is destination tile. + * However, when going to a station the (initial) destination + * tile might not be a station, but a junction, in which case + * this method forces the vehicle to jump in circles. */ + if (tile == v->dest_tile && !v->current_order.IsType(OT_GOTO_STATION)) { /* choose diagonal trackdir reachable from enterdir */ return DiagDirToDiagTrackdir(enterdir); }