diff options
author | Strangerke | 2014-05-18 14:52:19 +0200 |
---|---|---|
committer | Strangerke | 2014-05-18 14:52:19 +0200 |
commit | d3b136993f6a47ce5701462b641598bc7180142c (patch) | |
tree | 34b508994acac28e13586e3e65badfe5b9f0121e /engines | |
parent | ba4122cca206268f93b248b83c3975d948204e08 (diff) | |
download | scummvm-rg350-d3b136993f6a47ce5701462b641598bc7180142c.tar.gz scummvm-rg350-d3b136993f6a47ce5701462b641598bc7180142c.tar.bz2 scummvm-rg350-d3b136993f6a47ce5701462b641598bc7180142c.zip |
MADS: Implement scene 810
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mads/nebular/nebular_scenes.cpp | 2 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes8.cpp | 27 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes8.h | 15 |
3 files changed, 43 insertions, 1 deletions
diff --git a/engines/mads/nebular/nebular_scenes.cpp b/engines/mads/nebular/nebular_scenes.cpp index 4b59d2453b..f8c113e8c5 100644 --- a/engines/mads/nebular/nebular_scenes.cpp +++ b/engines/mads/nebular/nebular_scenes.cpp @@ -289,7 +289,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) { case 808: // antigrav control return new Scene808(vm); case 810: // cutscene: Rex's ship leaving the planet - return new DummyScene(vm); // TODO + return new Scene810(vm); default: error("Invalid scene %d called", scene._nextSceneId); diff --git a/engines/mads/nebular/nebular_scenes8.cpp b/engines/mads/nebular/nebular_scenes8.cpp index b2b2895cfd..fee39a776e 100644 --- a/engines/mads/nebular/nebular_scenes8.cpp +++ b/engines/mads/nebular/nebular_scenes8.cpp @@ -1436,5 +1436,32 @@ void Scene808::actions() { /*------------------------------------------------------------------------*/ +void Scene810::setup() { + setPlayerSpritesPrefix(); + setAAName(); +} + +void Scene810::enter() { + _scene->_userInterface.setup(kInputLimitedSentences); + _game._player._visible = false; + _game._player._stepEnabled = false; + _scene->loadAnimation(Resources::formatName(810, 'a', -1, EXT_AA, "")); + _moveAllowed = true; + + sceneEntrySound(); +} + +void Scene810::step() { + if ((_scene->_activeAnimation->getCurrentFrame() == 200) && _moveAllowed) { + _scene->_sequences.addTimer(100, 70); + _moveAllowed = false; + } + + if (_game._trigger == 70) + _scene->_nextSceneId = 804; +} + +/*------------------------------------------------------------------------*/ + } // End of namespace Nebular } // End of namespace MADS diff --git a/engines/mads/nebular/nebular_scenes8.h b/engines/mads/nebular/nebular_scenes8.h index 7c228538b9..5193c4f401 100644 --- a/engines/mads/nebular/nebular_scenes8.h +++ b/engines/mads/nebular/nebular_scenes8.h @@ -148,6 +148,21 @@ public: virtual void postActions() {}; }; +class Scene810: public Scene8xx{ +private: + bool _moveAllowed; + +public: + Scene810(MADSEngine *vm) : Scene8xx(vm) {} + + virtual void setup(); + virtual void enter(); + virtual void step(); + virtual void preActions() {}; + virtual void actions() {}; + virtual void postActions() {}; +}; + } // End of namespace Nebular } // End of namespace MADS |