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

dreammaster dreammaster at scummvm.org
Sun Oct 16 05:15:16 CEST 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:
0af554b891 TSAGE: Workaround for script bug in Blue Force using invalid visage rlb indexes.
d8863110e9 TSAGE: Bugfix for infinite recursion when talking to grandma.
1d99d51b28 TSAGE: Workaround for original game bug in BF scene 600.
f3fc6720d1 TSAGE: Bugfixes for fax machine in Lyle's Office


Commit: 0af554b891eb35a222688d5e3df3639afaa3f097
    https://github.com/scummvm/scummvm/commit/0af554b891eb35a222688d5e3df3639afaa3f097
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-10-15T19:54:54-07:00

Commit Message:
TSAGE: Workaround for script bug in Blue Force using invalid visage rlb indexes.

This affects the inspection cut-scene on Day 2

Changed paths:
    engines/tsage/core.cpp




Commit: d8863110e96528b2dc945608b1becbfc0098ad9b
    https://github.com/scummvm/scummvm/commit/d8863110e96528b2dc945608b1becbfc0098ad9b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-10-15T19:54:55-07:00

Commit Message:
TSAGE: Bugfix for infinite recursion when talking to grandma.

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




Commit: 1d99d51b2879f5e7ba45be7e4542eb0a70cb9c8b
    https://github.com/scummvm/scummvm/commit/1d99d51b2879f5e7ba45be7e4542eb0a70cb9c8b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-10-15T19:54:56-07:00

Commit Message:
TSAGE: Workaround for original game bug in BF scene 600.

The global scroll object follower was set to a scene object in this scene, but not reset when the scene ends, resulting in the pointer pointing to a freed object.

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



diff --git a/engines/tsage/blue_force/blueforce_scenes6.cpp b/engines/tsage/blue_force/blueforce_scenes6.cpp
index 86e64aa..e8c9af5 100644
--- a/engines/tsage/blue_force/blueforce_scenes6.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes6.cpp
@@ -131,6 +131,14 @@ void Scene600::signal() {
 	BF_GLOBALS._sceneManager.changeScene(620);
 }
 
