diff options
author | Max Horn | 2004-09-26 18:09:48 +0000 |
---|---|---|
committer | Max Horn | 2004-09-26 18:09:48 +0000 |
commit | bc5407c15462b0be2bec522805f792295053a01f (patch) | |
tree | 5b9e5ba8c51e0a258bbb818ecf464ead89ef3949 /scumm/akos.cpp | |
parent | b60c95be7caffbc43d0656c9a441c46bbe1ddcc9 (diff) | |
download | scummvm-rg350-bc5407c15462b0be2bec522805f792295053a01f.tar.gz scummvm-rg350-bc5407c15462b0be2bec522805f792295053a01f.tar.bz2 scummvm-rg350-bc5407c15462b0be2bec522805f792295053a01f.zip |
fix actor masking with V7_SMOOTH_SCROLLING_HACK enabled
svn-id: r15301
Diffstat (limited to 'scumm/akos.cpp')
-rw-r--r-- | scumm/akos.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/scumm/akos.cpp b/scumm/akos.cpp index 66396f1a86..c866dc4969 100644 --- a/scumm/akos.cpp +++ b/scumm/akos.cpp @@ -511,8 +511,8 @@ void AkosRenderer::codec1_genericDecode() { height = _height; scaleytab = &v1.scaletable[v1.scaleYindex]; - maskbit = revBitMask[v1.x & 7]; - mask = v1.mask_ptr + v1.x / 8; + maskbit = revBitMask[(v1.x + _vm->virtscr[0].xstart) & 7]; + mask = _vm->getMaskBuffer(v1.x, v1.y, _zbuf); if (len) goto StartPos; @@ -532,7 +532,7 @@ void AkosRenderer::codec1_genericDecode() { return; } } else { - masked = (y < 0 || y >= _outheight) || (v1.mask_ptr && (*mask & maskbit)); + masked = (y < 0 || y >= _outheight) || (*mask & maskbit); if (color && !masked && !skip_column) { pcolor = palette[color]; @@ -566,14 +566,14 @@ void AkosRenderer::codec1_genericDecode() { v1.x += v1.scaleXstep; if (v1.x < 0 || v1.x >= _outwidth) return; - maskbit = revBitMask[v1.x & 7]; + maskbit = revBitMask[(v1.x + _vm->virtscr[0].xstart) & 7]; v1.destptr += v1.scaleXstep; skip_column = false; } else skip_column = true; v1.scaleXindex += v1.scaleXstep; dst = v1.destptr; - mask = v1.mask_ptr + v1.x / 8; + mask = _vm->getMaskBuffer(v1.x, v1.y, _zbuf); } StartPos:; } while (--len); @@ -928,8 +928,6 @@ byte AkosRenderer::codec1(int xmoveCur, int ymoveCur) { v1.destptr = _outptr + v1.y * _outwidth + v1.x; - v1.mask_ptr = _vm->getMaskBuffer(0, v1.y, _zbuf); - codec1_genericDecode(); return drawFlag; |