aboutsummaryrefslogtreecommitdiff
path: root/engines/mads
diff options
context:
space:
mode:
authorStrangerke2014-04-18 22:15:22 +0200
committerStrangerke2014-04-18 22:15:22 +0200
commit66f2a8572155caea28c0ff803d0028710cc7c4ff (patch)
treee152c642a589d2334ae61a5596850c5fdd30dd69 /engines/mads
parent058e1ae575cdb6acdc9625076c6449d2600c559c (diff)
downloadscummvm-rg350-66f2a8572155caea28c0ff803d0028710cc7c4ff.tar.gz
scummvm-rg350-66f2a8572155caea28c0ff803d0028710cc7c4ff.tar.bz2
scummvm-rg350-66f2a8572155caea28c0ff803d0028710cc7c4ff.zip
MADS: Implement scene 310
Diffstat (limited to 'engines/mads')
-rw-r--r--engines/mads/nebular/nebular_scenes.cpp2
-rw-r--r--engines/mads/nebular/nebular_scenes3.cpp34
-rw-r--r--engines/mads/nebular/nebular_scenes3.h15
3 files changed, 51 insertions, 0 deletions
diff --git a/engines/mads/nebular/nebular_scenes.cpp b/engines/mads/nebular/nebular_scenes.cpp
index 9978f574e8..ff32eabfe8 100644
--- a/engines/mads/nebular/nebular_scenes.cpp
+++ b/engines/mads/nebular/nebular_scenes.cpp
@@ -117,6 +117,8 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
return new Scene308(vm);
case 309:
return new Scene309(vm);
+ case 310:
+ return new Scene310(vm);
// Scene group #8
case 804:
diff --git a/engines/mads/nebular/nebular_scenes3.cpp b/engines/mads/nebular/nebular_scenes3.cpp
index aefc0189cc..b6f5142165 100644
--- a/engines/mads/nebular/nebular_scenes3.cpp
+++ b/engines/mads/nebular/nebular_scenes3.cpp
@@ -1432,5 +1432,39 @@ void Scene309::step() {
/*------------------------------------------------------------------------*/
+void Scene310::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+}
+
+void Scene310::enter() {
+ _globals._spriteIndexes[1] = _scene->_sprites.addSprites("*SC003x0");
+ _globals._spriteIndexes[0] = _scene->_sprites.addSprites("*SC003x1");
+ _globals._spriteIndexes[2] = _scene->_sprites.addSprites("*SC003x2");
+
+ initForceField(&_forceField, true);
+
+ _globals._spriteIndexes[3] = _scene->_sprites.addSprites(Resources::formatName(307, 'X', 0, EXT_SS, ""));
+ _globals._sequenceIndexes[3] = _scene->_sequences.startCycle(_globals._spriteIndexes[3], false, 1);
+ _scene->_sequences.setMsgPosition(_globals._sequenceIndexes[3], Common::Point(127, 78));
+ _scene->_sequences.setDepth(_globals._sequenceIndexes[3], 15);
+
+ _game._player._visible = false;
+ _game._player._stepEnabled = false;
+ _scene->loadAnimation(formAnimName('a', -1), 70);
+
+ sceneEntrySound();
+}
+
+void Scene310::step() {
+ handleForceField(&_forceField, &_globals._spriteIndexes[0]);
+
+ if (_game._trigger == 70)
+ _scene->_nextSceneId = 309;
+}
+
+
+/*------------------------------------------------------------------------*/
+
} // End of namespace Nebular
} // End of namespace MADS
diff --git a/engines/mads/nebular/nebular_scenes3.h b/engines/mads/nebular/nebular_scenes3.h
index 4ca2c5a9ad..5b380c3ef1 100644
--- a/engines/mads/nebular/nebular_scenes3.h
+++ b/engines/mads/nebular/nebular_scenes3.h
@@ -188,6 +188,21 @@ public:
virtual void postActions() {};
};
+class Scene310: public Scene3xx {
+private:
+ ForceField _forceField;
+
+public:
+ Scene310(MADSEngine *vm) : Scene3xx(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