aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/mads/nebular/nebular_scenes5.cpp155
-rw-r--r--engines/mads/nebular/nebular_scenes5.h18
2 files changed, 118 insertions, 55 deletions
diff --git a/engines/mads/nebular/nebular_scenes5.cpp b/engines/mads/nebular/nebular_scenes5.cpp
index cc8cdbd9e0..a8c6b22591 100644
--- a/engines/mads/nebular/nebular_scenes5.cpp
+++ b/engines/mads/nebular/nebular_scenes5.cpp
@@ -92,11 +92,12 @@ void Scene5xx::sceneEntrySound() {
/*------------------------------------------------------------------------*/
-void Scene501::setup() {
- setPlayerSpritesPrefix();
- setAAName();
- _scene->addActiveVocab(NOUN_DOOR);
- _scene->addActiveVocab(VERB_WALK_THROUGH);
+Scene501::Scene501(MADSEngine *vm) : Scene5xx(vm) {
+ _mainSequenceId = -1;
+ _mainSpriteId = -1;
+ _doorHotspotid = -1;
+
+ _rexPunched = false;
}
void Scene501::synchronize(Common::Serializer &s) {
@@ -108,6 +109,13 @@ void Scene501::synchronize(Common::Serializer &s) {
s.syncAsByte(_rexPunched);
}
+void Scene501::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+ _scene->addActiveVocab(NOUN_DOOR);
+ _scene->addActiveVocab(VERB_WALK_THROUGH);
+}
+
void Scene501::handleSlotActions() {
switch (_game._trigger) {
case 0:
@@ -523,11 +531,8 @@ void Scene502::actions() {
/*------------------------------------------------------------------------*/
-void Scene503::setup() {
- setPlayerSpritesPrefix();
- setAAName();
- _scene->addActiveVocab(NOUN_DETONATORS);
- _scene->addActiveVocab(VERB_WALKTO);
+Scene503::Scene503(MADSEngine *vm) : Scene5xx(vm) {
+ _detonatorHotspotId = -1;
}
void Scene503::synchronize(Common::Serializer &s) {
@@ -536,6 +541,13 @@ void Scene503::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_detonatorHotspotId);
}
+void Scene503::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+ _scene->addActiveVocab(NOUN_DETONATORS);
+ _scene->addActiveVocab(VERB_WALKTO);
+}
+
void Scene503::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('c', -1));
@@ -651,9 +663,9 @@ void Scene503::actions() {
/*------------------------------------------------------------------------*/
-void Scene504::setup() {
- _game._player._spritesPrefix = "";
- setAAName();
+Scene504::Scene504(MADSEngine *vm) : Scene5xx(vm) {
+ _carAnimationMode = -1;
+ _carFrame = -1;
}
void Scene504::synchronize(Common::Serializer &s) {
@@ -663,6 +675,11 @@ void Scene504::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_carFrame);
}
+void Scene504::setup() {
+ _game._player._spritesPrefix = "";
+ setAAName();
+}
+
void Scene504::enter() {
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('a', 2));
@@ -855,9 +872,15 @@ void Scene504::actions() {
/*------------------------------------------------------------------------*/
-void Scene505::setup() {
- _game._player._spritesPrefix = "";
- setAAName();
+Scene505::Scene505(MADSEngine *vm) : Scene5xx(vm) {
+ _frame = -1;
+ _nextButtonId = -1;
+ _homeSelectedId = -1;
+ _selectedId = -1;
+ _activeCars = -1;
+
+ for (int i = 0; i < 9; i++)
+ _carLocations[i] = -1;
}
void Scene505::synchronize(Common::Serializer &s) {
@@ -873,6 +896,11 @@ void Scene505::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_carLocations[i]);
}
+void Scene505::setup() {
+ _game._player._spritesPrefix = "";
+ setAAName();
+}
+
void Scene505::enter() {
for (int i = 0; i < 9; i++)
_globals._spriteIndexes[i] = _scene->_sprites.addSprites(formAnimName('a', i + 1));
@@ -1122,12 +1150,17 @@ void Scene505::actions() {
/*------------------------------------------------------------------------*/
-void Scene506::setup() {
- setPlayerSpritesPrefix();
- setAAName();
- _scene->addActiveVocab(VERB_WALK_INTO);
- _scene->addActiveVocab(NOUN_SOFTWARE_STORE);
- _scene->addActiveVocab(NOUN_LABORATORY);
+Scene506::Scene506(MADSEngine *vm) : Scene5xx(vm), _doorPos(0, 0) {
+ _heroFacing = FACING_DUMMY;
+
+ _doorDepth = -1;
+ _doorSpriteIdx = -1;
+ _doorSequenceIdx = -1;
+ _doorWord = -1;
+
+ _labDoorFl = false;
+ _firstDoorFl = false;
+ _actionFl = false;
}
void Scene506::synchronize(Common::Serializer &s) {
@@ -1148,6 +1181,14 @@ void Scene506::synchronize(Common::Serializer &s) {
s.syncAsByte(_actionFl);
}
+void Scene506::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+ _scene->addActiveVocab(VERB_WALK_INTO);
+ _scene->addActiveVocab(NOUN_SOFTWARE_STORE);
+ _scene->addActiveVocab(NOUN_LABORATORY);
+}
+
void Scene506::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('q', 0));
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('q', 1));
@@ -1402,11 +1443,8 @@ void Scene506::actions() {
/*------------------------------------------------------------------------*/
-void Scene507::setup() {
- setPlayerSpritesPrefix();
- setAAName();
- _scene->addActiveVocab(NOUN_PENLIGHT);
- _scene->addActiveVocab(VERB_WALKTO);
+Scene507::Scene507(MADSEngine *vm) : Scene5xx(vm) {
+ _penlightHotspotId = -1;
}
void Scene507::synchronize(Common::Serializer &s) {
@@ -1415,6 +1453,13 @@ void Scene507::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_penlightHotspotId);
}
+void Scene507::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+ _scene->addActiveVocab(NOUN_PENLIGHT);
+ _scene->addActiveVocab(VERB_WALKTO);
+}
+
void Scene507::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('p', -1));
_globals._spriteIndexes[2] = _scene->_sprites.addSprites("*RXMRD_3");
@@ -1519,12 +1564,8 @@ void Scene507::actions() {
/*------------------------------------------------------------------------*/
-void Scene508::setup() {
- setPlayerSpritesPrefix();
- setAAName();
- _scene->addActiveVocab(NOUN_SPINACH_PATCH_DOLL);
- _scene->addActiveVocab(VERB_WALKTO);
- _scene->addActiveVocab(NOUN_LASER_BEAM);
+Scene508::Scene508(MADSEngine *vm) : Scene5xx(vm) {
+ _chosenObject = -1;
}
void Scene508::synchronize(Common::Serializer &s) {
@@ -1533,6 +1574,14 @@ void Scene508::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_chosenObject);
}
+void Scene508::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+ _scene->addActiveVocab(NOUN_SPINACH_PATCH_DOLL);
+ _scene->addActiveVocab(VERB_WALKTO);
+ _scene->addActiveVocab(NOUN_LASER_BEAM);
+}
+
void Scene508::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('a', 0));
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('m', 0));
@@ -1784,12 +1833,13 @@ void Scene508::actions() {
/*------------------------------------------------------------------------*/
-void Scene511::setup() {
- setPlayerSpritesPrefix();
- setAAName();
- _scene->addActiveVocab(NOUN_BOAT);
- _scene->addActiveVocab(NOUN_FISHING_LINE);
- _scene->addActiveVocab(VERB_WALKTO);
+Scene511::Scene511(MADSEngine *vm) : Scene5xx(vm) {
+ _handingLine = false;
+ _lineMoving = false;
+
+ _lineAnimationMode = -1;
+ _lineFrame = -1;
+ _lineAnimationPosition = -1;
}
void Scene511::synchronize(Common::Serializer &s) {
@@ -1803,6 +1853,14 @@ void Scene511::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_lineAnimationPosition);
}
+void Scene511::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+ _scene->addActiveVocab(NOUN_BOAT);
+ _scene->addActiveVocab(NOUN_FISHING_LINE);
+ _scene->addActiveVocab(VERB_WALKTO);
+}
+
void Scene511::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('c', 0));
_globals._spriteIndexes[4] = _scene->_sprites.addSprites("*RXCD_6");
@@ -2116,13 +2174,9 @@ void Scene511::actions() {
/*------------------------------------------------------------------------*/
-void Scene512::setup() {
- setPlayerSpritesPrefix();
- setAAName();
- _scene->addActiveVocab(NOUN_FISHING_ROD);
- _scene->addActiveVocab(VERB_WALKTO);
- _scene->addActiveVocab(NOUN_PADLOCK_KEY);
- _scene->addActiveVocab(NOUN_REGISTER_DRAWER);
+Scene512::Scene512(MADSEngine *vm) : Scene5xx(vm) {
+ _fishingRodHotspotId = -1;
+ _keyHotspotId = -1;
}
void Scene512::synchronize(Common::Serializer &s) {
@@ -2132,6 +2186,15 @@ void Scene512::synchronize(Common::Serializer &s) {
s.syncAsSint16LE(_keyHotspotId);
}
+void Scene512::setup() {
+ setPlayerSpritesPrefix();
+ setAAName();
+ _scene->addActiveVocab(NOUN_FISHING_ROD);
+ _scene->addActiveVocab(VERB_WALKTO);
+ _scene->addActiveVocab(NOUN_PADLOCK_KEY);
+ _scene->addActiveVocab(NOUN_REGISTER_DRAWER);
+}
+
void Scene512::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('r', -1));
_globals._spriteIndexes[2] = _scene->_sprites.addSprites("*RXMRC_9");
diff --git a/engines/mads/nebular/nebular_scenes5.h b/engines/mads/nebular/nebular_scenes5.h
index 7c21fbaae1..4022f1c85b 100644
--- a/engines/mads/nebular/nebular_scenes5.h
+++ b/engines/mads/nebular/nebular_scenes5.h
@@ -60,7 +60,7 @@ private:
void handleSlotActions();
public:
- Scene501(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene501(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();
@@ -85,7 +85,7 @@ private:
int _detonatorHotspotId;
public:
- Scene503(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene503(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();
@@ -99,7 +99,7 @@ private:
int _carFrame;
public:
- Scene504(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene504(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();
@@ -120,7 +120,7 @@ private:
int _carLocations[9];
public:
- Scene505(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene505(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();
@@ -146,7 +146,7 @@ private:
void handleDoorSequences();
public:
- Scene506(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene506(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();
@@ -160,7 +160,7 @@ private:
int _penlightHotspotId;
public:
- Scene507(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene507(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();
@@ -175,7 +175,7 @@ private:
void handlePedestral();
public:
- Scene508(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene508(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();
@@ -194,7 +194,7 @@ private:
int _lineAnimationPosition;
public:
- Scene511(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene511(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();
@@ -210,7 +210,7 @@ private:
int _keyHotspotId;
public:
- Scene512(MADSEngine *vm) : Scene5xx(vm) {}
+ Scene512(MADSEngine *vm);
void synchronize(Common::Serializer &s);
virtual void setup();