[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