Relax constraints on tile behind overtaking vehicle

This commit is contained in:
Jonathan G Rennison
2020-10-27 23:35:32 +00:00
parent b0dbcf33c1
commit 77c14c2f1e

View File

@@ -1010,9 +1010,14 @@ static void RoadVehCheckOvertake(RoadVehicle *v, RoadVehicle *u)
check_tile = v->tile - check_tile_diff;
for (; tile_count != 0; tile_count--, check_tile -= check_tile_diff) {
od.tile = check_tile;
if (tile_count == 1) {
RoadBits rb = GetAnyRoadBits(check_tile, RTT_ROAD);
if ((rb & DiagDirToRoadBits(dir)) && HasVehicleOnPos(check_tile, VEH_ROAD, &od, EnumFindVehBlockingOvertakeBehind)) return;
} else {
if (CheckRoadInfraUnsuitableForOvertaking(&od)) return;
if (CheckRoadBlockedForOvertaking(&od)) return;
}
}
/* When the vehicle in front of us is stopped we may only take
* half the time to pass it than when the vehicle is moving. */