diff options
author | peter1138 <peter1138@openttd.org> | 2007-07-30 08:49:41 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2007-07-30 08:49:41 +0000 |
commit | 92061aba4ea4cb190ae94d98a2ecc1df52f90d45 (patch) | |
tree | 3a919447e032e1fc18a1e2e780c0d9f53dec26d5 /src/rail_cmd.cpp | |
parent | 7fb3f54584fd9dd3266997cd12bd1853c18ad5bb (diff) | |
download | openttd-92061aba4ea4cb190ae94d98a2ecc1df52f90d45.tar.xz |
(svn r10734) -Fix [FS#1030]: Revert r10513) and add special cases for collision detection on bridges/tunnels.
Diffstat (limited to 'src/rail_cmd.cpp')
-rw-r--r-- | src/rail_cmd.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 4c6a01563..ac22758fa 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -1669,13 +1669,10 @@ static bool SignalVehicleCheck(TileIndex tile, uint track) /* check for a vehicle with that trackdir on the end tile of the tunnel */ if (VehicleFromPos(end, &dest, SignalVehicleCheckProc) != NULL) return true; - /* now check all tiles from start to end for a warping vehicle - * NOTE: the hashes for tiles may overlap, so this could maybe be optimised a bit by not checking every tile? */ + /* now check all tiles from start to end for a warping vehicle */ dest.track = 0x40; //Vehicle inside a tunnel or on a bridge - for (; tile != end; tile += TileOffsByDiagDir(direction)) { - if (VehicleFromPos(tile, &dest, SignalVehicleCheckProc) != NULL) - return true; - } + if (VehicleFromPos(tile, &dest, SignalVehicleCheckProc) != NULL) return true; + if (VehicleFromPos(end, &dest, SignalVehicleCheckProc) != NULL) return true; /* no vehicle found */ return false; |