aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2014-04-28 03:02:07 +0300
committerFilippos Karapetis2014-04-28 03:02:07 +0300
commit83a1ce6e29fdc0f5a51bc7d912b227f40eacd164 (patch)
tree6ac05b47a3eea3957e93100718df93e7caf3a33e
parent6c9075eb2539aa4264ce4298772437caec55b256 (diff)
downloadscummvm-rg350-83a1ce6e29fdc0f5a51bc7d912b227f40eacd164.tar.gz
scummvm-rg350-83a1ce6e29fdc0f5a51bc7d912b227f40eacd164.tar.bz2
scummvm-rg350-83a1ce6e29fdc0f5a51bc7d912b227f40eacd164.zip
MADS: Implement scene 366
-rw-r--r--engines/mads/nebular/nebular_scenes.cpp2
-rw-r--r--engines/mads/nebular/nebular_scenes3.cpp33
-rw-r--r--engines/mads/nebular/nebular_scenes3.h13
3 files changed, 48 insertions, 0 deletions
diff --git a/engines/mads/nebular/nebular_scenes.cpp b/engines/mads/nebular/nebular_scenes.cpp
index fe915ed700..278a2628db 100644
--- a/engines/mads/nebular/nebular_scenes.cpp
+++ b/engines/mads/nebular/nebular_scenes.cpp
@@ -148,6 +148,8 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
return new Scene359(vm);
case 360:
return new Scene360(vm);
+ case 366:
+ return new Scene366(vm);
// Scene group #8
case 804:
diff --git a/engines/mads/nebular/nebular_scenes3.cpp b/engines/mads/nebular/nebular_scenes3.cpp
index 1213cd8a86..2368e0be48 100644
--- a/engines/mads/nebular/nebular_scenes3.cpp
+++ b/engines/mads/nebular/nebular_scenes3.cpp
@@ -4800,5 +4800,38 @@ void Scene360::actions() {
/*------------------------------------------------------------------------*/
+void Scene366::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+}
+
+void Scene366::enter() {
+ _scene->_userInterface.setup(kInputLimitedSentences);
+ _game._player._visible = false;
+ sceneEntrySound();
+}
+
+void Scene366::actions() {
+ if (_action.isAction(0x2D5, 0x2D4))
+ _scene->_nextSceneId = 302;
+ else if (_action.isAction(VERB_OPEN, 0x2D3)) {
+ if (_game._visitedScenes.exists(316))
+ _vm->_dialogs->show(0x8F04); // 366, 12
+ else
+ _vm->_dialogs->show(0x8F05); // 366, 13
+ _scene->_nextSceneId = 316;
+ } else if (_action.isAction(0xD3, 0x2D3)) {
+ if (_game._visitedScenes.exists(321))
+ _vm->_dialogs->show(0x8F03); // 366, 11
+ else
+ _vm->_dialogs->show(0x8F02); // 366, 10
+ } 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 7f2996eb4a..84cf4ce10c 100644
--- a/engines/mads/nebular/nebular_scenes3.h
+++ b/engines/mads/nebular/nebular_scenes3.h
@@ -461,6 +461,19 @@ public:
virtual void actions();
virtual void postActions() {};
};
+
+class Scene366: public Scene3xx {
+public:
+ Scene366(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