diff options
author | Filippos Karapetis | 2014-04-28 03:02:07 +0300 |
---|---|---|
committer | Filippos Karapetis | 2014-04-28 03:02:07 +0300 |
commit | 83a1ce6e29fdc0f5a51bc7d912b227f40eacd164 (patch) | |
tree | 6ac05b47a3eea3957e93100718df93e7caf3a33e | |
parent | 6c9075eb2539aa4264ce4298772437caec55b256 (diff) | |
download | scummvm-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.cpp | 2 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes3.cpp | 33 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes3.h | 13 |
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 |