aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/mads/nebular/nebular_scenes.cpp2
-rw-r--r--engines/mads/nebular/nebular_scenes7.cpp43
-rw-r--r--engines/mads/nebular/nebular_scenes7.h12
3 files changed, 56 insertions, 1 deletions
diff --git a/engines/mads/nebular/nebular_scenes.cpp b/engines/mads/nebular/nebular_scenes.cpp
index 6660627038..7aaaa9ebb3 100644
--- a/engines/mads/nebular/nebular_scenes.cpp
+++ b/engines/mads/nebular/nebular_scenes.cpp
@@ -265,7 +265,7 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
case 707: // teleporter
return new Scene707(vm);
case 710: // looking at pedestral room through binoculars
- return new DummyScene(vm); // TODO
+ return new Scene710(vm);
case 711: // inside teleporter
return new Scene711(vm);
case 751: // outside elevator (before city is submerged)
diff --git a/engines/mads/nebular/nebular_scenes7.cpp b/engines/mads/nebular/nebular_scenes7.cpp
index 53b408c46c..eb67422278 100644
--- a/engines/mads/nebular/nebular_scenes7.cpp
+++ b/engines/mads/nebular/nebular_scenes7.cpp
@@ -141,6 +141,49 @@ void Scene707::actions() {
/*------------------------------------------------------------------------*/
+void Scene710::setup() {
+ _game._player._spritesPrefix = "";
+ setAAName();
+}
+
+void Scene710::enter() {
+ _game._scene._userInterface.setup(kInputLimitedSentences);
+
+ if (_game._objects[OBJ_VASE]._roomNumber == 706) {
+ _game._globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('g', -1));
+ _globals._sequenceIndexes[1] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[1], false, 6, 0, 0, 0);
+ }
+
+ _game._player._visible = false;
+ _game._scene._sequences.addTimer(600, 70);
+
+ sceneEntrySound();
+}
+
+void Scene710::step() {
+ if (_game._trigger == 70) {
+ if (_game._globals[kCityFlooded])
+ _game._scene._nextSceneId = 701;
+ else
+ _game._scene._nextSceneId = 751;
+ }
+}
+
+void Scene710::actions() {
+ if (_game._scene._action.isAction(0x46F, 0x27)) {
+ _game._player._stepEnabled = false;
+
+ if (_game._globals[kCityFlooded])
+ _game._scene._nextSceneId = 701;
+ else
+ _game._scene._nextSceneId = 751;
+
+ _action._inProgress = false;
+ }
+}
+
+/*------------------------------------------------------------------------*/
+
void Scene711::setup() {
// The original was calling Scene7xx::setPlayerSpreitesPrefix()
_vm->_sound->command(5);
diff --git a/engines/mads/nebular/nebular_scenes7.h b/engines/mads/nebular/nebular_scenes7.h
index 080c6396e2..0f4947f38f 100644
--- a/engines/mads/nebular/nebular_scenes7.h
+++ b/engines/mads/nebular/nebular_scenes7.h
@@ -62,6 +62,18 @@ public:
virtual void postActions() {};
};
+class Scene710: public Scene7xx {
+public:
+ Scene710(MADSEngine *vm) : Scene7xx(vm) {}
+
+ virtual void setup();
+ virtual void enter();
+ virtual void step();
+ virtual void preActions() {};
+ virtual void actions();
+ virtual void postActions() {};
+};
+
class Scene711: public SceneTeleporter {
public:
Scene711(MADSEngine *vm) : SceneTeleporter(vm) {}