diff options
author | tron <tron@openttd.org> | 2007-01-24 18:03:36 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2007-01-24 18:03:36 +0000 |
commit | 18effde5658a58b00511a398825e02ecc4df3cee (patch) | |
tree | 7a704466bd9fa7a4e5851b6849773f83e8277052 /src | |
parent | 09502deabe8c03830a76193771c4427da3882b29 (diff) | |
download | openttd-18effde5658a58b00511a398825e02ecc4df3cee.tar.xz |
(svn r8393) -Fix
-Codechange: CheckCompatibleRail() is only called for tiles which are known to contain a piece of rail. Simplify the function accordingly by eliminating unnecessary checks.
-Fix (?): Also fix an inconsistency in deciding what a compatible rail type is between level crossings and other rail tiles. It is unknown if this caused any problems.
Diffstat (limited to 'src')
-rw-r--r-- | src/train_cmd.cpp | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index d5ea4570d..e4f67cb4f 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2804,29 +2804,13 @@ static int GetDirectionToVehicle(const Vehicle *v, int x, int y) /* Check if the vehicle is compatible with the specified tile */ static bool CheckCompatibleRail(const Vehicle *v, TileIndex tile) { - switch (GetTileType(tile)) { - case MP_TUNNELBRIDGE: - case MP_RAILWAY: - case MP_STATION: - // normal tracks, jump to owner check - break; - - case MP_STREET: - // tracks over roads, do owner check of tracks - return - IsTileOwner(tile, v->owner) && ( - !IsFrontEngine(v) || - IsCompatibleRail(v->u.rail.railtype, GetRailTypeCrossing(tile)) - ); - - default: - return true; - } - return IsTileOwner(tile, v->owner) && ( !IsFrontEngine(v) || - HASBIT(v->u.rail.compatible_railtypes, GetRailType(tile)) + HASBIT( + v->u.rail.compatible_railtypes, + IsTileType(tile, MP_STREET) ? GetRailTypeCrossing(tile) : GetRailType(tile) + ) ); } |