diff options
Diffstat (limited to 'engines/sci/sci.cpp')
-rw-r--r-- | engines/sci/sci.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp index 9f3858e7b8..8f9c584ee5 100644 --- a/engines/sci/sci.cpp +++ b/engines/sci/sci.cpp @@ -95,6 +95,8 @@ SciEngine::SciEngine(OSystem *syst, const ADGameDescription *desc, SciGameId gam _console = 0; _opcode_formats = 0; + _forceHiresGraphics = false; + // Set up the engine specific debug levels DebugMan.addDebugChannel(kDebugLevelError, "Error", "Script error debugging"); DebugMan.addDebugChannel(kDebugLevelNodes, "Lists", "Lists and nodes debugging"); @@ -222,6 +224,34 @@ Common::Error SciEngine::run() { _scriptPatcher = new ScriptPatcher(); SegManager *segMan = new SegManager(_resMan, _scriptPatcher); + // Read user option for hires graphics + // Only show/selectable for: + // - King's Quest 6 CD + // - King's Quest 6 CD demo + // - Gabriel Knight 1 CD + // TODO: Police Quest 4? + // TODO: Check, if Gabriel Knight 1 floppy supports high resolution + // TODO: Check, if Gabriel Knight 1 on Mac supports high resolution + switch (getPlatform()) { + case Common::kPlatformDOS: + case Common::kPlatformWindows: + // Only DOS+Windows + switch (_gameId) { + case GID_KQ6: + if (isCD()) + _forceHiresGraphics = ConfMan.getBool("enable_high_resolution_graphics"); + break; + case GID_GK1: + if ((isCD()) && (!isDemo())) + _forceHiresGraphics = ConfMan.getBool("enable_high_resolution_graphics"); + break; + default: + break; + } + default: + break; + }; + // Initialize the game screen _gfxScreen = new GfxScreen(_resMan); _gfxScreen->enableUndithering(ConfMan.getBool("disable_dithering")); @@ -805,6 +835,10 @@ bool SciEngine::isCD() const { return _gameDescription->flags & ADGF_CD; } +bool SciEngine::forceHiresGraphics() const { + return _forceHiresGraphics; +} + bool SciEngine::isBE() const{ switch(_gameDescription->platform) { case Common::kPlatformAmiga: |