aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/nebular/nebular_scenes5.cpp
diff options
context:
space:
mode:
authorStrangerke2014-05-20 19:48:08 +0200
committerStrangerke2014-05-20 19:48:08 +0200
commitc494781645bcdadce84052798f6194eaaefc728c (patch)
tree2ae68d17366e8bd5e8a340a0e97b17a41300c192 /engines/mads/nebular/nebular_scenes5.cpp
parent6804c085461fdaddf58e7885ed83b70662afbfae (diff)
downloadscummvm-rg350-c494781645bcdadce84052798f6194eaaefc728c.tar.gz
scummvm-rg350-c494781645bcdadce84052798f6194eaaefc728c.tar.bz2
scummvm-rg350-c494781645bcdadce84052798f6194eaaefc728c.zip
MADS: Add synchronize where useful in scene group 5
Diffstat (limited to 'engines/mads/nebular/nebular_scenes5.cpp')
-rw-r--r--engines/mads/nebular/nebular_scenes5.cpp82
1 files changed, 78 insertions, 4 deletions
diff --git a/engines/mads/nebular/nebular_scenes5.cpp b/engines/mads/nebular/nebular_scenes5.cpp
index 1ad29a39a4..cc8cdbd9e0 100644
--- a/engines/mads/nebular/nebular_scenes5.cpp
+++ b/engines/mads/nebular/nebular_scenes5.cpp
@@ -530,6 +530,12 @@ void Scene503::setup() {
_scene->addActiveVocab(VERB_WALKTO);
}
+void Scene503::synchronize(Common::Serializer &s) {
+ Scene5xx::synchronize(s);
+
+ s.syncAsSint16LE(_detonatorHotspotId);
+}
+
void Scene503::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('c', -1));
@@ -650,6 +656,13 @@ void Scene504::setup() {
setAAName();
}
+void Scene504::synchronize(Common::Serializer &s) {
+ Scene5xx::synchronize(s);
+
+ s.syncAsSint16LE(_carAnimationMode);
+ s.syncAsSint16LE(_carFrame);
+}
+
void Scene504::enter() {
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('a', 2));
@@ -847,6 +860,19 @@ void Scene505::setup() {
setAAName();
}
+void Scene505::synchronize(Common::Serializer &s) {
+ Scene5xx::synchronize(s);
+
+ s.syncAsSint16LE(_frame);
+ s.syncAsSint16LE(_nextButtonId);
+ s.syncAsSint16LE(_homeSelectedId);
+ s.syncAsSint16LE(_selectedId);
+ s.syncAsSint16LE(_activeCars);
+
+ for (int i = 0; i < 9; i++)
+ s.syncAsSint16LE(_carLocations[i]);
+}
+
void Scene505::enter() {
for (int i = 0; i < 9; i++)
_globals._spriteIndexes[i] = _scene->_sprites.addSprites(formAnimName('a', i + 1));
@@ -1104,6 +1130,24 @@ void Scene506::setup() {
_scene->addActiveVocab(NOUN_LABORATORY);
}
+void Scene506::synchronize(Common::Serializer &s) {
+ Scene5xx::synchronize(s);
+
+ s.syncAsSint16LE(_doorPos.x);
+ s.syncAsSint16LE(_doorPos.y);
+
+ s.syncAsByte(_heroFacing);
+
+ s.syncAsSint16LE(_doorDepth);
+ s.syncAsSint16LE(_doorSpriteIdx);
+ s.syncAsSint16LE(_doorSequenceIdx);
+ s.syncAsSint16LE(_doorWord);
+
+ s.syncAsByte(_labDoorFl);
+ s.syncAsByte(_firstDoorFl);
+ s.syncAsByte(_actionFl);
+}
+
void Scene506::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('q', 0));
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('q', 1));
@@ -1161,7 +1205,7 @@ void Scene506::step() {
_doorWord = 0x37D;
}
}
- room_506_door_sequences();
+ handleDoorSequences();
}
if (_game._trigger >= 70) {
@@ -1191,7 +1235,7 @@ void Scene506::step() {
}
}
-void Scene506::room_506_door_sequences() {
+void Scene506::handleDoorSequences() {
_game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON;
if (_firstDoorFl) {
@@ -1281,14 +1325,14 @@ void Scene506::actions() {
_doorPos = Common::Point(16, 111);
}
_actionFl = true;
- room_506_door_sequences();
+ handleDoorSequences();
} else if (_action.isAction(VERB_WALK_INTO, NOUN_SOFTWARE_STORE)) {
if (_firstDoorFl) {
_heroFacing = FACING_NORTHWEST;
_doorPos = Common::Point(80, 102);
}
_actionFl = true;
- room_506_door_sequences();
+ handleDoorSequences();
} else if (_action.isAction(VERB_GET_INTO, NOUN_CAR)) {
switch (_game._trigger) {
case 0:
@@ -1365,6 +1409,12 @@ void Scene507::setup() {
_scene->addActiveVocab(VERB_WALKTO);
}
+void Scene507::synchronize(Common::Serializer &s) {
+ Scene5xx::synchronize(s);
+
+ s.syncAsSint16LE(_penlightHotspotId);
+}
+
void Scene507::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('p', -1));
_globals._spriteIndexes[2] = _scene->_sprites.addSprites("*RXMRD_3");
@@ -1477,6 +1527,12 @@ void Scene508::setup() {
_scene->addActiveVocab(NOUN_LASER_BEAM);
}
+void Scene508::synchronize(Common::Serializer &s) {
+ Scene5xx::synchronize(s);
+
+ s.syncAsSint16LE(_chosenObject);
+}
+
void Scene508::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('a', 0));
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('m', 0));
@@ -1736,6 +1792,17 @@ void Scene511::setup() {
_scene->addActiveVocab(VERB_WALKTO);
}
+void Scene511::synchronize(Common::Serializer &s) {
+ Scene5xx::synchronize(s);
+
+ s.syncAsByte(_handingLine);
+ s.syncAsByte(_lineMoving);
+
+ s.syncAsSint16LE(_lineAnimationMode);
+ s.syncAsSint16LE(_lineFrame);
+ s.syncAsSint16LE(_lineAnimationPosition);
+}
+
void Scene511::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('c', 0));
_globals._spriteIndexes[4] = _scene->_sprites.addSprites("*RXCD_6");
@@ -2058,6 +2125,13 @@ void Scene512::setup() {
_scene->addActiveVocab(NOUN_REGISTER_DRAWER);
}
+void Scene512::synchronize(Common::Serializer &s) {
+ Scene5xx::synchronize(s);
+
+ s.syncAsSint16LE(_fishingRodHotspotId);
+ s.syncAsSint16LE(_keyHotspotId);
+}
+
void Scene512::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('r', -1));
_globals._spriteIndexes[2] = _scene->_sprites.addSprites("*RXMRC_9");