summaryrefslogtreecommitdiff
path: root/src/rail_cmd.cpp
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2007-07-30 08:49:41 +0000
committerpeter1138 <peter1138@openttd.org>2007-07-30 08:49:41 +0000
commit9b9bca40b94fe7e44887004d28efc6b175005e1d (patch)
tree3a919447e032e1fc18a1e2e780c0d9f53dec26d5 /src/rail_cmd.cpp
parent2800a49f0361b586573e8d3c78a1ecb13e414b18 (diff)
downloadopenttd-9b9bca40b94fe7e44887004d28efc6b175005e1d.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.cpp9
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;