[Scummvm-cvs-logs] scummvm master -> 877b6e9b1d5ca0cb47e1845c57cc7340b924a5eb

Strangerke Strangerke at scummvm.org
Thu Dec 22 07:45:26 CET 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
877b6e9b1d TSAGE: R2R - Implement scene 3210


Commit: 877b6e9b1d5ca0cb47e1845c57cc7340b924a5eb
    https://github.com/scummvm/scummvm/commit/877b6e9b1d5ca0cb47e1845c57cc7340b924a5eb
Author: Strangerke (strangerke at scummvm.org)
Date: 2011-12-21T22:44:58-08:00

Commit Message:
TSAGE: R2R - Implement scene 3210

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 386d09f..0844a48 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -184,9 +184,11 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
 		// Autopsy room
 		return new Scene3175();
 	case 3200:
-		// Cutscene : Guard discussion
+		// Cutscene : Cutscene : Rocko & co - Discussion
 		return new Scene3200();
 	case 3210:
+		// Cutscene : Captain and Private - Discussion
+		return new Scene3210();
 	case 3220:
 	case 3230:
 	case 3240:
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index c73cb85..8ea83a2 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -924,7 +924,7 @@ void Scene3175::signal() {
 }
 
 /*--------------------------------------------------------------------------
- * Scene 3200 - Cutscene : Guard discussion
+ * Scene 3200 - Cutscene : Rocko & co - Discussion
  *
  *--------------------------------------------------------------------------*/
 void Scene3200::postInit(SceneObjectList *OwnerList) {
@@ -951,5 +951,30 @@ void Scene3200::signal() {
 	R2_GLOBALS._sceneManager.changeScene(1200);
 }
 
+/*--------------------------------------------------------------------------
+ * Scene 3210 - Cutscene : Captain and Private - Discussion
+ *
+ *--------------------------------------------------------------------------*/
+void Scene3210::postInit(SceneObjectList *OwnerList) {
+	loadScene(3210);
+	R2_GLOBALS._v58CE2 = 0;
+	SceneExt::postInit();
+
+	_stripManager.addSpeaker(&_privateSpeaker);
+	_stripManager.addSpeaker(&_captainSpeaker);
+
+	R2_GLOBALS._player.postInit();
+	R2_GLOBALS._player.hide();
+	R2_GLOBALS._player.disableControl();
+
+	_actor1.postInit();
+	_actor2.postInit();
+
+	setAction(&_sequenceManager, this, 3210 + R2_GLOBALS._randomSource.getRandomNumber(1), &_actor1, &_actor2, NULL);
+}
+
+void Scene3210::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 58ba4cc..fbb6392 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -199,6 +199,18 @@ public:
 	virtual void postInit(SceneObjectList *OwnerList = NULL);
 	virtual void signal();
 };
+
+class Scene3210 : public SceneExt {
+public:
+	SpeakerCaptain3210 _captainSpeaker;
+	SpeakerPrivate3210 _privateSpeaker;
+	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 b3a15a8..80ac04c 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -1158,5 +1158,75 @@ void SpeakerSocko3200::proc15() {
 	}
 }
 
+SpeakerCaptain3210::SpeakerCaptain3210() {
+	_speakerName = "Captain";
+	_color1 = 5;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
+
+void SpeakerCaptain3210::proc15() {
+	int v = _fieldF6;
+	Scene3210 *scene = (Scene3210 *)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);
+	}
+}
+
+SpeakerPrivate3210::SpeakerPrivate3210() {
+	_speakerName = "Private";
+	_color1 = 45;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
+
+void SpeakerPrivate3210::proc15() {
+	int v = _fieldF6;
+	Scene3210 *scene = (Scene3210 *)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 38a097b..66edd67 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.h
+++ b/engines/tsage/ringworld2/ringworld2_speakers.h
@@ -293,6 +293,22 @@ public:
 	virtual void proc15();
 };
 
+class SpeakerCaptain3210 : public VisualSpeaker {
+public:
+	SpeakerCaptain3210();
+
+	virtual Common::String getClassName() { return "SpeakerCaptain3210"; }
+	virtual void proc15();
+};
+
+class SpeakerPrivate3210 : public VisualSpeaker {
+public:
+	SpeakerPrivate3210();
+
+	virtual Common::String getClassName() { return "SpeakerPrivate3210"; }
+	virtual void proc15();
+};
+
 } // End of namespace Ringworld2
 } // End of namespace TsAGE
 






More information about the Scummvm-git-logs mailing list