aboutsummaryrefslogtreecommitdiff
path: root/scumm/akos.cpp
diff options
context:
space:
mode:
authorMax Horn2004-09-26 18:09:48 +0000
committerMax Horn2004-09-26 18:09:48 +0000
commitbc5407c15462b0be2bec522805f792295053a01f (patch)
tree5b9e5ba8c51e0a258bbb818ecf464ead89ef3949 /scumm/akos.cpp
parentb60c95be7caffbc43d0656c9a441c46bbe1ddcc9 (diff)
downloadscummvm-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.cpp12
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;