diff options
author | Strangerke | 2014-03-18 07:25:27 +0100 |
---|---|---|
committer | Strangerke | 2014-03-18 07:26:39 +0100 |
commit | a82a0f2618049c337ed36e55a3c3c89911c54e55 (patch) | |
tree | d385d45b61d441ab7a77453ae59cb6edfc3edb8e /engines | |
parent | d494db888e24c04261a46aa89d946ff3c7db3851 (diff) | |
download | scummvm-rg350-a82a0f2618049c337ed36e55a3c3c89911c54e55.tar.gz scummvm-rg350-a82a0f2618049c337ed36e55a3c3c89911c54e55.tar.bz2 scummvm-rg350-a82a0f2618049c337ed36e55a3c3c89911c54e55.zip |
MADS: Complete scene 201
Diffstat (limited to 'engines')
-rw-r--r-- | engines/mads/nebular/nebular_scenes2.cpp | 45 | ||||
-rw-r--r-- | engines/mads/player.h | 3 |
2 files changed, 47 insertions, 1 deletions
diff --git a/engines/mads/nebular/nebular_scenes2.cpp b/engines/mads/nebular/nebular_scenes2.cpp index 63c03dc5c8..d8b1308cb2 100644 --- a/engines/mads/nebular/nebular_scenes2.cpp +++ b/engines/mads/nebular/nebular_scenes2.cpp @@ -285,6 +285,51 @@ void Scene201::step() { } void Scene201::actions() { + MADSAction *action = _game._player._action; + if (action->_lookFlag == false) { + if (action->isAction(0x18C, 0x83, 0)) + _scene->_nextSceneId = 202; + else if ((action->isAction(0x50, 0x156, 0)) || (action->isAction(0x188, 0x16C, 0)) || (action->isAction(0x188, 0x1B6, 0))) { + if (_game._abortTimers != 0) { + if (_game._abortTimers != 1) + _scene->_nextSceneId = 213; + } else { + _game._player._stepEnabled = false; + _game._player._visible = false; + int sepChar = (_globals[0] == SEX_UNKNOWN) ? 't' : 'u'; + _scene->loadAnimation(formAnimName(sepChar, 0), 1); + } + } else if (action->isAction(0x3, 0x1A6, 0)) { + Dialog::show(0x4E85); + } else if (action->isAction(0x3, 0x129, 0)) { + Dialog::show(0x4E86); + } else if (action->isAction(0x3, 0x16F, 0)) { + Dialog::show(0x4E87); + } else if (action->isAction(0x3, 0x142, 0)) { + Dialog::show(0x4E88); + } else if (action->isAction(0x3, 0x18F, 0)) { + Dialog::show(0x4E89); + } else if (action->isAction(0x3, 0x1B9, 0)) { + Dialog::show(0x4E8A); + } else if (action->isAction(0x3, 0x192, 0)) { + Dialog::show(0x4E8B); + } else if (action->isAction(0x3, 0x1BA, 0)) { + Dialog::show(0x4E8C); + } else if (action->isAction(0x3, 0x83, 0)) { + Dialog::show(0x4E8E); + } else if (action->isAction(0x3, 0x1B6, 0)) { + if (_globals[37]) + Dialog::show(0x4E90); + else + Dialog::show(0x4E8D); + } else if (action->isAction(0x3, 0x16C, 0)) { + Dialog::show(0x4E91); + } else + return; + } else { + Dialog::show(0x4E8F); + } + action->_inProgress = false; } } // End of namespace Nebular diff --git a/engines/mads/player.h b/engines/mads/player.h index e330c650de..b997e26a02 100644 --- a/engines/mads/player.h +++ b/engines/mads/player.h @@ -38,7 +38,6 @@ private: static const int _directionListIndexes[32]; private: MADSEngine *_vm; - MADSAction *_action; bool _highSprites; bool _spriteSetsPresent[PLAYER_SPRITES_FILE_COUNT]; int _currentDepth; @@ -97,6 +96,8 @@ private: void dirChanged(); public: + MADSAction *_action; + int _direction; int _newDirection; int _xDirection, _yDirection; |