diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/kyra/gui_mr.cpp | 2 | ||||
-rw-r--r-- | engines/kyra/kyra_mr.cpp | 24 | ||||
-rw-r--r-- | engines/kyra/kyra_mr.h | 2 | ||||
-rw-r--r-- | engines/kyra/scene_mr.cpp | 8 |
4 files changed, 21 insertions, 15 deletions
diff --git a/engines/kyra/gui_mr.cpp b/engines/kyra/gui_mr.cpp index c894c3ed74..f37d5bb572 100644 --- a/engines/kyra/gui_mr.cpp +++ b/engines/kyra/gui_mr.cpp @@ -771,7 +771,7 @@ int GUI_MR::quitGame(Button *caller) { _displayMenu = false; _vm->_runFlag = false; _vm->fadeOutMusic(60); - _screen->fadeToBlack(); + _screen->fadeToBlack(60); _screen->clearCurPage(); } diff --git a/engines/kyra/kyra_mr.cpp b/engines/kyra/kyra_mr.cpp index ab9c558abb..dce6a669ee 100644 --- a/engines/kyra/kyra_mr.cpp +++ b/engines/kyra/kyra_mr.cpp @@ -89,7 +89,7 @@ KyraEngine_MR::KyraEngine_MR(OSystem *system, const GameFlags &flags) : KyraEngi _mainCharX = _mainCharY = -1; _animList = 0; _drawNoShapeFlag = false; - _wsaPlayingVQA = false; + _wasPlayingVQA = false; _lastCharPalLayer = -1; _charPalUpdate = false; _runFlag = false; @@ -230,7 +230,14 @@ int KyraEngine_MR::go() { _screen->clearPage(0); _screen->clearPage(2); - if (_gameToLoad != -1) { + const bool firstTimeGame = !saveFileLoadable(0); + + if (firstTimeGame) { + playVQA("K3INTRO"); + _wasPlayingVQA = false; + } + + if (_gameToLoad != -1 || firstTimeGame) { uninitMainMenu(); _musicSoundChannel = -1; startup(); @@ -265,14 +272,13 @@ int KyraEngine_MR::go() { case 2: if (saveFileLoadable(0)) _menuDirectlyToLoad = true; - else - break; + // fall through case 0: uninitMainMenu(); fadeOutMusic(60); - _screen->fadeToBlack(); + _screen->fadeToBlack(60); _musicSoundChannel = -1; startup(); runLoop(); @@ -281,14 +287,14 @@ int KyraEngine_MR::go() { case 1: playVQA("K3INTRO"); - _wsaPlayingVQA = false; + _wasPlayingVQA = false; _screen->hideMouse(); break; case 3: default: fadeOutMusic(60); - _screen->fadeToBlack(); + _screen->fadeToBlack(60); uninitMainMenu(); quitGame(); running = false; @@ -350,7 +356,7 @@ void KyraEngine_MR::playVQA(const char *name) { _screen->hideMouse(); memcpy(_screen->getPalette(1), _screen->getPalette(0), 768); fadeOutMusic(60); - _screen->fadeToBlack(); + _screen->fadeToBlack(60); _screen->clearPage(0); vqa.setDrawPage(0); @@ -366,7 +372,7 @@ void KyraEngine_MR::playVQA(const char *name) { _screen->setScreenPalette(pal); _screen->clearPage(0); memcpy(_screen->getPalette(0), _screen->getPalette(1), 768); - _wsaPlayingVQA = true; + _wasPlayingVQA = true; } } diff --git a/engines/kyra/kyra_mr.h b/engines/kyra/kyra_mr.h index 359228ef7a..2e7d0a507c 100644 --- a/engines/kyra/kyra_mr.h +++ b/engines/kyra/kyra_mr.h @@ -570,7 +570,7 @@ private: // misc TextDisplayer_MR *_text; - bool _wsaPlayingVQA; + bool _wasPlayingVQA; // resource specific private: diff --git a/engines/kyra/scene_mr.cpp b/engines/kyra/scene_mr.cpp index 27f4fabb49..57ac328286 100644 --- a/engines/kyra/scene_mr.cpp +++ b/engines/kyra/scene_mr.cpp @@ -616,19 +616,19 @@ void KyraEngine_MR::initSceneScreen(int unk1) { if (_noScriptEnter) { memset(_screen->getPalette(0), 0, 432); - if (!_wsaPlayingVQA) + if (!_wasPlayingVQA) _screen->setScreenPalette(_screen->getPalette(0)); } _screen->copyRegion(0, 0, 0, 0, 320, 200, 2, 0, Screen::CR_NO_P_CHECK); if (_noScriptEnter) { - if (!_wsaPlayingVQA) + if (!_wasPlayingVQA) _screen->setScreenPalette(_screen->getPalette(2)); memcpy(_screen->getPalette(0), _screen->getPalette(2), 432); - if (_wsaPlayingVQA) { + if (_wasPlayingVQA) { _screen->fadeFromBlack(0x3C); - _wsaPlayingVQA = false; + _wasPlayingVQA = false; } } |