diff options
author | johndoe123 | 2012-10-23 13:03:16 +0000 |
---|---|---|
committer | Willem Jan Palenstijn | 2013-05-08 20:47:35 +0200 |
commit | dd26512c0db0eb5189c761cd7b1f7d779bda7617 (patch) | |
tree | 374512a59407b7f95f4376789b131aecfe640f95 /engines/neverhood | |
parent | 904d9430bf7084e0ca449d69da6e1197d36b3779 (diff) | |
download | scummvm-rg350-dd26512c0db0eb5189c761cd7b1f7d779bda7617.tar.gz scummvm-rg350-dd26512c0db0eb5189c761cd7b1f7d779bda7617.tar.bz2 scummvm-rg350-dd26512c0db0eb5189c761cd7b1f7d779bda7617.zip |
NEVERHOOD: Clean up Module1800 (like the ones before)
Diffstat (limited to 'engines/neverhood')
-rw-r--r-- | engines/neverhood/module1800.cpp | 67 | ||||
-rw-r--r-- | engines/neverhood/module1800.h | 1 |
2 files changed, 36 insertions, 32 deletions
diff --git a/engines/neverhood/module1800.cpp b/engines/neverhood/module1800.cpp index e4b189b056..fbb9483219 100644 --- a/engines/neverhood/module1800.cpp +++ b/engines/neverhood/module1800.cpp @@ -43,15 +43,14 @@ Module1800::Module1800(NeverhoodEngine *vm, Module *parentModule, int which) _vm->_soundMan->setSoundListParams(kModule1800SoundList, true, 50, 600, 10, 150); _vm->_soundMan->playTwoSounds(0x04A14718, 0x8A382B55, 0x0C242F1D, 0); - if (which < 0) { + if (which < 0) createScene(_vm->gameState().sceneNum, -1); - } else if (which == 2) { + else if (which == 2) createScene(5, 0); - } else if (which == 3) { + else if (which == 3) createScene(0, 0); - } else { + else createScene(3, 1); - } } @@ -63,39 +62,49 @@ void Module1800::createScene(int sceneNum, int which) { static const byte kNavigationTypes00[] = {1, 0, 2, 0}; static const byte kNavigationTypes01[] = {5}; debug("Module1800::createScene(%d, %d)", sceneNum, which); - _vm->gameState().sceneNum = sceneNum; - switch (_vm->gameState().sceneNum) { + _sceneNum = sceneNum; + switch (_sceneNum) { case 0: + _vm->gameState().sceneNum = 0; createNavigationScene(0x004AFD38, which, kNavigationTypes00); break; case 1: + _vm->gameState().sceneNum = 1; createNavigationScene(0x004AFD98, which, kNavigationTypes01); break; case 2: + _vm->gameState().sceneNum = 2; createSmackerScene(0x006C0085, true, true, false); break; case 3: + _vm->gameState().sceneNum = 3; createNavigationScene(0x004AFDB0, which); break; case 4: + _vm->gameState().sceneNum = 4; createNavigationScene(0x004AFDE0, which); break; case 5: + _vm->gameState().sceneNum = 5; createNavigationScene(0x004AFE40, which); break; case 6: + _vm->gameState().sceneNum = 6; _vm->_soundMan->deleteGroup(0x04A14718); createSmackerScene(0x08D84010, true, true, false); break; case 7: + _vm->gameState().sceneNum = 7; _vm->_soundMan->setSoundListParams(kModule1800SoundList, false, 0, 0, 0, 0); createSmackerScene(0x0168B121, true, true, false); break; case 8: + _vm->gameState().sceneNum = 8; _childObject = new CreditsScene(_vm, this, false); break; - case 9: - // NOTE: Newly introduced sceneNum 9 (was duplicate 3 with own update handler) + case 1009: + _vm->gameState().sceneNum = 3; + // NOTE: Newly introduced sceneNum 1009 (was duplicate 3 with own update handler) createSmackerScene(0x0A840C01, true, true, false); break; } @@ -105,50 +114,45 @@ void Module1800::createScene(int sceneNum, int which) { void Module1800::updateScene() { if (!updateChild()) { - switch (_vm->gameState().sceneNum) { + switch (_sceneNum) { case 0: - if (_moduleResult == 1) { + if (_moduleResult == 1) createScene(4, 0); - } else if (_moduleResult == 2) { + else if (_moduleResult == 2) createScene(1, -1); - } else if (_moduleResult == 3) { + else if (_moduleResult == 3) createScene(3, 0); - } break; case 1: - if (_navigationAreaType == 3) { + if (_navigationAreaType == 3) createScene(7, -1); - } else { + else createScene(2, -1); - } break; case 2: createScene(0, 2); break; case 3: - if (_moduleResult == 0) { - createScene(9, -1); - } else if (_moduleResult == 1) { + if (_moduleResult == 0) + createScene(1009, -1); + else if (_moduleResult == 1) createScene(0, 1); - } break; case 4: - if (_moduleResult == 0) { + if (_moduleResult == 0) createScene(6, -1); - } else if (_moduleResult == 1) { + else if (_moduleResult == 1) createScene(5, 0); - } else if (_moduleResult == 2) { + else if (_moduleResult == 2) createScene(0, 3); - } else if (_moduleResult == 3) { + else if (_moduleResult == 3) createScene(4, 3); - } break; case 5: - if (_moduleResult == 0) { + if (_moduleResult == 0) leaveModule(2); - } else if (_moduleResult == 1) { + else if (_moduleResult == 1) createScene(4, 3); - } break; case 6: createScene(8, -1); @@ -161,16 +165,15 @@ void Module1800::updateScene() { leaveModule(1); // TODO GameState stuff // Restarts the game? break; - case 9: + case 1009: leaveModule(0); break; } } else { switch (_vm->gameState().sceneNum) { case 0: - if (navigationScene()->isWalkingForward() && navigationScene()->getNavigationIndex() == 2) { + if (navigationScene()->isWalkingForward() && navigationScene()->getNavigationIndex() == 2) _vm->_soundMan->setTwoSoundsPlayFlag(false); - } break; } } diff --git a/engines/neverhood/module1800.h b/engines/neverhood/module1800.h index 8ec8dfecea..3c1d02e09c 100644 --- a/engines/neverhood/module1800.h +++ b/engines/neverhood/module1800.h @@ -36,6 +36,7 @@ public: Module1800(NeverhoodEngine *vm, Module *parentModule, int which); virtual ~Module1800(); protected: + int _sceneNum; void createScene(int sceneNum, int which); void updateScene(); }; |