summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main_gui.cpp10
-rw-r--r--src/openttd.cpp2
-rw-r--r--src/settings_gui.cpp2
-rw-r--r--src/viewport_func.h1
4 files changed, 15 insertions, 0 deletions
diff --git a/src/main_gui.cpp b/src/main_gui.cpp
index d4559c216..b6cf616d1 100644
--- a/src/main_gui.cpp
+++ b/src/main_gui.cpp
@@ -199,6 +199,16 @@ void ZoomInOrOutToCursorWindow(bool in, Window *w)
}
}
+void FixTitleGameZoom()
+{
+ if (_game_mode != GM_MENU) return;
+
+ ViewPort *vp = FindWindowByClass(WC_MAIN_WINDOW)->viewport;
+ vp->zoom = _gui_zoom;
+ vp->virtual_width = ScaleByZoom(vp->width, vp->zoom);
+ vp->virtual_height = ScaleByZoom(vp->height, vp->zoom);
+}
+
static const struct NWidgetPart _nested_main_window_widgets[] = {
NWidget(NWID_VIEWPORT, INVALID_COLOUR, WID_M_VIEWPORT), SetResize(1, 1),
};
diff --git a/src/openttd.cpp b/src/openttd.cpp
index 4f629c118..b9bc7c985 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -62,6 +62,7 @@
#include "town.h"
#include "subsidy_func.h"
#include "gfx_layout.h"
+#include "viewport_func.h"
#include "viewport_sprite_sorter.h"
#include "framerate_type.h"
@@ -336,6 +337,7 @@ static void LoadIntroGame(bool load_newgrfs = true)
SetLocalCompany(COMPANY_FIRST);
}
+ FixTitleGameZoom();
_pause_mode = PM_UNPAUSED;
_cursor.fix_at = false;
diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp
index f4c7e466c..a6993cbf6 100644
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -37,6 +37,7 @@
#include "stringfilter_type.h"
#include "querystring_gui.h"
#include "fontcache.h"
+#include "zoom_func.h"
#include <vector>
@@ -542,6 +543,7 @@ struct GameOptionsWindow : Window {
_gui_zoom = (ZoomLevel)(ZOOM_LVL_OUT_4X - index);
UpdateCursorSize();
UpdateAllVirtCoords();
+ FixTitleGameZoom();
ReInitAllWindows();
break;
diff --git a/src/viewport_func.h b/src/viewport_func.h
index 49ad4b2e8..9bfb42890 100644
--- a/src/viewport_func.h
+++ b/src/viewport_func.h
@@ -34,6 +34,7 @@ void MarkAllViewportsDirty(int left, int top, int right, int bottom);
bool DoZoomInOutWindow(ZoomStateChange how, Window *w);
void ZoomInOrOutToCursorWindow(bool in, Window * w);
Point GetTileZoomCenterWindow(bool in, Window * w);
+void FixTitleGameZoom();
void HandleZoomMessage(Window *w, const ViewPort *vp, byte widget_zoom_in, byte widget_zoom_out);
/**