diff options
-rw-r--r-- | engines/saga/scene.cpp | 3 | ||||
-rw-r--r-- | engines/saga/sfuncs.cpp | 25 |
2 files changed, 10 insertions, 18 deletions
diff --git a/engines/saga/scene.cpp b/engines/saga/scene.cpp index 3076fa26cf..ac58e53987 100644 --- a/engines/saga/scene.cpp +++ b/engines/saga/scene.cpp @@ -710,6 +710,9 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) { } _sceneLoaded = true; + // Scene is loaded, but don't show actors till the scene's background is drawn + // via kEventDisplay later on + _vm->_actor->showActors(false); q_event = NULL; diff --git a/engines/saga/sfuncs.cpp b/engines/saga/sfuncs.cpp index 8296cf2a0c..0c3d2a4a8d 100644 --- a/engines/saga/sfuncs.cpp +++ b/engines/saga/sfuncs.cpp @@ -568,25 +568,9 @@ void Script::sfScriptGotoScene(SCRIPTFUNC_PARAMS) { return; } - if (_vm->getGameType() == GType_IHNM) { - // WORKAROUND for the briefly appearing actors at the beginning of each chapter - // This will stop the actors being drawn in those specific scenes until the scene background has been drawn - if ((_vm->_scene->currentChapterNumber() == 1 && _vm->_scene->currentSceneNumber() == 6) || - (_vm->_scene->currentChapterNumber() == 2 && _vm->_scene->currentSceneNumber() == 31) || - (_vm->_scene->currentChapterNumber() == 3 && _vm->_scene->currentSceneNumber() == 58) || - (_vm->_scene->currentChapterNumber() == 4 && _vm->_scene->currentSceneNumber() == 68) || - (_vm->_scene->currentChapterNumber() == 5 && _vm->_scene->currentSceneNumber() == 91) || - (_vm->_scene->currentChapterNumber() == 7 && _vm->_scene->currentSceneNumber() == 145)) - _vm->_actor->showActors(false); // Stop showing actors before the background is drawn - - // Since it doesn't look like the IHNM scripts remove the - // cutaway after the intro, this is probably the best place to do it - _vm->_anim->clearCutaway(); - } - // It is possible to leave scene when converse panel is on, // particulalrly it may happen at Moneychanger tent. This - // prevent this from happening. + // prevents this from happening. if (_vm->_interface->getMode() == kPanelConverse) { _vm->_interface->setMode(kPanelMain); } @@ -610,8 +594,13 @@ void Script::sfScriptGotoScene(SCRIPTFUNC_PARAMS) { _currentObject[0] = _currentObject[1] = ID_NOTHING; showVerb(); // calls setStatusText("") - if (_vm->getGameType() == GType_IHNM) + if (_vm->getGameType() == GType_IHNM) { + // Since it doesn't look like the IHNM scripts remove the + // cutaway after the intro, this is probably the best place to do it + if (_vm->_scene->currentChapterNumber() == 8) + _vm->_anim->clearCutaway(); _vm->_gfx->setCursor(kCursorNormal); + } } // Script function #17 (0x11) |