diff options
author | rubidium <rubidium@openttd.org> | 2008-05-29 10:16:59 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-05-29 10:16:59 +0000 |
commit | f2869bb7db1cd475817ca71e3449e827748f00aa (patch) | |
tree | ecfa38f11fa2ecc624a39b1af470f218f93bfa67 /src/viewport.cpp | |
parent | 34e2d8f1e14c4204b299b78623d9935c7b07b4e3 (diff) | |
download | openttd-f2869bb7db1cd475817ca71e3449e827748f00aa.tar.xz |
(svn r13321) -Codechange: move some GUI/viewport related functions out op openttd.cpp to viewport.cpp/window.cpp.
Diffstat (limited to 'src/viewport.cpp')
-rw-r--r-- | src/viewport.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/viewport.cpp b/src/viewport.cpp index 51eee159e..bbc029446 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -2756,3 +2756,33 @@ void ResetObjectToPlace() { SetObjectToPlace(SPR_CURSOR_MOUSE, PAL_NONE, VHM_NONE, WC_MAIN_WINDOW, 0); } + + +void SaveViewportBeforeSaveGame() +{ + const Window *w = FindWindowById(WC_MAIN_WINDOW, 0); + + if (w != NULL) { + _saved_scrollpos_x = w->viewport->scrollpos_x; + _saved_scrollpos_y = w->viewport->scrollpos_y; + _saved_scrollpos_zoom = w->viewport->zoom; + } +} + +void ResetViewportAfterLoadGame() +{ + Window *w = FindWindowById(WC_MAIN_WINDOW, 0); + + w->viewport->scrollpos_x = _saved_scrollpos_x; + w->viewport->scrollpos_y = _saved_scrollpos_y; + w->viewport->dest_scrollpos_x = _saved_scrollpos_x; + w->viewport->dest_scrollpos_y = _saved_scrollpos_y; + + ViewPort *vp = w->viewport; + vp->zoom = min(_saved_scrollpos_zoom, ZOOM_LVL_MAX); + vp->virtual_width = ScaleByZoom(vp->width, vp->zoom); + vp->virtual_height = ScaleByZoom(vp->height, vp->zoom); + + DoZoomInOutWindow(ZOOM_NONE, w); // update button status + MarkWholeScreenDirty(); +} |