@ -1313,7 +1313,23 @@ again:
v - > cur_speed = 0 ;
v - > cur_speed = 0 ;
return false ;
return false ;
}
}
if ( IsRoadStop ( v - > tile ) ) RoadStop : : GetByTile ( v - > tile , GetRoadStopType ( v - > tile ) ) - > Leave ( v ) ;
/* If we are a drive through road stop and the next tile is of
* the same road stop and the next tile isn ' t this one ( i . e . we
* are not reversing ) , then keep the reservation and state .
* This way we will not be shortly unregister from the road
* stop . It also makes it possible to load when on the edge of
* two road stops ; otherwise you could get vehicles that should
* be loading but are not actually loading . */
if ( IsDriveThroughStopTile ( v - > tile ) & &
RoadStop : : IsDriveThroughRoadStopContinuation ( v - > tile , tile ) & &
v - > tile ! = tile ) {
/* So, keep 'our' state */
dir = ( Trackdir ) v - > state ;
} else if ( IsRoadStop ( v - > tile ) ) {
/* We're not continuing our drive through road stop, so leave. */
RoadStop : : GetByTile ( v - > tile , GetRoadStopType ( v - > tile ) ) - > Leave ( v ) ;
}
}
}
if ( ! HasBit ( r , VETS_ENTERED_WORMHOLE ) ) {
if ( ! HasBit ( r , VETS_ENTERED_WORMHOLE ) ) {