[Scummvm-cvs-logs] SF.net SVN: scummvm:[48665] scummvm/trunk

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Fri Apr 16 13:00:13 CEST 2010


Revision: 48665
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48665&view=rev
Author:   fingolfin
Date:     2010-04-16 11:00:13 +0000 (Fri, 16 Apr 2010)

Log Message:
-----------
Fix for bug #2987895: "DW2: graphical errors in video on Windows"

Modified Paths:
--------------
    scummvm/trunk/NEWS
    scummvm/trunk/engines/tinsel/bmv.cpp

Modified: scummvm/trunk/NEWS
===================================================================
--- scummvm/trunk/NEWS	2010-04-16 10:59:23 UTC (rev 48664)
+++ scummvm/trunk/NEWS	2010-04-16 11:00:13 UTC (rev 48665)
@@ -12,7 +12,10 @@
  KYRA:
    - Fixed a bug which caused the DOS versions to crash before the credits when AdLib
      music is selected.
-	 
+
+ Tinsel:
+   - Fix video playback regression in Discworld 2.
+
  PSP port: (Also forgot to mention in 1.1.0)
    - Added plugin support which allows the PSP Phat to run every game.
    - Added a new virtual keyboard optimized for rapid D-Pad input.

Modified: scummvm/trunk/engines/tinsel/bmv.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/bmv.cpp	2010-04-16 10:59:23 UTC (rev 48664)
+++ scummvm/trunk/engines/tinsel/bmv.cpp	2010-04-16 11:00:13 UTC (rev 48665)
@@ -232,17 +232,8 @@
 		}
 
 		switch (loopCtr) {
-		case 1:
+		case 1: {
 			// @_rDelta:
-#if 1
-			if (forwardDirection) {
-				memcpy(dst, dst + ebx, byteLen);
-				dst += byteLen;
-			} else {
-				dst -= byteLen;
-				memcpy(dst + 1, dst + ebx + 1, byteLen);
-			}
-#else
 			const byte *saved_src = src;			// Save the source pointer
 			src = dst + ebx;			// Point it to existing data
 
@@ -254,45 +245,23 @@
 			}
 
 			src = saved_src;
-#endif
 			break;
+			}
 
 		case 2:
 			// @_rRaw
 			// Copy data from source to dest
-#if 1
-			if (forwardDirection) {
-				memcpy(dst, src, byteLen);
-				dst += byteLen;
-				src += byteLen;
-			} else {
-				dst -= byteLen;
-				src -= byteLen;
-				memcpy(dst + 1, src + 1, byteLen);
-			}
-#else
 			while (byteLen > 0) {
 				*dst = *src;
 				NEXT_BYTE(src);
 				NEXT_BYTE(dst);
 				--byteLen;
 			}
-#endif
 			break;
 
 		case 3:
 			// @_rRun
 			// Repeating run of data
-#if 1
-			if (forwardDirection) {
-				memset(dst, *(dst - 1), byteLen);
-				dst += byteLen;
-			} else {
-				eax = *(dst + 1);
-				dst -= byteLen;
-				memset(dst + 1, eax, byteLen);
-			}
-#else
 			eax = forwardDirection ? *(dst - 1) : *(dst + 1);
 
 			while (byteLen > 0) {
@@ -300,7 +269,6 @@
 				NEXT_BYTE(dst);
 				--byteLen;
 			}
-#endif
 			break;
 		default:
 			break;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list