--- a/src/train_cmd.cpp Wed Jan 24 17:58:07 2007 +0000
+++ b/src/train_cmd.cpp Wed Jan 24 18:03:36 2007 +0000
@@ -2804,29 +2804,13 @@
/* 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)
+ )
);
}