[Scummvm-cvs-logs] CVS: scummvm/scumm charset.cpp,2.114,2.115 gfx.cpp,2.363,2.364 gfx.h,1.91,1.92
Travis Howell
kirben at users.sourceforge.net
Tue Oct 5 02:45:25 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5929/scumm
Modified Files:
charset.cpp gfx.cpp gfx.h
Log Message:
Allow color adjustment when decompressing wizImages.
Index: charset.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/charset.cpp,v
retrieving revision 2.114
retrieving revision 2.115
diff -u -d -r2.114 -r2.115
--- charset.cpp 5 Oct 2004 05:52:48 -0000 2.114
+++ charset.cpp 5 Oct 2004 09:39:39 -0000 2.115
@@ -1331,6 +1331,9 @@
src = dst;
src.moveTo(0, 0);
+ memset(_vm->gdi._wizImagePalette, 255, sizeof(_vm->gdi._wizImagePalette));
+ memcpy(_vm->gdi._wizImagePalette, _vm->_charsetColorMap, 16);
+
_vm->gdi.decompressWizImage(dstPtr, vs->w, dst, charPtr, src);
if (_blitAlso && vs->hasTwoBuffers)
Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.363
retrieving revision 2.364
diff -u -d -r2.363 -r2.364
--- gfx.cpp 5 Oct 2004 05:52:48 -0000 2.363
+++ gfx.cpp 5 Oct 2004 09:39:39 -0000 2.364
@@ -583,16 +583,14 @@
*/
void ScummEngine::redrawBGAreas() {
int i;
- int val;
int diff;
+ int val = 0;;
bool cont = true;
if (!(_features & GF_NEW_CAMERA))
if (camera._cur.x != camera._last.x && _charset->_hasMask && (_version > 3 && _gameId != GID_PASS))
stopTalk();
- val = 0;
-
if (_heversion >= 70) {
byte *room = getResourceAddress(rtRoomImage, _roomResource) + _IM00_offs;
if (findResource(MKID('BMAP'), room) != NULL) {
@@ -1479,6 +1477,9 @@
if (calcClipRects(dstw, dsth, srcx, srcy, srcw, srch, rect, r1, r2)) {
if (r1.isValidRect() && r2.isValidRect()) {
uint8 *dstPtr = dst + r2.left + r2.top * dstw;
+ for (int i = 0; i < 256; i++)
+ _wizImagePalette[i] = i;
+
decompressWizImage(dstPtr, dstw, r2, src, r1);
}
}
@@ -1491,6 +1492,7 @@
uint8 databit;
int h, w, xoff;
uint16 off;
+ int color;
dstPtr = dst;
dataPtr = src;
@@ -1558,26 +1560,28 @@
databit = code & 1;
code >>= 1;
if (databit) {
-dec_sub1: dstPtr += code;
+dec_sub1: dstPtr += code;
w -= code;
} else {
databit = code & 1;
code = (code >> 1) + 1;
if (databit) {
-dec_sub2: w -= code;
+dec_sub2: w -= code;
if (w < 0) {
code += w;
}
- memset(dstPtr, *dataPtr++, code);
+ color = _wizImagePalette[*dataPtr++];
+ memset(dstPtr, color, code);
dstPtr += code;
} else {
-dec_sub3: w -= code;
+dec_sub3: w -= code;
if (w < 0) {
code += w;
}
- memcpy(dstPtr, dataPtr, code);
- dstPtr += code;
- dataPtr += code;
+ while (code--) {
+ color = _wizImagePalette[*dataPtr++];
+ *dstPtr++ = color;
+ }
}
}
}
Index: gfx.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.h,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -d -r1.91 -r1.92
--- gfx.h 4 Oct 2004 14:39:42 -0000 1.91
+++ gfx.h 5 Oct 2004 09:39:39 -0000 1.92
@@ -207,6 +207,8 @@
ScummEngine *_vm;
public:
+ byte _wizImagePalette[256];
+
int _numZBuffer;
int _imgBufOffs[8];
int32 _numStrips;
More information about the Scummvm-git-logs
mailing list