From 55f42eaa1fa202476d7b9e011330c433209ba978 Mon Sep 17 00:00:00 2001 From: planetmaker Date: Thu, 9 Apr 2015 18:17:43 +0000 Subject: [PATCH] (svn r27222) -Fix [FS#6278]: Use the current maximum speed as limited by bridges, orders etc. for all vehicle types alike when considering increased smoke emissions of vehicles. --- src/vehicle.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/vehicle.cpp b/src/vehicle.cpp index d54c627a05..46f98fe63b 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -2414,7 +2414,9 @@ void Vehicle::ShowVisualEffect() const return; } - uint max_speed = this->vcache.cached_max_speed; + /* Use the speed as limited by underground and orders. */ + uint max_speed = this->GetCurrentMaxSpeed(); + if (this->type == VEH_TRAIN) { const Train *t = Train::From(this); /* For trains, do not show any smoke when: @@ -2423,14 +2425,10 @@ void Vehicle::ShowVisualEffect() const */ if (HasBit(t->flags, VRF_REVERSING) || (IsRailStationTile(t->tile) && t->IsFrontEngine() && t->current_order.ShouldStopAtStation(t, GetStationIndex(t->tile)) && - t->cur_speed >= t->Train::GetCurrentMaxSpeed())) { + t->cur_speed >= max_speed)) { return; } - - max_speed = min(max_speed, t->gcache.cached_max_track_speed); - max_speed = min(max_speed, this->current_order.GetMaxSpeed()); } - if (this->type == VEH_ROAD || this->type == VEH_SHIP) max_speed = min(max_speed, this->current_order.GetMaxSpeed() * 2); const Vehicle *v = this;