aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/nebular/nebular_scenes4.cpp
diff options
context:
space:
mode:
authorStrangerke2014-05-04 19:21:38 +0200
committerStrangerke2014-05-04 19:22:31 +0200
commitf894b3f1269203793214a750cbd5a9ae022d2d8c (patch)
treece08de46397261333a963a9a22043abdff683e2b /engines/mads/nebular/nebular_scenes4.cpp
parent9966afbb8f215b1ba8dfaf752355060b1d7b1092 (diff)
downloadscummvm-rg350-f894b3f1269203793214a750cbd5a9ae022d2d8c.tar.gz
scummvm-rg350-f894b3f1269203793214a750cbd5a9ae022d2d8c.tar.bz2
scummvm-rg350-f894b3f1269203793214a750cbd5a9ae022d2d8c.zip
MADS: Implement scene 409, first try of Teleporter implementation
Diffstat (limited to 'engines/mads/nebular/nebular_scenes4.cpp')
-rw-r--r--engines/mads/nebular/nebular_scenes4.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/engines/mads/nebular/nebular_scenes4.cpp b/engines/mads/nebular/nebular_scenes4.cpp
index 7b50460b9e..980f77004a 100644
--- a/engines/mads/nebular/nebular_scenes4.cpp
+++ b/engines/mads/nebular/nebular_scenes4.cpp
@@ -2993,6 +2993,63 @@ void Scene408::actions() {
/*------------------------------------------------------------------------*/
+void Scene409::setup() {
+ _game._player._spritesPrefix = "";
+
+ // The original is calling Scene4xx::setAAName()
+ _game._aaName = Resources::formatAAName(4);
+}
+
+void Scene409::enter() {
+ _handSpriteId = _scene->_sprites.addSprites("*ROXHAND");
+ teleporterEnter();
+
+ // The original is calling Scene4xx::sceneEntrySound()
+ if (!_vm->_musicFlag)
+ _vm->_sound->command(2);
+ else
+ _vm->_sound->command(10);
+}
+
+void Scene409::step() {
+ teleporterStep();
+}
+
+void Scene409::actions() {
+ if (teleporterActions()) {
+ _action._inProgress = false;
+ return;
+ }
+
+ if (_action.isAction(VERB_LOOK, 0x181))
+ _vm->_dialogs->show(40910);
+ else if (_action.isAction(0x103, 0x181))
+ _vm->_dialogs->show(40910);
+ else if (_action.isAction(VERB_LOOK, 0xC4))
+ _vm->_dialogs->show(40911);
+ else if (_action.isAction(0xB7, 0xC4))
+ _vm->_dialogs->show(40911);
+ else if (_action.isAction(VERB_LOOK, 0x1CC))
+ _vm->_dialogs->show(40912);
+ else if (_action.isAction(VERB_LOOK, 0x1D1) || _action.isAction(VERB_LOOK, 0x1D2)
+ || _action.isAction(VERB_LOOK, 0x1D3) || _action.isAction(VERB_LOOK, 0x1D4)
+ || _action.isAction(VERB_LOOK, 0x1D5) || _action.isAction(VERB_LOOK, 0x1D6)
+ || _action.isAction(VERB_LOOK, 0x1D7) || _action.isAction(VERB_LOOK, 0x1D8)
+ || _action.isAction(VERB_LOOK, 0x1D9) || _action.isAction(VERB_LOOK, 0x1D0)
+ || _action.isAction(VERB_LOOK, 0x1DB) || _action.isAction(VERB_LOOK, 0x1DA))
+ _vm->_dialogs->show(40913);
+ else if (_action.isAction(VERB_LOOK, 0x1CF))
+ _vm->_dialogs->show(40914);
+ else if (_action._lookFlag)
+ _vm->_dialogs->show(40914);
+ else
+ return;
+
+ _action._inProgress = false;
+}
+
+/*------------------------------------------------------------------------*/
+
void Scene410::setup() {
setPlayerSpritesPrefix();
setAAName();