Fix crash in road vehicle overtaking checks with road waypoints

pull/364/head
Jonathan G Rennison 2 years ago
parent 786f80e878
commit b74de5ff2b

@ -1083,7 +1083,7 @@ static void RoadVehCheckOvertake(RoadVehicle *v, RoadVehicle *u)
check_tile = ahead_end; check_tile = ahead_end;
continue; continue;
} }
if (IsDriveThroughStopTile(check_tile) && GetDriveThroughStopDisallowedRoadDirections(check_tile) != DRD_NONE) { if (IsStationRoadStopTile(check_tile) && IsDriveThroughStopTile(check_tile) && GetDriveThroughStopDisallowedRoadDirections(check_tile) != DRD_NONE) {
const RoadStop *rs = RoadStop::GetByTile(check_tile, GetRoadStopType(check_tile)); const RoadStop *rs = RoadStop::GetByTile(check_tile, GetRoadStopType(check_tile));
DiagDirection dir = DirToDiagDir(v->direction); DiagDirection dir = DirToDiagDir(v->direction);
const RoadStop::Entry *entry = rs->GetEntry(dir); const RoadStop::Entry *entry = rs->GetEntry(dir);
@ -1799,7 +1799,7 @@ again:
* stop. It also makes it possible to load when on the edge of * stop. It also makes it possible to load when on the edge of
* two road stops; otherwise you could get vehicles that should * two road stops; otherwise you could get vehicles that should
* be loading but are not actually loading. */ * be loading but are not actually loading. */
if (IsDriveThroughStopTile(v->tile) && if (IsStationRoadStopTile(v->tile) && IsDriveThroughStopTile(v->tile) &&
RoadStop::IsDriveThroughRoadStopContinuation(v->tile, tile) && RoadStop::IsDriveThroughRoadStopContinuation(v->tile, tile) &&
v->tile != tile) { v->tile != tile) {
/* So, keep 'our' state */ /* So, keep 'our' state */

Loading…
Cancel
Save