diff options
author | Paweł Kołodziejski | 2003-08-18 17:59:06 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2003-08-18 17:59:06 +0000 |
commit | 8141126e6e0d4fccfb7f992266b14618d00156d0 (patch) | |
tree | 21bce79ea718e9532f3d671ba71b0fbb78ba561e | |
parent | c9b054462532325548d02ee01e147d2b3e991b40 (diff) | |
download | scummvm-rg350-8141126e6e0d4fccfb7f992266b14618d00156d0.tar.gz scummvm-rg350-8141126e6e0d4fccfb7f992266b14618d00156d0.tar.bz2 scummvm-rg350-8141126e6e0d4fccfb7f992266b14618d00156d0.zip |
fixed y position of mask in v1 costume rendering
svn-id: r9767
-rw-r--r-- | scumm/costume.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/scumm/costume.cpp b/scumm/costume.cpp index cf10e252b8..e72c495098 100644 --- a/scumm/costume.cpp +++ b/scumm/costume.cpp @@ -360,6 +360,7 @@ void CostumeRenderer::procC64(int actor) { } v1.skip_width >>= 3; + const byte *mask_ptr = v1.mask_ptr; if (len) goto StartPos; @@ -376,7 +377,7 @@ void CostumeRenderer::procC64(int actor) { color = *src++; if (y < _outheight) { -#define MASK_AT(xoff) (v1.mask_ptr && ((v1.mask_ptr[(v1.x+xoff) >> 3] | v1.mask_ptr[((v1.x+xoff) >> 3) + v1.imgbufoffs]) & revBitMask[(v1.x+xoff) & 7])) +#define MASK_AT(xoff) (mask_ptr && ((mask_ptr[(v1.x+xoff) >> 3] | mask_ptr[((v1.x+xoff) >> 3) + v1.imgbufoffs]) & revBitMask[(v1.x+xoff) & 7])) if (!_mirror) { pcolor = (color >> 0) & 3; if (pcolor) { if (!MASK_AT(0)) dst[0] = palette[pcolor]; if (!MASK_AT(1)) dst[1] = palette[pcolor]; } pcolor = (color >> 2) & 3; if (pcolor) { if (!MASK_AT(2)) dst[2] = palette[pcolor]; if (!MASK_AT(3)) dst[3] = palette[pcolor]; } @@ -392,6 +393,7 @@ void CostumeRenderer::procC64(int actor) { } dst += _outwidth; y++; + mask_ptr += _numStrips; if (!--height) { if (!--v1.skip_width) return; @@ -400,6 +402,7 @@ void CostumeRenderer::procC64(int actor) { v1.x += 8 * v1.scaleXstep; if (v1.x < 0 || v1.x >= _vm->_screenWidth) return; + mask_ptr = v1.mask_ptr + (v1.x >> 3); v1.destptr += 8 * v1.scaleXstep; dst = v1.destptr; } |