@@ -2803,14 +2803,14 @@ int Train::UpdateSpeed()
this->subspeed = (byte)spd;
{
int tempmax = max_speed;
if (this->cur_speed > max_speed) {
tempmax = this->cur_speed - (this->cur_speed / 10) - 1;
}
/* Force a minimum speed of 1 km/h when realistic acceleration is on. */
int min_speed = (_settings_game.vehicle.train_acceleration_model == AM_ORIGINAL) ? 0 : 2;
/* Force a minimum speed of 1 km/h when realistic acceleration is on and the train is not braking. */
int min_speed = (_settings_game.vehicle.train_acceleration_model == AM_ORIGINAL || this->GetAccelerationStatus() == AS_BRAKE) ? 0 : 2;
this->cur_speed = spd = Clamp(this->cur_speed + ((int)spd >> 8), min_speed, tempmax);
int scaled_spd = this->GetAdvanceSpeed(spd);
scaled_spd += this->progress;
Status change: