diff options
author | Strangerke | 2011-12-24 14:39:22 +0100 |
---|---|---|
committer | Strangerke | 2011-12-24 14:39:22 +0100 |
commit | ef35f1f69d3c75c2ed6dbb0bb4fe6a5551750ec1 (patch) | |
tree | 788088c223060b71df1ad76b1ec91a9a92daea8e /engines/tsage/ringworld2 | |
parent | 42068065b57993c865823ff56e81bd7a87aa0278 (diff) | |
download | scummvm-rg350-ef35f1f69d3c75c2ed6dbb0bb4fe6a5551750ec1.tar.gz scummvm-rg350-ef35f1f69d3c75c2ed6dbb0bb4fe6a5551750ec1.tar.bz2 scummvm-rg350-ef35f1f69d3c75c2ed6dbb0bb4fe6a5551750ec1.zip |
TSAGE: R2R - Implement scene 3350
Diffstat (limited to 'engines/tsage/ringworld2')
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_logic.cpp | 2 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes3.cpp | 63 | ||||
-rw-r--r-- | engines/tsage/ringworld2/ringworld2_scenes3.h | 19 |
3 files changed, 84 insertions, 0 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp index e591436fd8..30e794627f 100644 --- a/engines/tsage/ringworld2/ringworld2_logic.cpp +++ b/engines/tsage/ringworld2/ringworld2_logic.cpp @@ -214,6 +214,8 @@ Scene *Ringworld2Game::createScene(int sceneNumber) { // Hall return new Scene3275(); case 3350: + // Cutscene - Ship landing + return new Scene3350(); case 3375: case 3385: case 3395: diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp index 1a219e773a..ce08e9647e 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp +++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp @@ -1635,5 +1635,68 @@ void Scene3275::signal() { } } +/*-------------------------------------------------------------------------- + * Scene 3350 - Cutscene - Ship landing + * + *--------------------------------------------------------------------------*/ +void Scene3350::postInit(SceneObjectList *OwnerList) { + loadScene(3350); + R2_GLOBALS._v58CE2 = 0; + SceneExt::postInit(); + R2_GLOBALS._sound2.play(310); + + _rotation = R2_GLOBALS._scenePalette.addRotation(176, 203, 1); + _rotation->setDelay(3); + + R2_GLOBALS._player.postInit(); + R2_GLOBALS._player.hide(); + R2_GLOBALS._player.disableControl(); + + _actor1.postInit(); + _actor1.hide(); + _actor2.postInit(); + _actor2.hide(); + _actor3.postInit(); + _actor3.hide(); + _actor4.postInit(); + _actor4.hide(); + _actor9.postInit(); + _actor9.hide(); + _actor8.postInit(); + _actor8.hide(); + _actor5.postInit(); + _actor5.hide(); + _actor6.postInit(); + _actor6.hide(); + _actor7.postInit(); + _actor7.hide(); + + _sceneMode = 3350; + setAction(&_sequenceManager, this, _sceneMode, &_actor5, &_actor6, &_actor7, NULL); +} + +void Scene3350::remove() { + R2_GLOBALS._sound2.fadeOut2(NULL); + SceneExt::remove(); +} + +void Scene3350::signal() { + switch (_sceneMode) { + case 3350: + _sceneMode = 3351; + setAction(&_sequenceManager, this, 3351, &_actor4, &_actor9, &_actor8, NULL); + break; + case 3351: + _sceneMode = 3352; + setAction(&_sequenceManager, this, 3352, &_actor4, &R2_GLOBALS._player, &_actor1, &_actor2, &_actor3, NULL); + case 3352: + R2_GLOBALS._sceneManager.changeScene(3395); + break; + default: + R2_GLOBALS._player.enableControl(); + break; + } +} + } // End of namespace Ringworld2 } // End of namespace TsAGE diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h index c82515c8c0..ac1436637c 100644 --- a/engines/tsage/ringworld2/ringworld2_scenes3.h +++ b/engines/tsage/ringworld2/ringworld2_scenes3.h @@ -381,6 +381,25 @@ public: virtual void signal(); }; +class Scene3350 : public SceneExt { +public: + SceneActor _actor1; + SceneActor _actor2; + SceneActor _actor3; + SceneActor _actor4; + SceneActor _actor5; + SceneActor _actor6; + SceneActor _actor7; + SceneActor _actor8; + SceneActor _actor9; + SequenceManager _sequenceManager; + PaletteRotation *_rotation; + + virtual void postInit(SceneObjectList *OwnerList = NULL); + virtual void remove(); + virtual void signal(); +}; + } // End of namespace Ringworld2 } // End of namespace TsAGE |