aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorStrangerke2014-03-18 07:25:27 +0100
committerStrangerke2014-03-18 07:26:39 +0100
commita82a0f2618049c337ed36e55a3c3c89911c54e55 (patch)
treed385d45b61d441ab7a77453ae59cb6edfc3edb8e /engines
parentd494db888e24c04261a46aa89d946ff3c7db3851 (diff)
downloadscummvm-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.cpp45
-rw-r--r--engines/mads/player.h3
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;