[Scummvm-cvs-logs] CVS: scummvm/scumm script_v5.cpp,1.69,1.70 script_v6.cpp,1.104,1.105 gfx.cpp,2.71,2.72

Max Horn fingolfin at users.sourceforge.net
Wed May 7 15:57:03 CEST 2003


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv1014

Modified Files:
	script_v5.cpp script_v6.cpp gfx.cpp 
Log Message:
Patch #733099: DIG: Experimental camera fix (should fix bugs #716350 and #659158)

Index: script_v5.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v5.cpp,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- script_v5.cpp	5 May 2003 09:25:07 -0000	1.69
+++ script_v5.cpp	7 May 2003 22:56:06 -0000	1.70
@@ -1348,7 +1348,9 @@
 	startScene(a->room, a, obj);
 	_vars[VAR_WALKTO_OBJ] = 0;
 
-	camera._dest.x = camera._cur.x = a->x;
+	// FIXME: Can this be removed?
+	camera._cur.x = a->x;
+
 	setCameraAt(a->x, a->y);
 	setCameraFollows(a);
 

Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -d -r1.104 -r1.105
--- script_v6.cpp	4 May 2003 18:28:32 -0000	1.104
+++ script_v6.cpp	7 May 2003 22:56:06 -0000	1.105
@@ -953,6 +953,7 @@
 		int x, y;
 
 		camera._follows = 0;
+		_vars[VAR_CAMERA_FOLLOWED_ACTOR] = 0;
 
 		y = pop();
 		x = pop();

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.71
retrieving revision 2.72
diff -u -d -r2.71 -r2.72
--- gfx.cpp	4 May 2003 03:27:55 -0000	2.71
+++ gfx.cpp	7 May 2003 22:56:06 -0000	2.72
@@ -1958,6 +1958,8 @@
 		clampCameraPos(&camera._cur);
 
 		camera._dest = camera._cur;
+		_vars[VAR_CAMERA_DEST_X] = camera._dest.x;
+		_vars[VAR_CAMERA_DEST_Y] = camera._dest.y;
 
 		assert(camera._cur.x >= (_realWidth / 2) && camera._cur.y >= (_realHeight / 2));
 
@@ -1996,6 +1998,7 @@
 		int ax, ay;
 
 		camera._follows = a->number;
+		_vars[VAR_CAMERA_FOLLOWED_ACTOR] = a->number;
 
 		if (!a->isInCurrentRoom()) {
 			startScene(a->getRoom(), 0, 0);
@@ -2072,8 +2075,8 @@
 		}
 
 		if (camera._movingToActor) {
-			camera._dest.x = a->x;
-			camera._dest.y = a->y;
+			_vars[VAR_CAMERA_DEST_X] = camera._dest.x = a->x;
+			_vars[VAR_CAMERA_DEST_Y] = camera._dest.y = a->y;
 		}
 
 		assert(camera._cur.x >= (_realWidth / 2) && camera._cur.y >= (_realHeight / 2));
@@ -2131,12 +2134,6 @@
 			_vars[VAR_CAMERA_POS_X] = camera._cur.x;
 			_vars[VAR_CAMERA_POS_Y] = camera._cur.y;
 
-			_vars[VAR_CAMERA_DEST_X] = camera._dest.x;
-
-			_vars[VAR_CAMERA_DEST_Y] = camera._dest.y;
-
-			_vars[VAR_CAMERA_FOLLOWED_ACTOR] = camera._follows;
-
 			if (_vars[VAR_SCROLL_SCRIPT])
 				runScript(_vars[VAR_SCROLL_SCRIPT], 0, 0, 0);
 		}
@@ -2252,9 +2249,9 @@
 void Scumm::panCameraTo(int x, int y) {
 	if (_features & GF_AFTER_V7) {
 
-		camera._follows = 0;
-		camera._dest.x = x;
-		camera._dest.y = y;
+		_vars[VAR_CAMERA_FOLLOWED_ACTOR] = camera._follows = 0;
+		_vars[VAR_CAMERA_DEST_X] = camera._dest.x = x;
+		_vars[VAR_CAMERA_DEST_Y] = camera._dest.y = y;
 	} else {
 
 		camera._dest.x = x;





More information about the Scummvm-git-logs mailing list