[Scummvm-cvs-logs] scummvm master -> 1838fed419940dd6bed95414b05ca8ee6c6abbe9

dreammaster dreammaster at scummvm.org
Sun Oct 2 11:47:29 CEST 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:
1838fed419 TSAGE: Implemented Blue Force scene 210 - Car Training


Commit: 1838fed419940dd6bed95414b05ca8ee6c6abbe9
    https://github.com/scummvm/scummvm/commit/1838fed419940dd6bed95414b05ca8ee6c6abbe9
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-10-02T02:40:32-07:00

Commit Message:
TSAGE: Implemented Blue Force scene 210 - Car Training

Changed paths:
    engines/tsage/blue_force/blueforce_logic.cpp
    engines/tsage/blue_force/blueforce_scenes2.cpp
    engines/tsage/blue_force/blueforce_scenes2.h



diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
index 15d68ae..22c1c4e 100644
--- a/engines/tsage/blue_force/blueforce_logic.cpp
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -80,9 +80,11 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
 		// Front of Police Station
 		return new Scene190();
 	case 200:
-		// Credits #2
+		// Credits - Motorcycle Training
 		return new Scene200();
 	case 210:
+		// Credits - Car Training
+		return new Scene210();
 	case 220:
 	case 225:
 	case 265:
diff --git a/engines/tsage/blue_force/blueforce_scenes2.cpp b/engines/tsage/blue_force/blueforce_scenes2.cpp
index 1f45a86..04e452f 100644
--- a/engines/tsage/blue_force/blueforce_scenes2.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes2.cpp
@@ -35,7 +35,9 @@ namespace BlueForce {
 
 void Scene200::Action1::signal() {
 	Scene200 *scene = (Scene200 *)BF_GLOBALS._sceneManager._scene;
+	SceneObject *owner = static_cast<SceneObject *>(this->_owner);
 	static const uint32 black = 0;
+	assert(owner);
 
 	switch (_actionIndex++) {
 	case 0:
@@ -49,12 +51,12 @@ void Scene200::Action1::signal() {
 		break;
 	case 2:
 		assert(_owner);
-		static_cast<SceneObject *>(_owner)->animate(ANIM_MODE_5, this);
+		owner->animate(ANIM_MODE_5, this);
 		break;
 	case 3:
 		if (++_state < 2) {
 			scene->_action2.signal();
-			static_cast<SceneObject *>(_owner)->setFrame(1);
+			owner->setFrame(1);
 			_actionIndex = 2;
 		}
 		setDelay(2);
@@ -80,7 +82,8 @@ void Scene200::Action1::signal() {
 
 void Scene200::Action2::signal() {
 	SceneObject *owner = static_cast<SceneObject *>(this->_owner);
-	
+	assert(owner);
+
 	switch (_actionIndex++) {
 	case 1:
 		owner->setPosition(owner->_position);
@@ -128,13 +131,89 @@ void Scene200::postInit(SceneObjectList *OwnerList) {
 	_object11.setVisage(200);
 	_object11.setPosition(Common::Point(96, 112), 1000);
 	_object11.setStrip(3);
-	_object11.setFrame(1);
+	_object11.setFrame(1); 
 	_object11.changeZoom(100);
 
 	_object10.setAction(&_action1);
 	_object11.setAction(&_action2);
 }
 
+void Scene200::remove() {
+	BF_GLOBALS._scenePalette.clearListeners();
+	SceneExt::remove();
+}
+
+/*--------------------------------------------------------------------------
+ * Scene 200 - Credits - Car Training
+ *
+ *--------------------------------------------------------------------------*/
+
+void Scene210::Action1::signal() {
+	Scene210 *scene = (Scene210 *)BF_GLOBALS._sceneManager._scene;
+	SceneObject *owner = static_cast<SceneObject *>(_owner);
+	assert(owner);
+
+	switch (_actionIndex++) {
+	case 0:
+		setDelay(1);
+		break;
+	case 1:
+		owner->animate(ANIM_MODE_5, this);
+		break;
+	case 2: {
+		PaletteRotation *rot;
+		rot = BF_GLOBALS._scenePalette.addRotation(64, 79, 1);
+		rot->setDelay(10);
+		rot = BF_GLOBALS._scenePalette.addRotation(96, 111, 1);
+		rot->setDelay(10);
+		
+		scene->setAction(&scene->_sequenceManager, this, 210, &scene->_object10, &scene->_object11,
+			&scene->_object12, &scene->_object13, &scene->_object14, &scene->_object15, NULL);
+		break;
+	}
+	case 3:
+		BF_GLOBALS._sceneManager.changeScene(220);
+		break;
+	default:
+		break;
+	}
+}
+
+/*--------------------------------------------------------------------------*/
+
+void Scene210::postInit(SceneObjectList *OwnerList) {
+	SceneExt::postInit();
+	loadScene(210);
+	BF_GLOBALS._scenePalette.loadPalette(235);
+	BF_GLOBALS._scenePalette.refresh();
+
+	_object9.postInit();
+	_object9.setVisage(210);
+	_object9.setPosition(Common::Point(146, 151));
+	_object9.setStrip(1);
+	_object9.setFrame(1);
+	_object9.changeZoom(100);
+	_object9.setAction(&_action1);
+
+	_object10.postInit();
+	_object10.hide();
+	_object11.postInit();
+	_object11.hide();
+	_object12.postInit();
+	_object12.hide();
+	_object13.postInit();
+	_object13.hide();
+	_object14.postInit();
+	_object14.hide();
+	_object15.postInit();
+	_object15.hide();
+}
+
+void Scene210::remove() {
+	BF_GLOBALS._scenePalette.clearListeners();
+	SceneExt::remove();
+}
+
 } // End of namespace BlueForce
 
 } // End of namespace TsAGE
diff --git a/engines/tsage/blue_force/blueforce_scenes2.h b/engines/tsage/blue_force/blueforce_scenes2.h
index c405d9e..29ced67 100644
--- a/engines/tsage/blue_force/blueforce_scenes2.h
+++ b/engines/tsage/blue_force/blueforce_scenes2.h
@@ -55,6 +55,28 @@ public:
 	NamedObject  _object7, _object8, _object9, _object10, _object11;
 
 	virtual void postInit(SceneObjectList *OwnerList = NULL);
+	virtual void remove();
+};
+
+class Scene210: public SceneExt {
+	/* Actions */
+	class Action1: public ActionExt {
+	public:
+		virtual void signal();
+	};
+	class Action2: public Action {
+	public:
+		virtual void signal();
+	};
+public:
+	SequenceManager _sequenceManager;
+	Action1 _action1;
+	NamedObject _object1, _object2, _object3, _object4, _object5, _object6;
+	NamedObject  _object7, _object8, _object9, _object10, _object11;
+	NamedObject _object12, _object13, _object14, _object15;
+
+	virtual void postInit(SceneObjectList *OwnerList = NULL);
+	virtual void remove();
 };
 
 } // End of namespace BlueForce






More information about the Scummvm-git-logs mailing list