From e6edcaf333e8339aeebeb731cc1ff9c7c2a32918 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 16 Nov 2020 17:40:09 +0000 Subject: [PATCH] Use VCF_IMAGE_REFRESH_NEXT for ground vehicle VCF_REDRAW_ON_SPEED_CHANGE --- src/ground_vehicle.hpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ground_vehicle.hpp b/src/ground_vehicle.hpp index 42055558b8..b289fb5f9e 100644 --- a/src/ground_vehicle.hpp +++ b/src/ground_vehicle.hpp @@ -399,11 +399,23 @@ struct GroundVehicle : public SpecializedVehicle { SetWindowWidgetDirty(WC_VEHICLE_VIEW, this->index, WID_VV_START_STOP); this->gcache.last_speed = this->cur_speed; if (HasBit(this->vcache.cached_veh_flags, VCF_REDRAW_ON_SPEED_CHANGE) && !_settings_client.gui.disable_vehicle_image_update) { - this->InvalidateImageCacheOfChain(); + this->RefreshImageCacheOfChain(); } } } + /** + * Refresh cached image of all vehicles in the chain (after the current vehicle) + */ + inline void RefreshImageCacheOfChain() + { + ClrBit(this->vcache.cached_veh_flags, VCF_REDRAW_ON_SPEED_CHANGE); + ClrBit(this->vcache.cached_veh_flags, VCF_REDRAW_ON_TRIGGER); + for (Vehicle *u = this; u != nullptr; u = u->Next()) { + SetBit(this->vcache.cached_veh_flags, VCF_IMAGE_REFRESH_NEXT); + } + } + protected: /** * Update the speed of the vehicle.