aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/saga/scene.cpp3
-rw-r--r--engines/saga/sfuncs.cpp25
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)