[Scummvm-cvs-logs] scummvm master -> cdd9ab3b70da5abe287cc5ef4baa0c5b40e3bfd4
Strangerke
Strangerke at scummvm.org
Thu Dec 22 18:42:41 CET 2011
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e10060f262 TSAGE: R2R - Implement scene 3220
fc671351cf TSAGE: R2R - Implement scene 3230
e6a671b555 TSAGE: R2R - Implement scene 3240
cdd9ab3b70 TSAGE: R2R - Implement scene 3245
Commit: e10060f26207dc37ba38790db9fc793f1bcfb892
https://github.com/scummvm/scummvm/commit/e10060f26207dc37ba38790db9fc793f1bcfb892
Author: Strangerke (strangerke at scummvm.org)
Date: 2011-12-22T09:35:25-08:00
Commit Message:
TSAGE: R2R - Implement scene 3220
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
engines/tsage/ringworld2/ringworld2_speakers.cpp
engines/tsage/ringworld2/ringworld2_speakers.h
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 470cdab..cf294fa 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -184,12 +184,14 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Autopsy room
return new Scene3175();
case 3200:
- // Cutscene : Cutscene : Rocko & co - Discussion
+ // Cutscene : Guards - Discussion
return new Scene3200();
case 3210:
// Cutscene : Captain and Private - Discussion
return new Scene3210();
case 3220:
+ // Cutscene : Guards in cargo zone
+ return new Scene3220();
case 3230:
case 3240:
case 3245:
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 5b1e05e..0970973 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -923,7 +923,7 @@ void Scene3175::signal() {
}
/*--------------------------------------------------------------------------
- * Scene 3200 - Cutscene : Rocko & co - Discussion
+ * Scene 3200 - Cutscene : Guards - Discussion
*
*--------------------------------------------------------------------------*/
void Scene3200::postInit(SceneObjectList *OwnerList) {
@@ -975,5 +975,32 @@ void Scene3210::postInit(SceneObjectList *OwnerList) {
void Scene3210::signal() {
R2_GLOBALS._sceneManager.changeScene(1200);
}
+
+/*--------------------------------------------------------------------------
+ * Scene 3220 - Cutscene : Guards in cargo zone
+ *
+ *--------------------------------------------------------------------------*/
+void Scene3220::postInit(SceneObjectList *OwnerList) {
+ loadScene(3220);
+ R2_GLOBALS._v58CE2 = 0;
+ SceneExt::postInit();
+
+ _stripManager.addSpeaker(&_rockoSpeaker);
+ _stripManager.addSpeaker(&_jockoSpeaker);
+
+ R2_GLOBALS._player.postInit();
+ R2_GLOBALS._player.hide();
+ R2_GLOBALS._player.disableControl();
+
+ _actor1.postInit();
+ _actor2.postInit();
+
+ setAction(&_sequenceManager, this, 3220 + R2_GLOBALS._randomSource.getRandomNumber(1), &_actor1, &_actor2, NULL);
+}
+
+void Scene3220::signal() {
+ R2_GLOBALS._sceneManager.changeScene(1200);
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index fbb6392..afd3976 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -211,6 +211,18 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};
+
+class Scene3220 : public SceneExt {
+public:
+ SpeakerRocko3220 _rockoSpeaker;
+ SpeakerJocko3220 _jockoSpeaker;
+ SceneActor _actor1;
+ SceneActor _actor2;
+ SequenceManager _sequenceManager;
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void signal();
+};
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp
index 80ac04c..c216486 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -1228,5 +1228,75 @@ void SpeakerPrivate3210::proc15() {
}
}
+SpeakerRocko3220::SpeakerRocko3220() {
+ _speakerName = "Rocko";
+ _color1 = 5;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerRocko3220::proc15() {
+ int v = _fieldF6;
+ Scene3220 *scene = (Scene3220 *)R2_GLOBALS._sceneManager._scene;
+
+ if (!_object2) {
+ _object2 = &scene->_actor1;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ _object1.animate(ANIM_MODE_5, this);
+ }
+}
+
+SpeakerJocko3220::SpeakerJocko3220() {
+ _speakerName = "Jocko";
+ _color1 = 45;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerJocko3220::proc15() {
+ int v = _fieldF6;
+ Scene3220 *scene = (Scene3220 *)R2_GLOBALS._sceneManager._scene;
+
+ if (!_object2) {
+ _object2 = &scene->_actor2;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ _object1.animate(ANIM_MODE_5, this);
+ }
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.h b/engines/tsage/ringworld2/ringworld2_speakers.h
index 66edd67..fef7003 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.h
+++ b/engines/tsage/ringworld2/ringworld2_speakers.h
@@ -309,6 +309,22 @@ public:
virtual void proc15();
};
+class SpeakerRocko3220 : public VisualSpeaker {
+public:
+ SpeakerRocko3220();
+
+ virtual Common::String getClassName() { return "SpeakerRocko3220"; }
+ virtual void proc15();
+};
+
+class SpeakerJocko3220 : public VisualSpeaker {
+public:
+ SpeakerJocko3220();
+
+ virtual Common::String getClassName() { return "SpeakerJocko3220"; }
+ virtual void proc15();
+};
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
Commit: fc671351cf47c50f7cfc21b1f0ea38b81b105f38
https://github.com/scummvm/scummvm/commit/fc671351cf47c50f7cfc21b1f0ea38b81b105f38
Author: Strangerke (strangerke at scummvm.org)
Date: 2011-12-22T09:35:27-08:00
Commit Message:
TSAGE: R2R - Implement scene 3230
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
engines/tsage/ringworld2/ringworld2_speakers.cpp
engines/tsage/ringworld2/ringworld2_speakers.h
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index cf294fa..3503765 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -193,6 +193,8 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Cutscene : Guards in cargo zone
return new Scene3220();
case 3230:
+ // Cutscene : Guards on duty
+ return new Scene3230();
case 3240:
case 3245:
case 3250:
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 0970973..a07076b 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -1002,5 +1002,31 @@ void Scene3220::signal() {
R2_GLOBALS._sceneManager.changeScene(1200);
}
+/*--------------------------------------------------------------------------
+ * Scene 3230 - Cutscene : Guards on duty
+ *
+ *--------------------------------------------------------------------------*/
+void Scene3230::postInit(SceneObjectList *OwnerList) {
+ loadScene(3230);
+ R2_GLOBALS._v58CE2 = 0;
+ SceneExt::postInit();
+
+ _stripManager.addSpeaker(&_rockoSpeaker);
+ _stripManager.addSpeaker(&_jockoSpeaker);
+
+ R2_GLOBALS._player.postInit();
+ R2_GLOBALS._player.hide();
+ R2_GLOBALS._player.disableControl();
+
+ _actor1.postInit();
+ _actor2.postInit();
+ _actor3.postInit();
+
+ setAction(&_sequenceManager, this, 3230 + R2_GLOBALS._randomSource.getRandomNumber(1), &_actor1, &_actor2, &_actor3, NULL);
+}
+
+void Scene3230::signal() {
+ R2_GLOBALS._sceneManager.changeScene(1200);
+}
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index afd3976..6bff8bc 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -223,6 +223,19 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};
+
+class Scene3230 : public SceneExt {
+public:
+ SpeakerRocko3230 _rockoSpeaker;
+ SpeakerJocko3230 _jockoSpeaker;
+ SceneActor _actor1;
+ SceneActor _actor2;
+ SceneActor _actor3;
+ SequenceManager _sequenceManager;
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void signal();
+};
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp
index c216486..4c0494c 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -1298,5 +1298,75 @@ void SpeakerJocko3220::proc15() {
}
}
+SpeakerRocko3230::SpeakerRocko3230() {
+ _speakerName = "Rocko";
+ _color1 = 5;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerRocko3230::proc15() {
+ int v = _fieldF6;
+ Scene3230 *scene = (Scene3230 *)R2_GLOBALS._sceneManager._scene;
+
+ if (!_object2) {
+ _object2 = &scene->_actor1;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4111, (_object2->_strip * 2) - 1, 1);
+ _object1.animate(ANIM_MODE_5, this);
+ }
+}
+
+SpeakerJocko3230::SpeakerJocko3230() {
+ _speakerName = "Jocko";
+ _color1 = 45;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerJocko3230::proc15() {
+ int v = _fieldF6;
+ Scene3230 *scene = (Scene3230 *)R2_GLOBALS._sceneManager._scene;
+
+ if (!_object2) {
+ _object2 = &scene->_actor2;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4060, (_object2->_strip * 2) - 1, 1);
+ _object1.animate(ANIM_MODE_5, this);
+ }
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.h b/engines/tsage/ringworld2/ringworld2_speakers.h
index fef7003..71933f3 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.h
+++ b/engines/tsage/ringworld2/ringworld2_speakers.h
@@ -325,6 +325,21 @@ public:
virtual void proc15();
};
+class SpeakerRocko3230 : public VisualSpeaker {
+public:
+ SpeakerRocko3230();
+
+ virtual Common::String getClassName() { return "SpeakerRocko3230"; }
+ virtual void proc15();
+};
+
+class SpeakerJocko3230 : public VisualSpeaker {
+public:
+ SpeakerJocko3230();
+
+ virtual Common::String getClassName() { return "SpeakerJocko3230"; }
+ virtual void proc15();
+};
} // End of namespace Ringworld2
} // End of namespace TsAGE
Commit: e6a671b555500de4f870d73cbd785e40f76d0d33
https://github.com/scummvm/scummvm/commit/e6a671b555500de4f870d73cbd785e40f76d0d33
Author: Strangerke (strangerke at scummvm.org)
Date: 2011-12-22T09:35:28-08:00
Commit Message:
TSAGE: R2R - Implement scene 3240
Changed paths:
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
engines/tsage/ringworld2/ringworld2_speakers.cpp
engines/tsage/ringworld2/ringworld2_speakers.h
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 3503765..0f43704 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -196,6 +196,8 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Cutscene : Guards on duty
return new Scene3230();
case 3240:
+ // Cutscene : Teal monolog
+ return new Scene3240();
case 3245:
case 3250:
case 3255:
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index a07076b..3265911 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -1028,5 +1028,33 @@ void Scene3230::postInit(SceneObjectList *OwnerList) {
void Scene3230::signal() {
R2_GLOBALS._sceneManager.changeScene(1200);
}
+
+/*--------------------------------------------------------------------------
+ * Scene 3240 - Cutscene : Teal monolog
+ *
+ *--------------------------------------------------------------------------*/
+void Scene3240::postInit(SceneObjectList *OwnerList) {
+ loadScene(3240);
+ R2_GLOBALS._v58CE2 = 0;
+ SceneExt::postInit();
+
+ _stripManager.addSpeaker(&_tealSpeaker);
+ _stripManager.addSpeaker(&_webbsterSpeaker);
+ _stripManager.addSpeaker(&_mirandaSpeaker);
+
+ R2_GLOBALS._player.postInit();
+ R2_GLOBALS._player.hide();
+ R2_GLOBALS._player.disableControl();
+
+ _actor1.postInit();
+ _actor2.postInit();
+
+ setAction(&_sequenceManager, this, 3240 + R2_GLOBALS._randomSource.getRandomNumber(1), &_actor1, &_actor2, NULL);
+}
+
+void Scene3240::signal() {
+ R2_GLOBALS._sceneManager.changeScene(1200);
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index 6bff8bc..d652788 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -236,6 +236,19 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};
+
+class Scene3240 : public SceneExt {
+public:
+ SpeakerTeal3240 _tealSpeaker;
+ SpeakerWebbster3240 _webbsterSpeaker;
+ SpeakerMiranda2500 _mirandaSpeaker;
+ SceneActor _actor1;
+ SceneActor _actor2;
+ SequenceManager _sequenceManager;
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void signal();
+};
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp
index 4c0494c..a14d3ea 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -1368,5 +1368,75 @@ void SpeakerJocko3230::proc15() {
}
}
+SpeakerTeal3240::SpeakerTeal3240() {
+ _speakerName = "Teal";
+ _color1 = 22;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerTeal3240::proc15() {
+ int v = _fieldF6;
+ Scene3240 *scene = (Scene3240 *)R2_GLOBALS._sceneManager._scene;
+
+ if (!_object2) {
+ _object2 = &scene->_actor1;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4070, (_object2->_strip * 2) - 1, 1);
+ _object1.animate(ANIM_MODE_5, this);
+ }
+}
+
+SpeakerWebbster3240::SpeakerWebbster3240() {
+ _speakerName = "Webbster";
+ _color1 = 10;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerWebbster3240::proc15() {
+ int v = _fieldF6;
+ Scene3240 *scene = (Scene3240 *)R2_GLOBALS._sceneManager._scene;
+
+ if (!_object2) {
+ _object2 = &scene->_actor2;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ _object1.setup(4110, 5, 1);
+ _object1.animate(ANIM_MODE_5, this);
+ }
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.h b/engines/tsage/ringworld2/ringworld2_speakers.h
index 71933f3..bb49b98 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.h
+++ b/engines/tsage/ringworld2/ringworld2_speakers.h
@@ -340,6 +340,22 @@ public:
virtual Common::String getClassName() { return "SpeakerJocko3230"; }
virtual void proc15();
};
+
+class SpeakerTeal3240 : public VisualSpeaker {
+public:
+ SpeakerTeal3240();
+
+ virtual Common::String getClassName() { return "SpeakerTeal3240"; }
+ virtual void proc15();
+};
+
+class SpeakerWebbster3240 : public VisualSpeaker {
+public:
+ SpeakerWebbster3240();
+
+ virtual Common::String getClassName() { return "SpeakerWebbster3240"; }
+ virtual void proc15();
+};
} // End of namespace Ringworld2
} // End of namespace TsAGE
Commit: cdd9ab3b70da5abe287cc5ef4baa0c5b40e3bfd4
https://github.com/scummvm/scummvm/commit/cdd9ab3b70da5abe287cc5ef4baa0c5b40e3bfd4
Author: Strangerke (strangerke at scummvm.org)
Date: 2011-12-22T09:35:30-08:00
Commit Message:
TSAGE: R2R - Implement scene 3245
Changed paths:
engines/tsage/globals.cpp
engines/tsage/globals.h
engines/tsage/ringworld2/ringworld2_logic.cpp
engines/tsage/ringworld2/ringworld2_scenes3.cpp
engines/tsage/ringworld2/ringworld2_scenes3.h
engines/tsage/ringworld2/ringworld2_speakers.cpp
engines/tsage/ringworld2/ringworld2_speakers.h
diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp
index da40485..c9518fa 100644
--- a/engines/tsage/globals.cpp
+++ b/engines/tsage/globals.cpp
@@ -387,6 +387,7 @@ void Ringworld2Globals::reset() {
for (int i = 0; i < 14; i++)
_v56605[i] = 0;
_v56AA0 = 0;
+ _v56AA1 = 0;
_v57C2C = 0;
_v58CE2 = 0;
Common::fill(&_v565F1[0], &_v565F1[MAX_CHARACTERS], 0);
@@ -428,6 +429,7 @@ void Ringworld2Globals::synchronize(Serializer &s) {
s.syncAsByte(_v565AE);
s.syncAsByte(_v56AA0);
+ s.syncAsByte(_v56AA1);
for (i = 0; i < 14; ++i)
s.syncAsByte(_v56605[i]);
diff --git a/engines/tsage/globals.h b/engines/tsage/globals.h
index 7e40276..89ad418 100644
--- a/engines/tsage/globals.h
+++ b/engines/tsage/globals.h
@@ -253,6 +253,7 @@ public:
byte _v565AE;
byte _v56605[14];
byte _v56AA0;
+ byte _v56AA1;
int _v57C2C;
int _v58CE2;
int _speechSubtitles;
diff --git a/engines/tsage/ringworld2/ringworld2_logic.cpp b/engines/tsage/ringworld2/ringworld2_logic.cpp
index 0f43704..f7dcc56 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -199,6 +199,8 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
// Cutscene : Teal monolog
return new Scene3240();
case 3245:
+ // Cutscene : Discussions with Dr. Tomko
+ return new Scene3245();
case 3250:
case 3255:
case 3260:
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index 3265911..aa7361b 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -1056,5 +1056,39 @@ void Scene3240::signal() {
R2_GLOBALS._sceneManager.changeScene(1200);
}
+/*--------------------------------------------------------------------------
+ * Scene 3245 - Cutscene : Discussions with Dr. Tomko
+ *
+ *--------------------------------------------------------------------------*/
+void Scene3245::postInit(SceneObjectList *OwnerList) {
+ loadScene(3245);
+ R2_GLOBALS._v58CE2 = 0;
+ SceneExt::postInit();
+
+ _stripManager.addSpeaker(&_ralfSpeaker);
+ _stripManager.addSpeaker(&_tomkoSpeaker);
+
+ R2_GLOBALS._player.postInit();
+ R2_GLOBALS._player.hide();
+ R2_GLOBALS._player.disableControl();
+
+ _actor1.postInit();
+ _actor2.postInit();
+
+ if (R2_GLOBALS._v56AA1 < 4)
+ ++R2_GLOBALS._v56AA1;
+
+ if (R2_GLOBALS._v56AA1 >= 4) {
+ SceneItem::display(1200, 7, 0, 280, 1, 160, 9, 1, 2, 20, 7, 7, -999);
+ signal();
+ } else {
+ setAction(&_sequenceManager, this, 3244 + R2_GLOBALS._v56AA1, &_actor1, &_actor2, NULL);
+ }
+}
+
+void Scene3245::signal() {
+ R2_GLOBALS._sceneManager.changeScene(1200);
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.h b/engines/tsage/ringworld2/ringworld2_scenes3.h
index d652788..96fa65e 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -249,6 +249,18 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void signal();
};
+
+class Scene3245 : public SceneExt {
+public:
+ SpeakerRalf3245 _ralfSpeaker;
+ SpeakerTomko3245 _tomkoSpeaker;
+ SceneActor _actor1;
+ SceneActor _actor2;
+ SequenceManager _sequenceManager;
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void signal();
+};
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.cpp b/engines/tsage/ringworld2/ringworld2_speakers.cpp
index a14d3ea..619b1c2 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -1438,5 +1438,101 @@ void SpeakerWebbster3240::proc15() {
}
}
+SpeakerRalf3245::SpeakerRalf3245() {
+ _speakerName = "Ralf";
+ _color1 = 5;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerRalf3245::proc15() {
+ int v = _fieldF6;
+ Scene3245 *scene = (Scene3245 *)R2_GLOBALS._sceneManager._scene;
+
+ if (!_object2) {
+ _object2 = &scene->_actor1;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ switch (_object2->_visage) {
+ case 3100:
+ _object1.setup(4105, (_object2->_strip * 2) - 1, 1);
+ break;
+ case 3101:
+ _object1.setup(4108, (_object2->_strip * 2) - 1, 1);
+ break;
+ case 3102:
+ _object1.setup(4109, (_object2->_strip * 2) - 1, 1);
+ break;
+ default:
+ break;
+ }
+
+ _object1.animate(ANIM_MODE_5, this);
+ }
+}
+
+SpeakerTomko3245::SpeakerTomko3245() {
+ _speakerName = "Tomko";
+ _color1 = 10;
+ _color2 = 0;
+ _fieldF6 = 0;
+ _textWidth = 300;
+ _hideObjects = false;
+ _object2 = NULL;
+ _displayMode = 1;
+ _numFrames = 0;
+}
+
+void SpeakerTomko3245::proc15() {
+ int v = _fieldF6;
+ Scene3245 *scene = (Scene3245 *)R2_GLOBALS._sceneManager._scene;
+
+ if (!_object2) {
+ _object2 = &scene->_actor2;
+ _object2->hide();
+ _object1.postInit();
+ _object1.setPosition(_object2->_position);
+
+ if (_object2->_mover)
+ _object2->addMover(NULL);
+ }
+
+ if (v == 0) {
+ _object1.animate(ANIM_MODE_2, NULL);
+ } else {
+ ((SceneItem *)_action)->_sceneRegionId = 0;
+ switch (_object2->_visage) {
+ case 3100:
+ _object1.setup(4105, (_object2->_strip * 2) - 1, 1);
+ break;
+ case 3101:
+ _object1.setup(4108, (_object2->_strip * 2) - 1, 1);
+ break;
+ case 3102:
+ _object1.setup(4109, (_object2->_strip * 2) - 1, 1);
+ break;
+ default:
+ break;
+ }
+
+ _object1.animate(ANIM_MODE_5, this);
+ }
+}
+
} // End of namespace Ringworld2
} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld2/ringworld2_speakers.h b/engines/tsage/ringworld2/ringworld2_speakers.h
index bb49b98..e6a1819 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.h
+++ b/engines/tsage/ringworld2/ringworld2_speakers.h
@@ -356,6 +356,22 @@ public:
virtual Common::String getClassName() { return "SpeakerWebbster3240"; }
virtual void proc15();
};
+
+class SpeakerRalf3245 : public VisualSpeaker {
+public:
+ SpeakerRalf3245();
+
+ virtual Common::String getClassName() { return "SpeakerRalf3245"; }
+ virtual void proc15();
+};
+
+class SpeakerTomko3245 : public VisualSpeaker {
+public:
+ SpeakerTomko3245();
+
+ virtual Common::String getClassName() { return "SpeakerTomko3245"; }
+ virtual void proc15();
+};
} // End of namespace Ringworld2
} // End of namespace TsAGE
More information about the Scummvm-git-logs
mailing list