+// WORKAROUND: Fix for original game bug where the global scrolling object follower
+// remains set to an object within the scene that is no longer active
+void Scene600::remove() {
+	BF_GLOBALS._scrollFollower = &BF_GLOBALS._player;
+
+	SceneExt::remove();
+}
+
 /*--------------------------------------------------------------------------
  * Scene 620 - Hospital cut-scene
  *
diff --git a/engines/tsage/blue_force/blueforce_scenes6.h b/engines/tsage/blue_force/blueforce_scenes6.h
index 7c35b75..e354e9e 100644
--- a/engines/tsage/blue_force/blueforce_scenes6.h
+++ b/engines/tsage/blue_force/blueforce_scenes6.h
@@ -55,6 +55,7 @@ public:
 
 	virtual void postInit(SceneObjectList *OwnerList = NULL);
 	virtual void signal();
+	virtual void remove();
 };
 
 class Scene620 : public PalettedScene {


Commit: f3fc6720d1c319ad00e5b15cbe7d087831fe807c
    https://github.com/scummvm/scummvm/commit/f3fc6720d1c319ad00e5b15cbe7d087831fe807c
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-10-15T19:54:56-07:00

Commit Message:
TSAGE: Bugfixes for fax machine in Lyle's Office

Changed paths:
    engines/tsage/blue_force/blueforce_scenes8.cpp
    engines/tsage/blue_force/blueforce_scenes8.h



diff --git a/engines/tsage/blue_force/blueforce_scenes8.cpp b/engines/tsage/blue_force/blueforce_scenes8.cpp
index e888bbc..1f8d40c 100644
--- a/engines/tsage/blue_force/blueforce_scenes8.cpp
+++ b/engines/tsage/blue_force/blueforce_scenes8.cpp
@@ -638,7 +638,7 @@ bool Scene810::Object3::startAction(CursorType action, Event &event) {
 	}
 }
 
-bool Scene810::Object4::startAction(CursorType action, Event &event) {
+bool Scene810::FaxMachineInset::startAction(CursorType action, Event &event) {
 	Scene810 *scene = (Scene810 *)BF_GLOBALS._sceneManager._scene;
 
 	switch (action) {
@@ -775,19 +775,27 @@ bool Scene810::FaxMachine::startAction(CursorType action, Event &event) {
 		} else {
 			BF_GLOBALS._player.disableControl();
 			scene->_sceneMode = 8105;
-			ADD_PLAYER_MOVER(67, 111);
+
+			Common::Point destPos(67, 111);
+			PlayerMover *mover = new PlayerMover();
+			BF_GLOBALS._player.addMover(mover, &destPos, scene);
 		}
 		return true;
 	case INV_PRINT_OUT:
-		BF_INVENTORY.setObjectScene(INV_PRINT_OUT, 811);
-		BF_GLOBALS._player.disableControl();
-		scene->_sceneMode = 811;
+		if (BF_INVENTORY.getObjectScene(INV_COBB_RAP) == 1)
+			SceneItem::display2(810, 31);
+		else {
+			BF_INVENTORY.setObjectScene(INV_PRINT_OUT, 811);
+			BF_GLOBALS._player.disableControl();
+			scene->_sceneMode = 811;
 
-		if (BF_GLOBALS._sceneObjects->contains(&scene->_lyle)) {
-			scene->setAction(&scene->_sequenceManager1, scene, BF_GLOBALS.getFlag(onDuty) ? 8108 : 8105,
-				&scene->_object6, NULL);
-		} else {
-			scene->setAction(&scene->_sequenceManager1, scene, 8111, &BF_GLOBALS._player, &scene->_object6, NULL);
+			if (BF_GLOBALS._sceneObjects->contains(&scene->_lyle)) {
+				scene->setAction(&scene->_sequenceManager1, scene, BF_GLOBALS.getFlag(onDuty) ? 8108 : 8105, 
+					&BF_GLOBALS._player, &scene->_object6, NULL);
+			} else {
+				scene->setAction(&scene->_sequenceManager1, scene, 8111, &BF_GLOBALS._player,
+					&scene->_object6, NULL);
+			}
 		}
 		return true;
 	default:
@@ -1108,12 +1116,13 @@ void Scene810::signal() {
 	switch (_sceneMode) {
 	case 811:
 	case 8105:
-		_object4.postInit();
-		_object4.setVisage(810);
-		_object4.setPosition(Common::Point(77, 94));
-		_object4.setStrip(8);
-		_object4.fixPriority(250);
-		BF_GLOBALS._sceneItems.push_back(&_object4);
+		_faxMachineInset.postInit();
+		_faxMachineInset.setVisage(810);
+		_faxMachineInset.setPosition(Common::Point(77, 94));
+		_faxMachineInset.setStrip(8);
+		_faxMachineInset.fixPriority(250);
+		BF_GLOBALS._sceneItems.push_back(&_faxMachineInset);
+		BF_GLOBALS._player.enableControl();
 		break;
 	case 8100:
 		if (BF_GLOBALS.getFlag(examinedFile810)) {
@@ -1230,7 +1239,7 @@ void Scene810::signal() {
 }
 
 void Scene810::process(Event &event) {
-	if (BF_GLOBALS._player._enabled && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
+	if (BF_GLOBALS._player._enabled && !_focusObject && (event.mousePos.y < (BF_INTERFACE_Y - 1))) {
 		// Check if the cursor is on an exit
 		if (_exit.contains(event.mousePos)) {
 			GfxSurface surface = _cursorVisage.getFrame(EXITFRAME_E);
@@ -1253,9 +1262,9 @@ void Scene810::dispatch() {
 		_lyle.updateAngle(BF_GLOBALS._player._position);
 	}
 
-	if (BF_GLOBALS._sceneObjects->contains(&_object4) && (BF_GLOBALS._player._position.x != 67) && 
+	if (BF_GLOBALS._sceneObjects->contains(&_faxMachineInset) && (BF_GLOBALS._player._position.x != 67) && 
 			(BF_GLOBALS._player._position.y != 111)) {
-		_object4.remove();
+		_faxMachineInset.remove();
 	}
 
 	if (!_action) {
diff --git a/engines/tsage/blue_force/blueforce_scenes8.h b/engines/tsage/blue_force/blueforce_scenes8.h
index aa63002..ad223fe 100644
--- a/engines/tsage/blue_force/blueforce_scenes8.h
+++ b/engines/tsage/blue_force/blueforce_scenes8.h
@@ -185,7 +185,7 @@ class Scene810: public SceneExt {
 	public:
 		virtual bool startAction(CursorType action, Event &event);
 	};
-	class Object4: public NamedObject {
+	class FaxMachineInset: public FocusObject {
 	public:
 		virtual bool startAction(CursorType action, Event &event);
 	};
@@ -208,7 +208,7 @@ public:
 	Lyle _lyle;
 	Chair _chair;
 	Object3 _object3;
-	Object4 _object4;
+	FaxMachineInset _faxMachineInset;
 	Object5 _object5;
 	NamedObject _object6;
 	Object7 _object7;






More information about the Scummvm-git-logs mailing list