diff options
author | Strangerke | 2014-05-20 19:48:08 +0200 |
---|---|---|
committer | Strangerke | 2014-05-20 19:48:08 +0200 |
commit | c494781645bcdadce84052798f6194eaaefc728c (patch) | |
tree | 2ae68d17366e8bd5e8a340a0e97b17a41300c192 | |
parent | 6804c085461fdaddf58e7885ed83b70662afbfae (diff) | |
download | scummvm-rg350-c494781645bcdadce84052798f6194eaaefc728c.tar.gz scummvm-rg350-c494781645bcdadce84052798f6194eaaefc728c.tar.bz2 scummvm-rg350-c494781645bcdadce84052798f6194eaaefc728c.zip |
MADS: Add synchronize where useful in scene group 5
-rw-r--r-- | engines/mads/nebular/nebular_scenes5.cpp | 82 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes5.h | 13 |
2 files changed, 88 insertions, 7 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"); diff --git a/engines/mads/nebular/nebular_scenes5.h b/engines/mads/nebular/nebular_scenes5.h index c49532dc8c..7c21fbaae1 100644 --- a/engines/mads/nebular/nebular_scenes5.h +++ b/engines/mads/nebular/nebular_scenes5.h @@ -86,6 +86,7 @@ private: public: Scene503(MADSEngine *vm) : Scene5xx(vm) {} + void synchronize(Common::Serializer &s); virtual void setup(); virtual void enter(); @@ -99,6 +100,7 @@ private: public: Scene504(MADSEngine *vm) : Scene5xx(vm) {} + void synchronize(Common::Serializer &s); virtual void setup(); virtual void enter(); @@ -119,6 +121,7 @@ private: public: Scene505(MADSEngine *vm) : Scene5xx(vm) {} + void synchronize(Common::Serializer &s); virtual void setup(); virtual void enter(); @@ -128,8 +131,6 @@ public: class Scene506: public Scene5xx{ private: - int _actionFl; /* Flag to note daemon is running vs. parser */ - Common::Point _doorPos; Facing _heroFacing; @@ -140,11 +141,13 @@ private: bool _labDoorFl; bool _firstDoorFl; + bool _actionFl; - void room_506_door_sequences(); + void handleDoorSequences(); public: Scene506(MADSEngine *vm) : Scene5xx(vm) {} + void synchronize(Common::Serializer &s); virtual void setup(); virtual void enter(); @@ -158,6 +161,7 @@ private: public: Scene507(MADSEngine *vm) : Scene5xx(vm) {} + void synchronize(Common::Serializer &s); virtual void setup(); virtual void enter(); @@ -172,6 +176,7 @@ private: public: Scene508(MADSEngine *vm) : Scene5xx(vm) {} + void synchronize(Common::Serializer &s); virtual void setup(); virtual void enter(); @@ -190,6 +195,7 @@ private: public: Scene511(MADSEngine *vm) : Scene5xx(vm) {} + void synchronize(Common::Serializer &s); virtual void setup(); virtual void enter(); @@ -205,6 +211,7 @@ private: public: Scene512(MADSEngine *vm) : Scene5xx(vm) {} + void synchronize(Common::Serializer &s); virtual void setup(); virtual void enter(); |