[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.314,2.315 scumm.cpp,1.219,1.220

Max Horn fingolfin at users.sourceforge.net
Mon Sep 20 12:59:06 CEST 2004


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

Modified Files:
	gfx.cpp scumm.cpp 
Log Message:
Fix for bug #1031390 (FOA: Graphical corruption and possible crash in Atlantis Map)

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.314
retrieving revision 2.315
diff -u -d -r2.314 -r2.315
--- gfx.cpp	20 Sep 2004 19:32:26 -0000	2.314
+++ gfx.cpp	20 Sep 2004 19:58:07 -0000	2.315
@@ -2743,10 +2743,27 @@
 	if (!(_features & GF_NEW_CAMERA))
 		camera._last.x = camera._cur.x;
 
+	if (_switchRoomEffect >= 130 && _switchRoomEffect <= 133) {
+		// We're going to use scrollEffect(), so we'll need a copy of
+		// the current VirtScreen zero.
+
+		free(_scrollBuffer);
+		_scrollBuffer = (byte *) malloc(vs->h * vs->w);
+
+		byte *src = vs->getPixels(0, 0);
+		byte *dst = _scrollBuffer;
+
+		for (int y = 0; y < vs->h; y++) {
+			memcpy(dst, src, vs->w);
+			src += vs->pitch;
+			dst += vs->w;
+		}
+	}
+
+
 	if (_screenEffectFlag && effect != 0) {
 	
 		// Fill screen 0 with black
-		
 		memset(vs->getPixels(0, 0), 0, vs->pitch * vs->h);
 	
 		// Fade to black with the specified effect, if any.

Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.219
retrieving revision 1.220
diff -u -d -r1.219 -r1.220
--- scumm.cpp	20 Sep 2004 12:56:07 -0000	1.219
+++ scumm.cpp	20 Sep 2004 19:58:07 -0000	1.220
@@ -2328,25 +2328,6 @@
 
 	runExitScript();
 
-	if (_switchRoomEffect >= 130 && _switchRoomEffect <= 133) {
-		// We're going to use scrollEffect(), so we'll need a copy of
-		// the current VirtScreen zero.
-
-		VirtScreen *vs = &virtscr[0];
-
-		free(_scrollBuffer);
-		_scrollBuffer = (byte *) malloc(vs->h * vs->w);
-
-		byte *src = vs->getPixels(0, 0);
-		byte *dst = _scrollBuffer;
-
-		for (int y = 0; y < vs->h; y++) {
-			memcpy(dst, src, vs->w);
-			src += vs->pitch;
-			dst += vs->w;
-		}
-	}
-
 	killScriptsAndResources();
 	clearEnqueue();
 	if (_version >= 4 && _heversion <= 60)





More information about the Scummvm-git-logs mailing list