@ -3124,7 +3124,7 @@ static VehicleEnterTileStatus VehicleEnter_Station(Vehicle *v, TileIndex tile, i
* begin of the platform to the stop location is longer than the length
* of the platform . Station ahead ' includes ' the current tile where the
* vehicle is on , so we need to subtract that . */
if ( ! IsInsideBS ( stop + station_ahead , station_length , TILE_SIZE ) ) return VETSB_CONTINUE ;
if ( stop + station_ahead - ( int ) TILE_SIZE > = station_length ) return VETSB_CONTINUE ;
DiagDirection dir = DirToDiagDir ( v - > direction ) ;
@ -3136,14 +3136,11 @@ static VehicleEnterTileStatus VehicleEnter_Station(Vehicle *v, TileIndex tile, i
if ( dir ! = DIAGDIR_SE & & dir ! = DIAGDIR_SW ) x = TILE_SIZE - 1 - x ;
stop & = TILE_SIZE - 1 ;
if ( x = = stop ) return VETSB_ENTERED_STATION | ( VehicleEnterTileStatus ) ( station_id < < VETS_STATION_ID_OFFSET ) ; // enter station
if ( x < stop ) {
uint16 spd ;
if ( x > = stop ) return VETSB_ENTERED_STATION | ( VehicleEnterTileStatus ) ( station_id < < VETS_STATION_ID_OFFSET ) ; // enter station
v - > vehstatus | = VS_TRAIN_SLOWING ;
spd = max ( 0 , ( stop - x ) * 20 - 15 ) ;
if ( spd < v - > cur_speed ) v - > cur_speed = spd ;
}
v - > vehstatus | = VS_TRAIN_SLOWING ;
uint16 spd = max ( 0 , ( stop - x ) * 20 - 15 ) ;
if ( spd < v - > cur_speed ) v - > cur_speed = spd ;
}
} else if ( v - > type = = VEH_ROAD ) {
RoadVehicle * rv = RoadVehicle : : From ( v ) ;