[Scummvm-cvs-logs] scummvm master -> d49ffde8eae1fd311e4c0f800e9a5bad57381204

Strangerke Strangerke at scummvm.org
Thu Dec 22 00:31:23 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:
d49ffde8ea TSAGE: R2R - Implement scene 3200


Commit: d49ffde8eae1fd311e4c0f800e9a5bad57381204
    https://github.com/scummvm/scummvm/commit/d49ffde8eae1fd311e4c0f800e9a5bad57381204
Author: Strangerke (strangerke at scummvm.org)
Date: 2011-12-21T15:30:49-08:00

Commit Message:
TSAGE: R2R - Implement scene 3200

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 d84e4eb..386d09f 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.cpp
+++ b/engines/tsage/ringworld2/ringworld2_logic.cpp
@@ -184,6 +184,8 @@ Scene *Ringworld2Game::createScene(int sceneNumber) {
 		// Autopsy room
 		return new Scene3175();
 	case 3200:
+		// Cutscene : Guard discussion
+		return new Scene3200();
 	case 3210:
 	case 3220:
 	case 3230:
diff --git a/engines/tsage/ringworld2/ringworld2_scenes3.cpp b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
index cdb4bee..c73cb85 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.cpp
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.cpp
@@ -923,5 +923,33 @@ void Scene3175::signal() {
 		R2_GLOBALS._player.enableControl();
 }
 
+/*--------------------------------------------------------------------------
+ * Scene 3200 - Cutscene : Guard discussion
+ *
+ *--------------------------------------------------------------------------*/
+void Scene3200::postInit(SceneObjectList *OwnerList) {
+	loadScene(3200);
+	R2_GLOBALS._v58CE2 = 0;
+	SceneExt::postInit();
+
+	_stripManager.addSpeaker(&_rockoSpeaker);
+	_stripManager.addSpeaker(&_jockoSpeaker);
+	_stripManager.addSpeaker(&_sockoSpeaker);
+
+	R2_GLOBALS._player.postInit();
+	R2_GLOBALS._player.hide();
+	R2_GLOBALS._player.disableControl();
+
+	_actor1.postInit();
+	_actor3.postInit();
+	_actor2.postInit();
+
+	setAction(&_sequenceManager, this, 3200 + R2_GLOBALS._randomSource.getRandomNumber(1), &_actor1, &_actor2, &_actor3, NULL);
+}
+
+void Scene3200::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 67c430c..58ba4cc 100644
--- a/engines/tsage/ringworld2/ringworld2_scenes3.h
+++ b/engines/tsage/ringworld2/ringworld2_scenes3.h
@@ -185,6 +185,20 @@ public:
 	virtual void postInit(SceneObjectList *OwnerList = NULL);
 	virtual void signal();
 };
+
+class Scene3200 : public SceneExt {
+public:
+	SpeakerRocko3200 _rockoSpeaker;
+	SpeakerJocko3200 _jockoSpeaker;
+	SpeakerSocko3200 _sockoSpeaker;
+	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 3ec1df4..b3a15a8 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.cpp
+++ b/engines/tsage/ringworld2/ringworld2_speakers.cpp
@@ -27,6 +27,7 @@
 #include "tsage/staticres.h"
 #include "tsage/ringworld2/ringworld2_scenes0.h"
 #include "tsage/ringworld2/ringworld2_scenes2.h"
+#include "tsage/ringworld2/ringworld2_scenes3.h"
 
 namespace TsAGE {
 
@@ -1052,5 +1053,110 @@ SpeakerGuard3100::SpeakerGuard3100() {
 	_numFrames = 0;
 }
 
+SpeakerRocko3200::SpeakerRocko3200() {
+	_speakerName = "Rocko";
+	_color1 = 5;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
+
+void SpeakerRocko3200::proc15() {
+	int v = _fieldF6;
+	Scene3200 *scene = (Scene3200 *)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);
+	}
+}
+
+SpeakerJocko3200::SpeakerJocko3200() {
+	_speakerName = "Jocko";
+	_color1 = 45;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
+
+void SpeakerJocko3200::proc15() {
+	int v = _fieldF6;
+	Scene3200 *scene = (Scene3200 *)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);
+	}
+}
+
+SpeakerSocko3200::SpeakerSocko3200() {
+	_speakerName = "Socko";
+	_color1 = 10;
+	_color2 = 0;
+	_fieldF6 = 0;
+	_textWidth = 300;
+	_hideObjects = false;
+	_object2 = NULL;
+	_displayMode = 1;
+	_numFrames = 0;
+}
+
+void SpeakerSocko3200::proc15() {
+	int v = _fieldF6;
+	Scene3200 *scene = (Scene3200 *)R2_GLOBALS._sceneManager._scene;
+
+	if (!_object2) {
+		_object2 = &scene->_actor3;
+		_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 1d99a54..38a097b 100644
--- a/engines/tsage/ringworld2/ringworld2_speakers.h
+++ b/engines/tsage/ringworld2/ringworld2_speakers.h
@@ -268,6 +268,31 @@ public:
 
 	virtual Common::String getClassName() { return "SpeakerGuard3100"; }
 };
+
+class SpeakerRocko3200 : public VisualSpeaker {
+public:
+	SpeakerRocko3200();
+
+	virtual Common::String getClassName() { return "SpeakerRocko3200"; }
+	virtual void proc15();
+};
+
+class SpeakerJocko3200 : public VisualSpeaker {
+public:
+	SpeakerJocko3200();
+
+	virtual Common::String getClassName() { return "SpeakerJocko3200"; }
+	virtual void proc15();
+};
+
+class SpeakerSocko3200 : public VisualSpeaker {
+public:
+	SpeakerSocko3200();
+
+	virtual Common::String getClassName() { return "SpeakerSocko3200"; }
+	virtual void proc15();
+};
+
 } // End of namespace Ringworld2
 } // End of namespace TsAGE
 






More information about the Scummvm-git-logs mailing list