diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 2c00d38839..e751695775 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -1789,12 +1789,11 @@ void ViewportAddVehiclesIntl(DrawPixelInfo *dpi) ur >= v->coord.left && ub >= v->coord.top) { Vehicle *v_mutable = const_cast(v); - Direction current_direction = v_mutable->GetMapImageDirection(); switch (v->type) { - case VEH_TRAIN: Train::From(v_mutable)->UpdateImageState(current_direction, v_mutable->sprite_seq); break; - case VEH_ROAD: RoadVehicle::From(v_mutable)->UpdateImageState(current_direction, v_mutable->sprite_seq); break; - case VEH_SHIP: Ship::From(v_mutable)->UpdateImageState(current_direction, v_mutable->sprite_seq); break; - case VEH_AIRCRAFT: Aircraft::From(v_mutable)->UpdateImageState(current_direction, v_mutable->sprite_seq); break; + case VEH_TRAIN: Train::From(v_mutable)->UpdateImageStateUsingMapDirection(v_mutable->sprite_seq); break; + case VEH_ROAD: RoadVehicle::From(v_mutable)->UpdateImageStateUsingMapDirection(v_mutable->sprite_seq); break; + case VEH_SHIP: Ship::From(v_mutable)->UpdateImageStateUsingMapDirection(v_mutable->sprite_seq); break; + case VEH_AIRCRAFT: Aircraft::From(v_mutable)->UpdateImageStateUsingMapDirection(v_mutable->sprite_seq); break; default: break; } v_mutable->UpdateSpriteSeqBound(); diff --git a/src/vehicle_base.h b/src/vehicle_base.h index 226c1a0df2..26e7b80a02 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -1385,6 +1385,11 @@ public: _sprite_group_resolve_check_veh_check = false; } + inline void UpdateImageStateUsingMapDirection(VehicleSpriteSeq &seq) + { + this->UpdateImageState(this->GetMapImageDirection(), seq); + } + private: inline void UpdateViewportNormalViewportMode(bool force_update, Point pt) {