Add game specific scaler override to sky

Add game specific scaler and full screen override to simon

svn-id: r9067
This commit is contained in:
Travis Howell 2003-07-18 15:37:06 +00:00
parent 9c026748f3
commit dc25058c3e
2 changed files with 22 additions and 0 deletions

View File

@ -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() {

View File

@ -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))