https://github.com/libsdl-org/Maelstrom/commit/375347af03428ce1560cdb074c0ed46cc0492439
From 375347af03428ce1560cdb074c0ed46cc0492439 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Wed, 19 Sep 2012 23:12:16 -0700
Subject: [PATCH] Allow you to specify the desired resolution in preferences
---
game/Maelstrom_Globals.h | 1 +
game/init.cpp | 10 ++++++++--
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/game/Maelstrom_Globals.h b/game/Maelstrom_Globals.h
index 25bb03f4..4969c47e 100644
--- a/game/Maelstrom_Globals.h
+++ b/game/Maelstrom_Globals.h
@@ -44,6 +44,7 @@
#include "gameinfo.h"
// Preferences keys
+#define PREFERENCES_RESOLUTION "Resolution"
#define PREFERENCES_HANDLE "Handle"
#define PREFERENCES_DEATHMATCH "Network.Deathmatch"
#define PREFERENCES_KIDMODE "Cheat.KidMode"
diff --git a/game/init.cpp b/game/init.cpp
index b97be450..fdaf0874 100644
--- a/game/init.cpp
+++ b/game/init.cpp
@@ -714,8 +714,14 @@ int DoInitializations(Uint32 window_flags, Uint32 render_flags)
/* Initialize the screen */
screen = new FrameBuf;
- if (screen->Init(SCREEN_WIDTH, SCREEN_HEIGHT, window_flags, render_flags,
- colors[gGammaCorrect], icon) < 0){
+ int w = SCREEN_WIDTH;
+ int h = SCREEN_HEIGHT;
+ const char *resolution = prefs->GetString(PREFERENCES_RESOLUTION);
+ if (resolution) {
+ SDL_sscanf(resolution, "%dx%d", &w, &h);
+ }
+ if (screen->Init(w, h, window_flags, render_flags,
+ colors[gGammaCorrect], icon) < 0){
error("Fatal: %s\n", screen->Error());
return(-1);
}