aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2014-04-27 00:05:26 +0200
committerStrangerke2014-04-27 00:05:26 +0200
commit1e024f42605effeb6928ff5c0f5177a6ff9edcb3 (patch)
tree739a4f3776bb637a90f422b056c2e6d4606ab0f8
parentf9d26d7b4ff2627544ddb3faf11aea91fef9e2a5 (diff)
downloadscummvm-rg350-1e024f42605effeb6928ff5c0f5177a6ff9edcb3.tar.gz
scummvm-rg350-1e024f42605effeb6928ff5c0f5177a6ff9edcb3.tar.bz2
scummvm-rg350-1e024f42605effeb6928ff5c0f5177a6ff9edcb3.zip
MADS: Implement scene 353
-rw-r--r--engines/mads/nebular/nebular_scenes.cpp5
-rw-r--r--engines/mads/nebular/nebular_scenes3.cpp47
-rw-r--r--engines/mads/nebular/nebular_scenes3.h12
3 files changed, 64 insertions, 0 deletions
diff --git a/engines/mads/nebular/nebular_scenes.cpp b/engines/mads/nebular/nebular_scenes.cpp
index df2433d166..21c3e9cd58 100644
--- a/engines/mads/nebular/nebular_scenes.cpp
+++ b/engines/mads/nebular/nebular_scenes.cpp
@@ -134,6 +134,11 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
case 351:
return new Scene351(vm);
+ case 352:
+ return new Scene352(vm);
+ case 353:
+ return new Scene353(vm);
+
// Scene group #8
case 804:
return new Scene804(vm);
diff --git a/engines/mads/nebular/nebular_scenes3.cpp b/engines/mads/nebular/nebular_scenes3.cpp
index b812d432c9..22b3c71c95 100644
--- a/engines/mads/nebular/nebular_scenes3.cpp
+++ b/engines/mads/nebular/nebular_scenes3.cpp
@@ -4374,5 +4374,52 @@ void Scene352::actions() {
/*------------------------------------------------------------------------*/
+void Scene353::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+}
+
+void Scene353::enter() {
+ _globals._spriteIndexes[1] = _scene->_sprites.addSprites(Resources::formatName(303, 'B', 0, EXT_SS, ""));
+ _globals._sequenceIndexes[1] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[1], false, 5, 0, 5, 0);
+ _scene->_sequences.setDepth(_globals._sequenceIndexes[1], 1);
+
+ if (_scene->_priorSceneId == 352)
+ _game._player._playerPos = Common::Point(144, 95);
+ else
+ _game._player._playerPos = Common::Point(139, 155);
+
+ sceneEntrySound();
+}
+
+void Scene353::actions() {
+ if (_action._lookFlag)
+ _vm->_dialogs->show(0x89F3);
+ else if (_action.isAction(0x18B, 0x70))
+ _scene->_nextSceneId = 352;
+ else if (_action.isAction(0x1AD, 0x2B3))
+ _scene->_nextSceneId = 354;
+ else if (_action.isAction(VERB_LOOK, 0x23D))
+ _vm->_dialogs->show(0x89EE);
+ else if (_action.isAction(VERB_LOOK, 0x1FA) || _action.isAction(VERB_LOOK, 0x10C))
+ _vm->_dialogs->show(0x89EF);
+ else if (_action.isAction(VERB_LOOK, 0x23C))
+ _vm->_dialogs->show(0x89F0);
+ else if (_action.isAction(VERB_LOOK, 0x70))
+ _vm->_dialogs->show(0x89F1);
+ else if (_action.isAction(VERB_LOOK, 0x2B3))
+ _vm->_dialogs->show(0x89F2);
+ else if (_action.isAction(VERB_LOOK, 0x89))
+ _vm->_dialogs->show(0x89F4);
+ else if (_action.isAction(VERB_LOOK, 0x46))
+ _vm->_dialogs->show(0x89F5);
+ else if (_action.isAction(VERB_LOOK, 0x18D))
+ _vm->_dialogs->show(0x89F6);
+ else
+ return;
+
+ _action._inProgress = false;
+}
+
} // 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 1834ffe4c1..20cd1c331f 100644
--- a/engines/mads/nebular/nebular_scenes3.h
+++ b/engines/mads/nebular/nebular_scenes3.h
@@ -387,6 +387,18 @@ public:
virtual void postActions() {};
};
+class Scene353: public Scene3xx {
+public:
+ Scene353(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