diff options
author | matthijs <matthijs@openttd.org> | 2005-04-04 18:36:08 +0000 |
---|---|---|
committer | matthijs <matthijs@openttd.org> | 2005-04-04 18:36:08 +0000 |
commit | bb67c4f3568899a5c186f332229d45dd5d570d7e (patch) | |
tree | a90700427d92be3e97a4c9941d9c69a14af2c301 | |
parent | cee1a5d1b2ef51536366db0de7ff4db2ebbe7a55 (diff) | |
download | openttd-bb67c4f3568899a5c186f332229d45dd5d570d7e.tar.xz |
(svn r2148) - Add: [NPF] Trains can now plan taking into account that they can reverse in depots. This makes forced servicing tracks work with NPF.
-rw-r--r-- | npf.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -507,9 +507,14 @@ void NPFFollowTrack(AyStar* aystar, OpenListNode* current) { /* Let's see if were headed the right way */ if (src_trackdir != _dir_to_diag_trackdir[exitdir]) - /* Not going out of the station/depot through the exit, but the back. No - * neighbours then. */ - return; + /* We are headed inwards. We can only reverse here, so we'll not + * consider this direction, but jump ahead to the reverse direction. + * It would be nicer to return one neighbour here (the reverse + * trackdir of the one we are considering now) and then considering + * that one to return the tracks outside of the depot. But, because + * the code layout is cleaner this way, we will just pretend we are + * reversed already */ + src_trackdir = _reverse_trackdir[src_trackdir]; } /* This a normal tile, a bridge, a tunnel exit, etc. */ dst_tile = AddTileIndexDiffCWrap(src_tile, TileIndexDiffCByDir(_trackdir_to_exitdir[src_trackdir])); |