aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorStrangerke2014-05-18 14:52:19 +0200
committerStrangerke2014-05-18 14:52:19 +0200
commitd3b136993f6a47ce5701462b641598bc7180142c (patch)
tree34b508994acac28e13586e3e65badfe5b9f0121e /engines
parentba4122cca206268f93b248b83c3975d948204e08 (diff)
downloadscummvm-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.cpp2
-rw-r--r--engines/mads/nebular/nebular_scenes8.cpp27
-rw-r--r--engines/mads/nebular/nebular_scenes8.h15
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