mirror of https://github.com/OpenTTD/OpenTTD
(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.release/0.6
parent
09502deabe
commit
18effde565
|
@ -2804,29 +2804,13 @@ static int GetDirectionToVehicle(const Vehicle *v, int x, int y)
|
||||||
/* Check if the vehicle is compatible with the specified tile */
|
/* Check if the vehicle is compatible with the specified tile */
|
||||||
static bool CheckCompatibleRail(const Vehicle *v, TileIndex 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
|
return
|
||||||
IsTileOwner(tile, v->owner) && (
|
IsTileOwner(tile, v->owner) && (
|
||||||
!IsFrontEngine(v) ||
|
!IsFrontEngine(v) ||
|
||||||
IsCompatibleRail(v->u.rail.railtype, GetRailTypeCrossing(tile))
|
HASBIT(
|
||||||
);
|
v->u.rail.compatible_railtypes,
|
||||||
|
IsTileType(tile, MP_STREET) ? GetRailTypeCrossing(tile) : GetRailType(tile)
|
||||||
default:
|
)
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
IsTileOwner(tile, v->owner) && (
|
|
||||||
!IsFrontEngine(v) ||
|
|
||||||
HASBIT(v->u.rail.compatible_railtypes, GetRailType(tile))
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue