diff -r 6acd7b197c81 -r 243021ceca31 src/viewport.cpp --- a/src/viewport.cpp Sat Feb 02 20:15:20 2008 +0000 +++ b/src/viewport.cpp Sat Feb 02 21:09:05 2008 +0000 @@ -2159,9 +2159,8 @@ /* scrolls the viewport in a window to a given location */ bool ScrollWindowTo(int x , int y, Window *w, bool instant) { - Point pt; - - pt = MapXYZToViewport(w->viewport, x, y, GetSlopeZ(x, y)); + /* The slope cannot be acquired outside of the map, so make sure we are always within the map. */ + Point pt = MapXYZToViewport(w->viewport, x, y, GetSlopeZ(Clamp(x, 0, MapSizeX()), Clamp(y, 0, MapSizeY()))); WP(w, vp_d).follow_vehicle = INVALID_VEHICLE; if (WP(w, vp_d).dest_scrollpos_x == pt.x && WP(w, vp_d).dest_scrollpos_y == pt.y)