diff options
-rw-r--r-- | simon/simon.cpp | 15 | ||||
-rw-r--r-- | sky/sky.cpp | 7 |
2 files changed, 22 insertions, 0 deletions
diff --git a/simon/simon.cpp b/simon/simon.cpp index 7541faa0fc..3358267dfb 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -24,6 +24,7 @@ #include "simon/intern.h" #include "simon/vga.h" #include "sound/mididrv.h" +#include "common/config-file.h" #include "common/file.h" #include "common/gameDetector.h" #include <errno.h> @@ -173,6 +174,8 @@ Engine *Engine_SIMON_create(GameDetector *detector, OSystem *syst) { SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst) : Engine(detector, syst), midi (syst) { + OSystem::Property prop; + MidiDriver *driver = detector->createMidi(); _vc_ptr = 0; @@ -454,6 +457,18 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst) _debugLevel = detector->_debugLevel; _language = detector->_language; _noSubtitles = detector->_noSubtitles; + + // Override global scaler with any game-specific define + if (g_config->get("gfx_mode")) { + prop.gfx_mode = detector->parseGraphicsMode(g_config->get("gfx_mode")); + _system->property(OSystem::PROP_SET_GFX_MODE, &prop); + } + + // Override global scaler with any game-specific define + if (g_config->getBool("fullscreen", false)) { + if (!_system->property(OSystem::PROP_GET_FULLSCREEN, 0)) + _system->property(OSystem::PROP_TOGGLE_FULLSCREEN, 0); + } } SimonEngine::~SimonEngine() { diff --git a/sky/sky.cpp b/sky/sky.cpp index def1af0eed..7bd6fe2969 100644 --- a/sky/sky.cpp +++ b/sky/sky.cpp @@ -224,6 +224,7 @@ void SkyState::go() { } void SkyState::initialise(void) { + OSystem::Property prop; _skyDisk = new SkyDisk(_gameDataPath); _skySound = new SkySound(_mixer, _skyDisk); @@ -241,6 +242,12 @@ void SkyState::initialise(void) { _skyMusic = new SkyGmMusic(_detector->createMidi(), _skyDisk, _system); } + // Override global scaler with any game-specific define + if (g_config->get("gfx_mode")) { + prop.gfx_mode = _detector->parseGraphicsMode(g_config->get("gfx_mode")); + _system->property(OSystem::PROP_SET_GFX_MODE, &prop); + } + // Override global fullscreen setting with any game-specific define if (g_config->getBool("fullscreen", false)) { if (!_system->property(OSystem::PROP_GET_FULLSCREEN, 0)) |