[Scummvm-cvs-logs] SF.net SVN: scummvm: [27918] scummvm/trunk/engines/parallaction/disk.cpp
Kirben at users.sourceforge.net
Kirben at users.sourceforge.net
Thu Jul 5 09:39:54 CEST 2007
Revision: 27918
http://scummvm.svn.sourceforge.net/scummvm/?rev=27918&view=rev
Author: Kirben
Date: 2007-07-05 00:39:53 -0700 (Thu, 05 Jul 2007)
Log Message:
-----------
Skip DLTA frames for now, when loading character face data in the Amiga multi-lingual version. To prevent reading past the end of data.
Modified Paths:
--------------
scummvm/trunk/engines/parallaction/disk.cpp
Modified: scummvm/trunk/engines/parallaction/disk.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/disk.cpp 2007-07-05 06:38:54 UTC (rev 27917)
+++ scummvm/trunk/engines/parallaction/disk.cpp 2007-07-05 07:39:53 UTC (rev 27918)
@@ -699,26 +699,32 @@
byte s0, s1, s2, s3, s4, mask, t0, t1, t2, t3, t4;
for (uint32 i = 0; i < numFrames; i++) {
- for (uint32 j = 0; j < planeSize; j++) {
- s0 = src[j];
- s1 = src[j+planeSize];
- s2 = src[j+planeSize*2];
- s3 = src[j+planeSize*3];
- s4 = src[j+planeSize*4];
+ if (READ_BE_UINT32(src) == MKID_BE('DLTA')) {
+ // TODO: Add support for delta encoding
+ uint32 size = READ_BE_UINT32(src + 4);
- for (uint32 k = 0; k < 8; k++) {
- mask = 1 << (7 - k);
- t0 = (s0 & mask ? 1 << 0 : 0);
- t1 = (s1 & mask ? 1 << 1 : 0);
- t2 = (s2 & mask ? 1 << 2 : 0);
- t3 = (s3 & mask ? 1 << 3 : 0);
- t4 = (s4 & mask ? 1 << 4 : 0);
- *dst++ = t0 | t1 | t2 | t3 | t4;
+ src += size + 8;
+ } else {
+ for (uint32 j = 0; j < planeSize; j++) {
+ s0 = src[j];
+ s1 = src[j+planeSize];
+ s2 = src[j+planeSize*2];
+ s3 = src[j+planeSize*3];
+ s4 = src[j+planeSize*4];
+
+ for (uint32 k = 0; k < 8; k++) {
+ mask = 1 << (7 - k);
+ t0 = (s0 & mask ? 1 << 0 : 0);
+ t1 = (s1 & mask ? 1 << 1 : 0);
+ t2 = (s2 & mask ? 1 << 2 : 0);
+ t3 = (s3 & mask ? 1 << 3 : 0);
+ t4 = (s4 & mask ? 1 << 4 : 0);
+ *dst++ = t0 | t1 | t2 | t3 | t4;
+ }
+
}
-
+ src += planeSize * NUM_PLANES;
}
-
- src += planeSize * NUM_PLANES;
}
}
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