aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/mads/nebular/nebular_scenes.cpp4
-rw-r--r--engines/mads/nebular/nebular_scenes7.cpp45
-rw-r--r--engines/mads/nebular/nebular_scenes7.h12
3 files changed, 59 insertions, 2 deletions
diff --git a/engines/mads/nebular/nebular_scenes.cpp b/engines/mads/nebular/nebular_scenes.cpp
index 56df10b0cc..f192c04842 100644
--- a/engines/mads/nebular/nebular_scenes.cpp
+++ b/engines/mads/nebular/nebular_scenes.cpp
@@ -256,6 +256,8 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
// Scene group #7
case 707:
return new Scene707(vm);
+ case 711:
+ return new Scene711(vm);
case 701:
// TODO
case 702:
@@ -272,8 +274,6 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
// TODO
case 710:
// TODO
- case 711:
- // TODO
case 751:
// TODO
case 752:
diff --git a/engines/mads/nebular/nebular_scenes7.cpp b/engines/mads/nebular/nebular_scenes7.cpp
index 6692362ba3..53b408c46c 100644
--- a/engines/mads/nebular/nebular_scenes7.cpp
+++ b/engines/mads/nebular/nebular_scenes7.cpp
@@ -141,5 +141,50 @@ void Scene707::actions() {
/*------------------------------------------------------------------------*/
+void Scene711::setup() {
+ // The original was calling Scene7xx::setPlayerSpreitesPrefix()
+ _vm->_sound->command(5);
+ Common::String oldName = _game._player._spritesPrefix;
+ _game._player._spritesPrefix = "";
+ _game._player._scalingVelocity = true;
+
+ if (oldName != _game._player._spritesPrefix)
+ _game._player._spritesChanged = true;
+
+ _vm->_palette->setEntry(16, 10, 63, 63);
+ _vm->_palette->setEntry(17, 10, 45, 45);
+
+ // The original was calling Scene7xx::setAAName()
+ _game._aaName = Resources::formatAAName(5);
+
+ _game._player._spritesPrefix = "";
+}
+
+void Scene711::enter() {
+ if (_globals[kSexOfRex] == REX_FEMALE)
+ _handSpriteId = _scene->_sprites.addSprites("*ROXHAND");
+ else
+ _handSpriteId = _scene->_sprites.addSprites("*REXHAND");
+
+ teleporterEnter();
+
+ // The original was using Scene7xx_SceneEntrySound()
+ if (!_vm->_musicFlag)
+ _vm->_sound->command(2);
+ else
+ _vm->_sound->command(25);
+}
+
+void Scene711::step() {
+ teleporterStep();
+}
+
+void Scene711::actions() {
+ if (teleporterActions())
+ _action._inProgress = false;
+}
+
+/*------------------------------------------------------------------------*/
+
} // End of namespace Nebular
} // End of namespace MADS
diff --git a/engines/mads/nebular/nebular_scenes7.h b/engines/mads/nebular/nebular_scenes7.h
index 1d6c26d41e..080c6396e2 100644
--- a/engines/mads/nebular/nebular_scenes7.h
+++ b/engines/mads/nebular/nebular_scenes7.h
@@ -62,6 +62,18 @@ public:
virtual void postActions() {};
};
+class Scene711: public SceneTeleporter {
+public:
+ Scene711(MADSEngine *vm) : SceneTeleporter(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