[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.12,2.13
Max Horn
fingolfin at users.sourceforge.net
Mon Dec 30 20:37:03 CET 2002
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv10001
Modified Files:
gfx.cpp
Log Message:
more cleanup
Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.12
retrieving revision 2.13
diff -u -d -r2.12 -r2.13
--- gfx.cpp 31 Dec 2002 04:19:46 -0000 2.12
+++ gfx.cpp 31 Dec 2002 04:36:14 -0000 2.13
@@ -980,8 +980,6 @@
void Gdi::decompressBitmap(byte *bgbak_ptr, byte *smap_ptr, int numLinesToProcess)
{
- _useOrDecompress = false;
-
byte code = *smap_ptr++;
assert(numLinesToProcess);
@@ -990,10 +988,16 @@
else
_palette_mod = 0;
+ _useOrDecompress = false;
_decomp_shr = code % 10;
_decomp_mask = 0xFF >> (8 - _decomp_shr);
+
+ // Note that some of the decoders exist in pairs: one honors _transparency, the other not.
+ // The pairs are:
+ // unkDecode1 <-> unkDecode3
+ // unkDecode2 <-> unkDecode5
+ // unkDecode4 <-> unkDecode6
-//printf("decompressBitmap codec %d\n", code);
switch (code) {
case 1:
unkDecode7(bgbak_ptr, smap_ptr, numLinesToProcess);
@@ -1054,19 +1058,6 @@
case 66:
case 67:
case 68:
- unkDecode1(bgbak_ptr, smap_ptr, numLinesToProcess);
- break;
-
- case 84:
- case 85:
- case 86:
- case 87:
- case 88:
- _useOrDecompress = true;
- unkDecode3(bgbak_ptr, smap_ptr, numLinesToProcess);
- break;
-
- /* New since version 6 */
case 104:
case 105:
case 106:
@@ -1075,7 +1066,11 @@
unkDecode1(bgbak_ptr, smap_ptr, numLinesToProcess);
break;
- /* New since version 6 */
+ case 84:
+ case 85:
+ case 86:
+ case 87:
+ case 88:
case 124:
case 125:
case 126:
@@ -1263,14 +1258,15 @@
FILL_BITS;
*dst++ = color + _palette_mod;
- againPos:;
-
+ againPos:
if (!READ_BIT) {
} else if (READ_BIT) {
incm = (bits & 7) - 4;
cl -= 3;
bits >>= 3;
- if (!incm) {
+ if (incm) {
+ color += incm;
+ } else {
FILL_BITS;
reps = bits & 0xFF;
do {
@@ -1285,8 +1281,6 @@
bits >>= 8;
bits |= (*src++) << (cl - 8);
goto againPos;
- } else {
- color += incm;
}
} else {
FILL_BITS;
@@ -1348,11 +1342,10 @@
*dst = color + _palette_mod;
dst++;
- againPos:;
+ againPos:
if (!READ_BIT) {
} else if (READ_BIT) {
incm = (bits & 7) - 4;
-
cl -= 3;
bits >>= 3;
if (incm) {
@@ -1491,22 +1484,22 @@
#define NEXT_ROW \
dst += _vm->_realWidth; \
- if (--h == 0) { \
+ if (--h == 0) { \
if (!--_currentX) \
return; \
dst -= _vertStripNextInc; \
- h = height; \
+ h = height; \
}
void Gdi::unkDecode7(byte *dst, byte *src, int height)
{
+printf("unkDecode7(%d)\n", height);
uint h = height;
if (_vm->_features & GF_OLD256) {
_currentX = 8;
for (;;) {
- byte color = *src++;
- *dst = color;
+ *dst = *src++;
NEXT_ROW
}
return;
More information about the Scummvm-git-logs
mailing list