aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/scene.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2007-08-17 06:08:18 +0000
committerFilippos Karapetis2007-08-17 06:08:18 +0000
commit769dd1d7a290f2b2f11c80f406cb87efbc1a024d (patch)
tree6a996d4623fa5c4ac47414eb6a3d283ab65613cf /engines/saga/scene.cpp
parent4722075da3b16d17aef5e110376142a67cd79402 (diff)
downloadscummvm-rg350-769dd1d7a290f2b2f11c80f406cb87efbc1a024d.tar.gz
scummvm-rg350-769dd1d7a290f2b2f11c80f406cb87efbc1a024d.tar.bz2
scummvm-rg350-769dd1d7a290f2b2f11c80f406cb87efbc1a024d.zip
Several bugfixes:
- The spiritual barometer display in IHNM is now updated only when necessary, to speed drawing up. This also corrects an issue where the spiritual barometer display was updated only after changing a scene - sf92 is sfDemoSetInteractive - It's now possible to use dashes and underscores in savegames - Screen fading when changing scenes is now done correctly: the interface will no longer be incorrectly briefly shown while the screen is fading to black - The interface mode is now correctly set in the non-interactive part of the IHNM demo - sfScriptGotoScene does not have a transition parameter, therefore that parameter has been removed svn-id: r28643
Diffstat (limited to 'engines/saga/scene.cpp')
-rw-r--r--engines/saga/scene.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/engines/saga/scene.cpp b/engines/saga/scene.cpp
index c49fe546ee..adb3f9feaa 100644
--- a/engines/saga/scene.cpp
+++ b/engines/saga/scene.cpp
@@ -561,6 +561,9 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
Event *q_event;
static PalEntry current_pal[PAL_ENTRIES];
+ if (loadSceneParams->transitionType == kTransitionFade)
+ _vm->_interface->setFadeMode(kFadeOut);
+
// Change the cursor to an hourglass in IHNM
event.type = kEvTOneshot;
event.code = kCursorEvent;
@@ -612,6 +615,7 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
_vm->_script->setVerb(_vm->_script->getVerbType(kVerbWalkTo));
if (loadSceneParams->sceneDescriptor == -2) {
+ _vm->_interface->setFadeMode(kNoFade);
return;
}
}
@@ -651,11 +655,11 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
debug(3, "Loading scene number %d:", _sceneNumber);
- if (_vm->getGameId() == GID_IHNM_DEMO && _sceneNumber == 144) {
+ if (_vm->getGameId() == GID_IHNM_DEMO && (_sceneNumber >= 144 && _sceneNumber <= 149)) {
// WORKAROUND for the non-interactive part of the IHNM demo: When restarting the
- // non-interactive demo, opcode sfMainMode is incorrectly called. Therefore, if the
- // starting scene of the non-interactive demo is loaded (scene 144), set panel to null
- // and lock the user interface
+ // non-interactive demo, opcode sfMainMode is incorrectly called. Therefore, if any
+ // of the scenes of the non-interactive demo are loaded (scenes 144-149), set panel
+ // to null and lock the user interface
_vm->_interface->deactivate();
_vm->_interface->setMode(kPanelNull);
}