[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.471.2.6,2.471.2.7 object.cpp,1.253.2.5,1.253.2.6

Robert Göffringmann lavosspawn at users.sourceforge.net
Wed Jan 25 18:24:04 CET 2006


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16002/scumm

Modified Files:
      Tag: branch-0-8-0
	gfx.cpp object.cpp 
Log Message:
backported comi scrolling fix

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.471.2.6
retrieving revision 2.471.2.7
diff -u -d -r2.471.2.6 -r2.471.2.7
--- gfx.cpp	18 Jan 2006 18:07:31 -0000	2.471.2.6
+++ gfx.cpp	26 Jan 2006 02:23:09 -0000	2.471.2.7
@@ -802,24 +802,25 @@
 
 	if (_features & GF_NEW_CAMERA) {
 		diff = camera._cur.x / 8 - camera._last.x / 8;
-		if (!_fullRedraw && diff == 1) {
-			val = 2;
-			redrawBGStrip(gdi._numStrips - 1, 1);
-		} else if (!_fullRedraw && diff == -1) {
-			val = 1;
-			redrawBGStrip(0, 1);
-		} else if (_fullRedraw || diff != 0) {
+		if (_fullRedraw || ABS(diff) >= gdi._numStrips) {
 			_bgNeedsRedraw = false;
 			redrawBGStrip(0, gdi._numStrips);
+		} else if (diff > 0) {
+			val = -diff;
+			redrawBGStrip(gdi._numStrips - diff, diff);
+		} else if (diff < 0) {
+			val = -diff;
+			redrawBGStrip(0, -diff);
 		}
 	} else {
-		if (!_fullRedraw && camera._cur.x - camera._last.x == 8) {
-			val = 2;
+		diff = camera._cur.x - camera._last.x;
+		if (!_fullRedraw && diff == 8) {
+			val = -1;
 			redrawBGStrip(gdi._numStrips - 1, 1);
-		} else if (!_fullRedraw && camera._cur.x - camera._last.x == -8) {
-			val = 1;
+		} else if (!_fullRedraw && diff == -8) {
+			val = +1;
 			redrawBGStrip(0, 1);
-		} else if (_fullRedraw || camera._cur.x != camera._last.x) {
+		} else if (_fullRedraw || diff != 0) {
 			_bgNeedsRedraw = false;
 			_flashlight.isDrawn = false;
 			redrawBGStrip(0, gdi._numStrips);

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.253.2.5
retrieving revision 1.253.2.6
diff -u -d -r1.253.2.5 -r1.253.2.6
--- object.cpp	18 Jan 2006 18:07:32 -0000	1.253.2.5
+++ object.cpp	26 Jan 2006 02:23:13 -0000	1.253.2.6
@@ -477,11 +477,11 @@
 
 	for (a = numstrip = 0; a < width; a++) {
 		tmp = xpos + a;
-		if (arg == 1 && _screenStartStrip != tmp)
+		if (tmp < _screenStartStrip || _screenEndStrip < tmp)
 			continue;
-		if (arg == 2 && _screenEndStrip != tmp)
+		if (arg > 0 && _screenStartStrip + arg <= tmp)
 			continue;
-		if (tmp < _screenStartStrip || tmp > _screenEndStrip)
+		if (arg < 0 && tmp <= _screenEndStrip + arg)
 			continue;
 		setGfxUsageBit(tmp, USAGE_BIT_DIRTY);
 		if (tmp < x)





More information about the Scummvm-git-logs mailing list