aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2014-05-11 19:14:11 +0200
committerStrangerke2014-05-11 19:14:11 +0200
commit3b098867961e4d34fc93cac989d3bd5f69f71ed8 (patch)
tree9d6eab75cb16cf2c9428e6e1ddd33cfdf143fdba
parentbbeb24aaabbea33c54dc8ff6926fd161740f5c25 (diff)
downloadscummvm-rg350-3b098867961e4d34fc93cac989d3bd5f69f71ed8.tar.gz
scummvm-rg350-3b098867961e4d34fc93cac989d3bd5f69f71ed8.tar.bz2
scummvm-rg350-3b098867961e4d34fc93cac989d3bd5f69f71ed8.zip
MADS: Implement scene 605
-rw-r--r--engines/mads/nebular/nebular_scenes.cpp2
-rw-r--r--engines/mads/nebular/nebular_scenes6.cpp46
-rw-r--r--engines/mads/nebular/nebular_scenes6.h11
3 files changed, 58 insertions, 1 deletions
diff --git a/engines/mads/nebular/nebular_scenes.cpp b/engines/mads/nebular/nebular_scenes.cpp
index d7292020d0..511be8e5ca 100644
--- a/engines/mads/nebular/nebular_scenes.cpp
+++ b/engines/mads/nebular/nebular_scenes.cpp
@@ -233,7 +233,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
case 604: // viewport
return new Scene604(vm);
case 605: // viewport closeup
- return new DummyScene(vm); // TODO
+ return new Scene605(vm);
case 607: // outside Abdul's garage
return new DummyScene(vm); // TODO
case 608: // inside Abdul's garage
diff --git a/engines/mads/nebular/nebular_scenes6.cpp b/engines/mads/nebular/nebular_scenes6.cpp
index 6482eb15cf..ebface6e1f 100644
--- a/engines/mads/nebular/nebular_scenes6.cpp
+++ b/engines/mads/nebular/nebular_scenes6.cpp
@@ -939,5 +939,51 @@ void Scene604::actions() {
/*------------------------------------------------------------------------*/
+void Scene605::setup() {
+ _game._player._spritesPrefix = "";
+ setAAName();
+}
+
+void Scene605::enter() {
+ _globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('r', -1));
+ _globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('b', -1));
+ _globals._spriteIndexes[3] = _scene->_sprites.addSprites(formAnimName('l', -1));
+ _globals._spriteIndexes[4] = _scene->_sprites.addSprites(formAnimName('p', -1));
+ _globals._spriteIndexes[5] = _scene->_sprites.addSprites(formAnimName('n', -1));
+ _globals._spriteIndexes[6] = _scene->_sprites.addSprites(formAnimName('f', -1));
+
+ _globals._sequenceIndexes[1] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[1], false, 15, 0, 0, 0);
+ _globals._sequenceIndexes[2] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[2], false, 17, 0, 0, 0);
+ _globals._sequenceIndexes[3] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[3], false, 14, 0, 0, 0);
+ _globals._sequenceIndexes[4] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[4], false, 13, 0, 0, 0);
+ _globals._sequenceIndexes[5] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[5], false, 17, 0, 0, 0);
+ _globals._sequenceIndexes[6] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[6], false, 18, 0, 0, 0);
+
+ _game._player._visible = false;
+ _game._player._stepEnabled = false;
+ _scene->_sequences.addTimer(600, 70);
+ _scene->_userInterface.setup(kInputLimitedSentences);
+ sceneEntrySound();
+ _vm->_sound->command(22);
+}
+
+void Scene605::step() {
+ if (_game._trigger == 70) {
+ _vm->_sound->command(23);
+ if (_globals[kResurrectRoom] >= 700)
+ _vm->_dialogs->show(60598);
+ else
+ _vm->_dialogs->show(60599);
+
+ _scene->_nextSceneId = _globals[kResurrectRoom];
+ }
+}
+
+void Scene605::actions() {
+ return;
+}
+
+/*------------------------------------------------------------------------*/
+
} // End of namespace Nebular
} // End of namespace MADS
diff --git a/engines/mads/nebular/nebular_scenes6.h b/engines/mads/nebular/nebular_scenes6.h
index c32daa47d9..9347b40092 100644
--- a/engines/mads/nebular/nebular_scenes6.h
+++ b/engines/mads/nebular/nebular_scenes6.h
@@ -122,6 +122,17 @@ public:
virtual void postActions() {};
};
+class Scene605: public Scene6xx{
+public:
+ Scene605(MADSEngine *vm) : Scene6xx(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