aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2005-09-15 10:25:23 +0000
committerTorbjörn Andersson2005-09-15 10:25:23 +0000
commita556889d93c5b4cf4b77c3614474afc18a7fa253 (patch)
tree0938621ef18a8e9758e3656d24ca60e668e6a2e0
parent90bcab800aab762e3bac4d7baaa2d704dc8ec8ec (diff)
downloadscummvm-rg350-a556889d93c5b4cf4b77c3614474afc18a7fa253.tar.gz
scummvm-rg350-a556889d93c5b4cf4b77c3614474afc18a7fa253.tar.bz2
scummvm-rg350-a556889d93c5b4cf4b77c3614474afc18a7fa253.zip
I think this fixes bug #1291074, which is a masking glitch in Amiga v5
games. The mask pointer and maskbit weren't properly updated for the first pixel of each new row. Note that I do not have any of the Amiga games myself, so this fix is based on observing what happens when forcing the PC version of MI2 to use proc3_ami() instead of proc3(). svn-id: r18829
-rw-r--r--scumm/costume.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/scumm/costume.cpp b/scumm/costume.cpp
index f39e41ac18..06e636165d 100644
--- a/scumm/costume.cpp
+++ b/scumm/costume.cpp
@@ -557,7 +557,8 @@ void ClassicCostumeRenderer::proc3_ami(Codec1 &v1) {
if (v1.x != oldXpos) {
dst += _out.pitch - (v1.x - oldXpos);
v1.mask_ptr += _numStrips;
- mask = v1.mask_ptr;
+ mask = v1.mask_ptr + oldXpos / 8;
+ maskbit = revBitMask(oldXpos & 7);
y++;
}
width = _width;