Do not allow RV curves/reversing to override lower max speed

This commit is contained in:
Jonathan G Rennison
2021-06-17 17:17:02 +01:00
parent ec40677fdc
commit 65bd6eee11

View File

@@ -494,13 +494,12 @@ inline int RoadVehicle::GetCurrentMaxSpeed() const
for (const RoadVehicle *u = this; u != nullptr; u = u->Next()) {
if (_settings_game.vehicle.roadveh_acceleration_model == AM_REALISTIC) {
if (this->state <= RVSB_TRACKDIR_MASK && IsReversingRoadTrackdir((Trackdir)this->state)) {
max_speed = this->gcache.cached_max_track_speed / 2;
break;
}
max_speed = std::min(max_speed, this->gcache.cached_max_track_speed / 2);
} else if ((u->direction & 1) == 0) {
// Are we in a curve and should slow down?
if (((u->direction & 1) == 0) && _settings_game.vehicle.slow_road_vehicles_in_curves) {
max_speed = this->gcache.cached_max_track_speed * 3 / 4;
if (_settings_game.vehicle.slow_road_vehicles_in_curves) {
max_speed = std::min(max_speed, this->gcache.cached_max_track_speed * 3 / 4);
}
}
}