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

dreammaster dreammaster at scummvm.org
Wed Sep 28 13:31:03 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:
d85f0b7d45 TSAGE: Implemented Blue Force scene 620


Commit: d85f0b7d45e11e26df1699bc9fd7f1846f5d0d23
    https://github.com/scummvm/scummvm/commit/d85f0b7d45e11e26df1699bc9fd7f1846f5d0d23
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-09-28T04:24:27-07:00

Commit Message:
TSAGE: Implemented Blue Force scene 620

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



diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
index b0f3b21..e79068b 100644
--- a/engines/tsage/blue_force/blueforce_logic.cpp
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -147,7 +147,8 @@ Scene *BlueForceGame::createScene(int sceneNumber) {
 		// Crash cut-scene
 		return new Scene600();
 	case 620:
-		error("Scene group 6 not implemented");
+		// Hospital cut-scene
+		return new Scene620();
 	case 666:
 		// Death scene
 		return new Scene666();
diff --git a/engines/tsage/blue_force/blueforce_scenes6.cpp b/engines/tsage/blue_force/blueforce_scenes6.cpp
index 5c48de3..327bfde 100644
--- a/engines/tsage/blue_force/blueforce_scenes6.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes6.cpp
@@ -132,6 +132,110 @@ void Scene600::signal() {
 }
 
 /*--------------------------------------------------------------------------
+ * Scene 620 - Hospital cut-scene
+ *
+ *--------------------------------------------------------------------------*/
+
+void Scene620::postInit(SceneObjectList *OwnerList) {
+	SceneExt::postInit();
+	loadScene(999);
+	
+	BF_GLOBALS._player.postInit();
+	BF_GLOBALS._player.disableControl();
+	BF_GLOBALS._player.setVisage(621);
+	BF_GLOBALS._player.setPosition(Common::Point(47, 96));
+
+	static const uint32 black = 0;
+	sub15DD6((const byte *)&black, 2, 621, this);
+}
+
+void Scene620::signal() {
+	static const uint32 black = 0;
+
+	switch (_sceneMode++) {
+	case 0:
+	case 3:
+	case 9:
+	case 12:
+		_timer1.set(60, this);
+		break;
+	case 1:
+	case 4:
+	case 7:
+	case 10:
+	case 13:
+	case 16:
+	case 19:
+		addFader((const byte *)&black, 2, this);	
+		break;
+	case 2:
+		BF_GLOBALS._player.remove();
+		_object1.postInit();
+		_object1.setVisage(622);
+		_object1.setPosition(Common::Point(101, 41));
+		addFader((const byte *)&black, 2, this);	
+		break;
+	case 5:
+		_object1.remove();
+
+		_object2.postInit();
+		_object2.setVisage(623);
+		_object2.setPosition(Common::Point(216, 4));
+		sub15DD6((const byte *)&black, 2, 623, this);
+		break;
+	case 6:
+		_object2.animate(ANIM_MODE_5, this);
+		break;
+	case 8:
+		_object2.remove();
+
+		_object3.postInit();
+		_object3.setVisage(624);
+		_object3.setFrame(1);
+		_object3.setPosition(Common::Point(28, 88));
+		sub15DD6((const byte *)&black, 2, 624, this);
+		break;
+	case 11:
+		_object3.remove();
+
+		_object4.postInit();
+		_object4.setVisage(625);
+		_object4.setPosition(Common::Point(168, 8));
+		sub15DD6((const byte *)&black, 2, 625, this);
+		break;
+	case 14:
+		_object4.remove();
+
+		_object5.postInit();
+		_object5.setVisage(626);
+		_object5.setPosition(Common::Point(249, 183));
+		sub15DD6((const byte *)&black, 2, 626, this);
+		break;
+	case 15:
+		_object5.animate(ANIM_MODE_5, this);
+		break;
+	case 17:
+		_object5.remove();
+
+		_object6.postInit();
+		_object6.setVisage(627);
+		_object6.setPosition(Common::Point(65, 24));
+		sub15DD6((const byte *)&black, 2, 627, this);
+		break;
+	case 18:
+		_object6.animate(ANIM_MODE_5, this);
+		break;
+	case 20:
+		_object6.remove();
+		BF_GLOBALS._bookmark = bArrestedDrunk;
+		BF_GLOBALS._v4CEB6 = 0;
+		BF_GLOBALS._dayNumber = 3;
+		BF_GLOBALS._sceneManager.changeScene(271);
+		break;
+	}
+}
+
+/*--------------------------------------------------------------------------
  * Scene 666 - Death Scene
  *
  *--------------------------------------------------------------------------*/
diff --git a/engines/tsage/blue_force/blueforce_scenes6.h b/engines/tsage/blue_force/blueforce_scenes6.h
index 8b97af8..89a7946 100644
--- a/engines/tsage/blue_force/blueforce_scenes6.h
+++ b/engines/tsage/blue_force/blueforce_scenes6.h
@@ -57,6 +57,17 @@ public:
 	virtual void signal();
 };
 
+class Scene620 : public PalettedScene {
+public:
+	SequenceManager _sequenceManager;
+	Timer _timer1;
+	NamedObject _object1, _object2, _object3;
+	NamedObject _object4, _object5, _object6;
+
+	virtual void postInit(SceneObjectList *OwnerList = NULL);
+	virtual void signal();
+};
+
 class Scene666 : public SceneExt {
 	/* Actions */
 	class Action1 : public Action {






More information about the Scummvm-git-logs mailing list