[Scummvm-cvs-logs] SF.net SVN: scummvm:[47873] scummvm/trunk/engines/sci/graphics
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Thu Feb 4 12:54:48 CET 2010
Revision: 47873
http://scummvm.svn.sourceforge.net/scummvm/?rev=47873&view=rev
Author: m_kiewitz
Date: 2010-02-04 11:54:48 +0000 (Thu, 04 Feb 2010)
Log Message:
-----------
SCI: fix support for cels that are larger than 64k (sierra logo animation in sq6)
Modified Paths:
--------------
scummvm/trunk/engines/sci/graphics/view.cpp
scummvm/trunk/engines/sci/graphics/view.h
Modified: scummvm/trunk/engines/sci/graphics/view.cpp
===================================================================
--- scummvm/trunk/engines/sci/graphics/view.cpp 2010-02-04 07:44:13 UTC (rev 47872)
+++ scummvm/trunk/engines/sci/graphics/view.cpp 2010-02-04 11:54:48 UTC (rev 47873)
@@ -284,11 +284,11 @@
}
}
-void View::unpackCel(int16 loopNo, int16 celNo, byte *outPtr, uint16 pixelCount) {
+void View::unpackCel(int16 loopNo, int16 celNo, byte *outPtr, uint32 pixelCount) {
CelInfo *celInfo = getCelInfo(loopNo, celNo);
byte *rlePtr;
byte *literalPtr;
- uint16 pixelNo = 0, runLength;
+ uint32 pixelNo = 0, runLength;
byte pixel;
if (celInfo->offsetEGA) {
@@ -297,7 +297,7 @@
while (pixelNo < pixelCount) {
pixel = *literalPtr++;
runLength = pixel >> 4;
- memset(outPtr + pixelNo, pixel & 0x0F, MIN<uint16>(runLength, pixelCount - pixelNo));
+ memset(outPtr + pixelNo, pixel & 0x0F, MIN<uint32>(runLength, pixelCount - pixelNo));
pixelNo += runLength;
}
return;
@@ -332,7 +332,7 @@
outPtr[pixelNo++] = *rlePtr++;
break;
case 0x80: // fill with color
- memset(outPtr + pixelNo, *rlePtr++, MIN<uint16>(runLength, pixelCount - pixelNo));
+ memset(outPtr + pixelNo, *rlePtr++, MIN<uint32>(runLength, pixelCount - pixelNo));
pixelNo += runLength;
break;
case 0xC0: // fill with transparent
@@ -355,7 +355,7 @@
outPtr[pixelNo++] = *literalPtr++;
break;
case 0x80: // fill with color
- memset(outPtr + pixelNo, *literalPtr++, MIN<uint16>(runLength, pixelCount - pixelNo));
+ memset(outPtr + pixelNo, *literalPtr++, MIN<uint32>(runLength, pixelCount - pixelNo));
pixelNo += runLength;
break;
case 0xC0: // fill with transparent
Modified: scummvm/trunk/engines/sci/graphics/view.h
===================================================================
--- scummvm/trunk/engines/sci/graphics/view.h 2010-02-04 07:44:13 UTC (rev 47872)
+++ scummvm/trunk/engines/sci/graphics/view.h 2010-02-04 11:54:48 UTC (rev 47873)
@@ -72,7 +72,7 @@
private:
void initData(GuiResourceId resourceId);
- void unpackCel(int16 loopNo, int16 celNo, byte *outPtr, uint16 pixelCount);
+ void unpackCel(int16 loopNo, int16 celNo, byte *outPtr, uint32 pixelCount);
void unditherBitmap(byte *bitmap, int16 width, int16 height, byte clearKey);
ResourceManager *_resMan;
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