diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 5ca65ea641..70ac8ca86e 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -3186,6 +3186,7 @@ void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type) int total_width = 0; int y_offset = 0; bool rotor_seq = false; // Whether to draw the rotor of the vehicle in this step. + bool is_ground_vehicle = v->IsGroundVehicle(); while (v != nullptr) { if (total_width >= ScaleGUITrad(2 * (int)VEHICLEINFO_FULL_VEHICLE_WIDTH)) break; @@ -3221,10 +3222,13 @@ void SetMouseCursorVehicle(const Vehicle *v, EngineImageType image_type) } } - int offs = (ScaleGUITrad(VEHICLEINFO_FULL_VEHICLE_WIDTH) - total_width) / 2; - if (rtl) offs = -offs; - for (uint i = 0; i < _cursor.sprite_count; ++i) { - _cursor.sprite_pos[i].x += offs; + if (is_ground_vehicle) { + /* Center trains and road vehicles on the front vehicle */ + int offs = (ScaleGUITrad(VEHICLEINFO_FULL_VEHICLE_WIDTH) - total_width) / 2; + if (rtl) offs = -offs; + for (uint i = 0; i < _cursor.sprite_count; ++i) { + _cursor.sprite_pos[i].x += offs; + } } UpdateCursorSize();