[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.480,2.481 gfx.h,1.123,1.124
kirben
kirben at users.sourceforge.net
Sun Jan 1 01:52:01 CET 2006
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19091/scumm
Modified Files:
gfx.cpp gfx.h
Log Message:
Add additional drawStrip case for HE games.
Fixes glitches over key in Darkroom of freddi3.
Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.480
retrieving revision 2.481
diff -u -d -r2.480 -r2.481
--- gfx.cpp 20 Dec 2005 06:55:00 -0000 2.480
+++ gfx.cpp 1 Jan 2006 09:51:06 -0000 2.481
@@ -1777,7 +1777,7 @@
if (code <= 10) {
switch (code) {
case 1:
- unkDecode7(dst, dstPitch, src, numLinesToProcess);
+ drawStripRaw(dst, dstPitch, src, numLinesToProcess, false);
break;
case 2:
@@ -1817,47 +1817,90 @@
} else {
_decomp_shr = code % 10;
_decomp_mask = 0xFF >> (8 - _decomp_shr);
- code /= 10;
switch (code) {
- case 1:
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ case 18:
drawStripBasicV(dst, dstPitch, src, numLinesToProcess, false);
break;
- case 2:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ case 28:
drawStripBasicH(dst, dstPitch, src, numLinesToProcess, false);
break;
- case 3:
+ case 34:
+ case 35:
+ case 36:
+ case 37:
+ case 38:
useOrDecompress = true;
drawStripBasicV(dst, dstPitch, src, numLinesToProcess, true);
break;
- case 4:
+ case 44:
+ case 45:
+ case 46:
+ case 47:
+ case 48:
useOrDecompress = true;
drawStripBasicH(dst, dstPitch, src, numLinesToProcess, true);
break;
- case 6:
- case 10:
+ case 64:
+ case 65:
+ case 66:
+ case 67:
+ case 68:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
drawStripComplex(dst, dstPitch, src, numLinesToProcess, false);
break;
- case 8:
- case 12:
+ case 84:
+ case 85:
+ case 86:
+ case 87:
+ case 88:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ case 128:
useOrDecompress = true;
drawStripComplex(dst, dstPitch, src, numLinesToProcess, true);
break;
- case 13:
+ case 134:
+ case 135:
+ case 136:
+ case 137:
+ case 138:
drawStripHE(dst, dstPitch, src, 8, numLinesToProcess, false);
break;
- case 14:
+ case 144:
+ case 145:
+ case 146:
+ case 147:
+ case 148:
useOrDecompress = true;
drawStripHE(dst, dstPitch, src, 8, numLinesToProcess, true);
break;
-
+
+ case 149:
+ drawStripRaw(dst, dstPitch, src, numLinesToProcess, true);
+ break;
+
default:
error("Gdi::decompressBitmap: default case %d", code);
}
@@ -2696,20 +2739,24 @@
} \
} while (0)
-void Gdi::unkDecode7(byte *dst, int dstPitch, const byte *src, int height) const {
+void Gdi::drawStripRaw(byte *dst, int dstPitch, const byte *src, int height, const bool transpCheck) const {
+ int x;
if (_vm->_features & GF_OLD256) {
uint h = height;
- int x = 8;
+ x = 8;
for (;;) {
*dst = *src++;
NEXT_ROW;
}
} else {
do {
- memcpy(dst, src, 8);
+ for (x = 0; x < 8; x ++) {
+ byte color = *src++;
+ if (!transpCheck || color != _transparentColor)
+ dst[x] = _roomPalette[color] + _paletteMod;
+ }
dst += dstPitch;
- src += 8;
} while (--height);
}
}
Index: gfx.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.h,v
retrieving revision 1.123
retrieving revision 1.124
diff -u -d -r1.123 -r1.124
--- gfx.h 18 Oct 2005 01:30:20 -0000 1.123
+++ gfx.h 1 Jan 2006 09:51:11 -0000 1.124
@@ -245,7 +245,7 @@
void drawStripBasicH(byte *dst, int dstPitch, const byte *src, int height, const bool transpCheck) const;
void drawStripBasicV(byte *dst, int dstPitch, const byte *src, int height, const bool transpCheck) const;
- void unkDecode7(byte *dst, int dstPitch, const byte *src, int height) const;
+ void drawStripRaw(byte *dst, int dstPitch, const byte *src, int height, const bool transpCheck) const;
void unkDecode8(byte *dst, int dstPitch, const byte *src, int height) const;
void unkDecode9(byte *dst, int dstPitch, const byte *src, int height) const;
void unkDecode10(byte *dst, int dstPitch, const byte *src, int height) const;
More information about the Scummvm-git-logs
mailing list