mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
(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.
This commit is contained in:
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 */
|
||||
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)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user