diff options
author | peter1138 <peter1138@openttd.org> | 2007-05-28 16:46:16 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2007-05-28 16:46:16 +0000 |
commit | 344e9007feac6dd1e90154b45e80907c5e49821a (patch) | |
tree | 17d1923b83a591294a9f935eda1159e520609c81 /src/smallmap_gui.cpp | |
parent | 1a8a44165b7ccab605673c750596b80eb3d88799 (diff) | |
download | openttd-344e9007feac6dd1e90154b45e80907c5e49821a.tar.xz |
(svn r9962) -Feature: Add smooth viewport scrolling. This must be enabled with patch setting 'smooth_scroll'
Diffstat (limited to 'src/smallmap_gui.cpp')
-rw-r--r-- | src/smallmap_gui.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 2035a8a96..e0a13991f 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -806,8 +806,8 @@ static void SmallMapWindowProc(Window *w, WindowEvent *e) _left_button_clicked = false; pt = RemapCoords(WP(w,smallmap_d).scroll_x, WP(w,smallmap_d).scroll_y, 0); - WP(w2, vp_d).scrollpos_x = pt.x + ((_cursor.pos.x - w->left + 2) << 4) - (w2->viewport->virtual_width >> 1); - WP(w2, vp_d).scrollpos_y = pt.y + ((_cursor.pos.y - w->top - 16) << 4) - (w2->viewport->virtual_height >> 1); + WP(w2, vp_d).dest_scrollpos_x = pt.x + ((_cursor.pos.x - w->left + 2) << 4) - (w2->viewport->virtual_width >> 1); + WP(w2, vp_d).dest_scrollpos_y = pt.y + ((_cursor.pos.y - w->top - 16) << 4) - (w2->viewport->virtual_height >> 1); SetWindowDirty(w); } break; @@ -986,8 +986,8 @@ static void ExtraViewPortWndProc(Window *w, WindowEvent *e) int y = WP(w, vp_d).scrollpos_y; /* set this view to same location. Based on the center, adjusting for zoom */ - WP(w2, vp_d).scrollpos_x = x - (w2->viewport->virtual_width - w->viewport->virtual_width) / 2; - WP(w2, vp_d).scrollpos_y = y - (w2->viewport->virtual_height - w->viewport->virtual_height) / 2; + WP(w2, vp_d).dest_scrollpos_x = x - (w2->viewport->virtual_width - w->viewport->virtual_width) / 2; + WP(w2, vp_d).dest_scrollpos_y = y - (w2->viewport->virtual_height - w->viewport->virtual_height) / 2; } break; case 8: { /* inverse location button (move this view to same spot as main view) 'Copy Location' */ @@ -995,8 +995,8 @@ static void ExtraViewPortWndProc(Window *w, WindowEvent *e) int x = WP(w2, const vp_d).scrollpos_x; int y = WP(w2, const vp_d).scrollpos_y; - WP(w, vp_d).scrollpos_x = x + (w2->viewport->virtual_width - w->viewport->virtual_width) / 2; - WP(w, vp_d).scrollpos_y = y + (w2->viewport->virtual_height - w->viewport->virtual_height) / 2; + WP(w, vp_d).dest_scrollpos_x = x + (w2->viewport->virtual_width - w->viewport->virtual_width) / 2; + WP(w, vp_d).dest_scrollpos_y = y + (w2->viewport->virtual_height - w->viewport->virtual_height) / 2; } break; } break; @@ -1018,6 +1018,8 @@ static void ExtraViewPortWndProc(Window *w, WindowEvent *e) WP(w, vp_d).scrollpos_x += ScaleByZoom(e->we.scroll.delta.x, vp->zoom); WP(w, vp_d).scrollpos_y += ScaleByZoom(e->we.scroll.delta.y, vp->zoom); + WP(w, vp_d).dest_scrollpos_x = WP(w, vp_d).scrollpos_x; + WP(w, vp_d).dest_scrollpos_y = WP(w, vp_d).scrollpos_y; } break; case WE_MOUSEWHEEL: @@ -1062,5 +1064,7 @@ void ShowExtraViewPortWindow() y = WP(v, vp_d).scrollpos_y; WP(w, vp_d).scrollpos_x = x + (v->viewport->virtual_width - (294)) / 2; WP(w, vp_d).scrollpos_y = y + (v->viewport->virtual_height - (214)) / 2; + WP(w, vp_d).dest_scrollpos_x = WP(w, vp_d).scrollpos_x; + WP(w, vp_d).dest_scrollpos_y = WP(w, vp_d).scrollpos_y; } } |