aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/module.cpp
diff options
context:
space:
mode:
authorjohndoe1232011-09-19 13:00:54 +0000
committerWillem Jan Palenstijn2013-05-08 20:39:39 +0200
commit17ad070a9c6c0fd86d1f60d90b331eb59b19cf7b (patch)
tree965633e6ee46a54448335727fd6fbf2186042647 /engines/neverhood/module.cpp
parenta4c34cedd5b7e97104cfb53b90f9808c4204dcf1 (diff)
downloadscummvm-rg350-17ad070a9c6c0fd86d1f60d90b331eb59b19cf7b.tar.gz
scummvm-rg350-17ad070a9c6c0fd86d1f60d90b331eb59b19cf7b.tar.bz2
scummvm-rg350-17ad070a9c6c0fd86d1f60d90b331eb59b19cf7b.zip
NEVERHOOD: Move createSceneXXX/updateSceneXXX methods
They are merged into createScene and updateScene for the other already implemented modules (I hope I didn't break too much :)
Diffstat (limited to 'engines/neverhood/module.cpp')
-rw-r--r--engines/neverhood/module.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/engines/neverhood/module.cpp b/engines/neverhood/module.cpp
index 78775ceba1..c58c924c3a 100644
--- a/engines/neverhood/module.cpp
+++ b/engines/neverhood/module.cpp
@@ -28,7 +28,7 @@ namespace Neverhood {
Module::Module(NeverhoodEngine *vm, Module *parentModule)
: Entity(vm, 0), _parentModule(parentModule), _childObject(NULL),
- _done(false) {
+ _done(false), _sceneType(kSceneTypeNormal) {
SetMessageHandler(&Module::handleMessage);
@@ -71,11 +71,13 @@ NavigationScene *Module::navigationScene() {
}
void Module::createNavigationScene(uint32 navigationListId, int navigationIndex, const byte *itemsTypes) {
+ _sceneType = kSceneTypeNavigation;
_childObject = new NavigationScene(_vm, this, navigationListId, navigationIndex, itemsTypes);
}
void Module::createSmackerScene(uint32 fileHash, bool doubleSurface, bool flag1, bool canAbort) {
SmackerScene *smackerScene;
+ _sceneType = kSceneTypeSmacker;
smackerScene = new SmackerScene(_vm, this, doubleSurface, flag1, canAbort);
smackerScene->setFileHash(fileHash);
smackerScene->nextVideo();
@@ -87,8 +89,12 @@ bool Module::updateChild() {
_childObject->handleUpdate();
if (_done) {
_done = false;
+ // Save the last area type if it's a NavigationScene for further processing
+ if (_sceneType == kSceneTypeNavigation)
+ _navigationAreaType = navigationScene()->getNavigationAreaType();
delete _childObject;
_childObject = NULL;
+ _sceneType = kSceneTypeNormal;
return false;
}
}