aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/navigationscene.cpp
diff options
context:
space:
mode:
authorjohndoe1232012-10-09 18:30:39 +0000
committerWillem Jan Palenstijn2013-05-08 20:44:40 +0200
commitfd13b546a7d2a2f63cca8ace7aa900a590f665bb (patch)
tree7807ad4e476fae139de05e91a3670867927557a3 /engines/neverhood/navigationscene.cpp
parent59901c5d13f59c64e4ed3174544f39b7b507b0ca (diff)
downloadscummvm-rg350-fd13b546a7d2a2f63cca8ace7aa900a590f665bb.tar.gz
scummvm-rg350-fd13b546a7d2a2f63cca8ace7aa900a590f665bb.tar.bz2
scummvm-rg350-fd13b546a7d2a2f63cca8ace7aa900a590f665bb.zip
NEVERHOOD: Rename stuff in the Scene class and clean up a little
- Try to stay close to the actual frame rate - Also use the Smacker frame rate when a video is playing to keep videos in sync with the audio
Diffstat (limited to 'engines/neverhood/navigationscene.cpp')
-rw-r--r--engines/neverhood/navigationscene.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/neverhood/navigationscene.cpp b/engines/neverhood/navigationscene.cpp
index 66b30cf79e..5594cce8da 100644
--- a/engines/neverhood/navigationscene.cpp
+++ b/engines/neverhood/navigationscene.cpp
@@ -51,10 +51,11 @@ NavigationScene::NavigationScene(NeverhoodEngine *vm, Module *parentModule, uint
_smackerPlayer = new SmackerPlayer(_vm, this, (*_navigationList)[_navigationIndex].fileHash, true, true);
addEntity(_smackerPlayer);
addSurface(_smackerPlayer->getSurface());
-
+
createMouseCursor();
_vm->_screen->clear();
+ _vm->_screen->setSmackerDecoder(_smackerPlayer->getSmackerDecoder());
sendMessage(_parentModule, 0x100A, _navigationIndex);
@@ -77,10 +78,12 @@ void NavigationScene::update() {
showMouse(false);
_smackerPlayer->open(_smackerFileHash, false);
_vm->_screen->clear();
+ _vm->_screen->setSmackerDecoder(_smackerPlayer->getSmackerDecoder());
_smackerDone = false;
_smackerFileHash = 0;
} else if (_smackerDone) {
if (_leaveSceneAfter) {
+ _vm->_screen->setSmackerDecoder(NULL);
sendMessage(_parentModule, 0x1009, _navigationIndex);
} else {
const NavigationItem &navigationItem = (*_navigationList)[_navigationIndex];
@@ -94,6 +97,7 @@ void NavigationScene::update() {
_smackerDone = false;
_smackerPlayer->open(navigationItem.fileHash, true);
_vm->_screen->clear();
+ _vm->_screen->setSmackerDecoder(_smackerPlayer->getSmackerDecoder());
sendMessage(_parentModule, 0x100A, _navigationIndex);
}
}
@@ -171,6 +175,7 @@ void NavigationScene::handleNavigation(const NPoint &mousePos) {
} while (!(*_navigationList)[_navigationIndex].interactive);
setGlobalVar(0x4200189E, _navigationIndex);
} else {
+ _vm->_screen->setSmackerDecoder(NULL);
sendMessage(_parentModule, 0x1009, _navigationIndex);
}
break;
@@ -187,6 +192,7 @@ void NavigationScene::handleNavigation(const NPoint &mousePos) {
} while (!(*_navigationList)[_navigationIndex].interactive);
setGlobalVar(0x4200189E, _navigationIndex);
} else {
+ _vm->_screen->setSmackerDecoder(NULL);
sendMessage(_parentModule, 0x1009, _navigationIndex);
}
break;
@@ -194,6 +200,7 @@ void NavigationScene::handleNavigation(const NPoint &mousePos) {
case 3:
case 4:
if (navigationItem.middleFlag) {
+ _vm->_screen->setSmackerDecoder(NULL);
sendMessage(_parentModule, 0x1009, _navigationIndex);
} else if (navigationItem.middleSmackerFileHash != 0) {
_smackerFileHash = navigationItem.middleSmackerFileHash;