diff --git a/src/window.cpp b/src/window.cpp index 4ec2d2c968..9f215d4593 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -2683,15 +2683,20 @@ static void HandleAutoscroll() y -= vp->top; /* here allows scrolling in both x and y axis */ + /* If we succeed at scrolling in any direction, stop following a vehicle. */ static const int SCROLLSPEED = 3; if (x - 15 < 0) { + w->viewport->follow_vehicle = INVALID_VEHICLE; w->viewport->dest_scrollpos_x += ScaleByZoom((x - 15) * SCROLLSPEED, vp->zoom); } else if (15 - (vp->width - x) > 0) { + w->viewport->follow_vehicle = INVALID_VEHICLE; w->viewport->dest_scrollpos_x += ScaleByZoom((15 - (vp->width - x)) * SCROLLSPEED, vp->zoom); } if (y - 15 < 0) { + w->viewport->follow_vehicle = INVALID_VEHICLE; w->viewport->dest_scrollpos_y += ScaleByZoom((y - 15) * SCROLLSPEED, vp->zoom); } else if (15 - (vp->height - y) > 0) { + w->viewport->follow_vehicle = INVALID_VEHICLE; w->viewport->dest_scrollpos_y += ScaleByZoom((15 - (vp->height - y)) * SCROLLSPEED, vp->zoom); } }