diff options
author | Strangerke | 2014-04-27 00:05:26 +0200 |
---|---|---|
committer | Strangerke | 2014-04-27 00:05:26 +0200 |
commit | 1e024f42605effeb6928ff5c0f5177a6ff9edcb3 (patch) | |
tree | 739a4f3776bb637a90f422b056c2e6d4606ab0f8 | |
parent | f9d26d7b4ff2627544ddb3faf11aea91fef9e2a5 (diff) | |
download | scummvm-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.cpp | 5 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes3.cpp | 47 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes3.h | 12 |
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 |