aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/mads/nebular/nebular_scenes4.cpp54
-rw-r--r--engines/mads/nebular/nebular_scenes4.h2
-rw-r--r--engines/mads/user_interface.h6
3 files changed, 62 insertions, 0 deletions
diff --git a/engines/mads/nebular/nebular_scenes4.cpp b/engines/mads/nebular/nebular_scenes4.cpp
index 9d20c687e7..7b50460b9e 100644
--- a/engines/mads/nebular/nebular_scenes4.cpp
+++ b/engines/mads/nebular/nebular_scenes4.cpp
@@ -98,6 +98,15 @@ void Scene401::setup() {
setAAName();
}
+void Scene401::synchronize(Common::Serializer &s) {
+ Scene4xx::synchronize(s);
+
+ s.syncAsByte(_northFl);
+ s.syncAsSint16LE(_destPos.x);
+ s.syncAsSint16LE(_destPos.y);
+ s.syncAsUint32LE(_timer);
+}
+
void Scene401::enter() {
if (_scene->_priorSceneId != -2)
_northFl = false;
@@ -237,6 +246,51 @@ void Scene402::setup() {
_scene->addActiveVocab(0xD1);
}
+void Scene402::synchronize(Common::Serializer &s) {
+ Scene4xx::synchronize(s);
+
+ s.syncAsByte(_lightOn);
+ s.syncAsByte(_blowingSmoke);
+ s.syncAsByte(_leftWomanMoving);
+ s.syncAsByte(_rightWomanMoving);
+ s.syncAsByte(_firstTalkToGirlInChair);
+ s.syncAsByte(_waitingGinnyMove);
+ s.syncAsByte(_ginnyLooking);
+ s.syncAsByte(_bigBeatFl);
+ s.syncAsByte(_roxOnStool);
+ s.syncAsByte(_bartenderSteady);
+ s.syncAsByte(_bartenderHandsHips);
+ s.syncAsByte(_bartenderLooksLeft);
+ s.syncAsByte(_bartenderReady);
+ s.syncAsByte(_bartenderTalking);
+ s.syncAsByte(_bartenderCalled);
+ s.syncAsByte(_conversationFl);
+ s.syncAsByte(_activeTeleporter);
+ s.syncAsByte(_activeArrows);
+ s.syncAsByte(_activeArrow1);
+ s.syncAsByte(_activeArrow2);
+ s.syncAsByte(_activeArrow3);
+ s.syncAsByte(_cutSceneReady);
+ s.syncAsByte(_cutSceneNeeded);
+ s.syncAsByte(_helgaReady);
+ s.syncAsByte(_refuseAlienLiquor);
+
+ s.syncAsSint16LE(_drinkTimer);
+ s.syncAsSint16LE(_beatCounter);
+ s.syncAsSint16LE(_bartenderMode);
+ s.syncAsSint16LE(_bartenderDialogNode);
+ s.syncAsSint16LE(_bartenderCurrentQuestion);
+ s.syncAsSint16LE(_helgaTalkMode);
+ s.syncAsSint16LE(_roxMode);
+ s.syncAsSint16LE(_rexMode);
+ s.syncAsSint16LE(_talkTimer);
+
+ _dialog1.synchronize(s);
+ _dialog2.synchronize(s);
+ _dialog3.synchronize(s);
+ _dialog4.synchronize(s);
+}
+
void Scene402::setDialogNode(int node) {
if (node > 0)
_bartenderDialogNode = node;
diff --git a/engines/mads/nebular/nebular_scenes4.h b/engines/mads/nebular/nebular_scenes4.h
index 2010931981..c48d0277ce 100644
--- a/engines/mads/nebular/nebular_scenes4.h
+++ b/engines/mads/nebular/nebular_scenes4.h
@@ -58,6 +58,7 @@ private:
public:
Scene401(MADSEngine *vm) : Scene4xx(vm) {}
+ void synchronize(Common::Serializer &s);
virtual void setup();
virtual void enter();
@@ -119,6 +120,7 @@ private:
public:
Scene402(MADSEngine *vm) : Scene4xx(vm) {}
+ void synchronize(Common::Serializer &s);
virtual void setup();
virtual void enter();
diff --git a/engines/mads/user_interface.h b/engines/mads/user_interface.h
index 9948278a55..04a8d090dd 100644
--- a/engines/mads/user_interface.h
+++ b/engines/mads/user_interface.h
@@ -128,6 +128,12 @@ public:
* Starts the conversation
*/
void start();
+
+ /**
+ * Synchronize the conversation
+ */
+ void synchronize(Common::Serializer &s) { warning("TODO: Synchronize Conversation"); };
+
};
class UserInterface : public MSurface {