aboutsummaryrefslogtreecommitdiff
path: root/engines/m4/sprite.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2010-06-20 07:04:58 +0000
committerPaul Gilbert2010-06-20 07:04:58 +0000
commitfcdb7807a456f5a6cb94932977a1b0e4f0e11089 (patch)
treeb34c46eae56a405dbe0f3ec6d62af1fbc3202916 /engines/m4/sprite.cpp
parentd6cd656f15aed3ac3b8428442f9397944e6b2c85 (diff)
downloadscummvm-rg350-fcdb7807a456f5a6cb94932977a1b0e4f0e11089.tar.gz
scummvm-rg350-fcdb7807a456f5a6cb94932977a1b0e4f0e11089.tar.bz2
scummvm-rg350-fcdb7807a456f5a6cb94932977a1b0e4f0e11089.zip
Implemented explicit transparency index support - the previous hardcoded index of 0 wasn't correct, since some sprites need that index
svn-id: r50070
Diffstat (limited to 'engines/m4/sprite.cpp')
-rw-r--r--engines/m4/sprite.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/engines/m4/sprite.cpp b/engines/m4/sprite.cpp
index 0ff4bec855..da043c695f 100644
--- a/engines/m4/sprite.cpp
+++ b/engines/m4/sprite.cpp
@@ -131,6 +131,9 @@ void M4Sprite::loadMadsSprite(Common::SeekableReadStream* source) {
byte cmd1, cmd2, count, pixel;
if (newLine) {
+ if (outp < (lineStart + w))
+ Common::set_to(outp, lineStart + w, TRANSPARENT_COLOUR_INDEX);
+
outp = lineStart + w;
lineStart = outp;
newLine = false;
@@ -150,7 +153,7 @@ void M4Sprite::loadMadsSprite(Common::SeekableReadStream* source) {
} else {
pixel = source->readByte();
while (count--)
- *outp++ = (pixel == 0xFD) ? 0 : pixel;
+ *outp++ = (pixel == 0xFD) ? TRANSPARENT_COLOUR_INDEX : pixel;
}
}
} else {
@@ -162,19 +165,17 @@ void M4Sprite::loadMadsSprite(Common::SeekableReadStream* source) {
count = source->readByte();
pixel = source->readByte();
while (count--)
- *outp++ = (pixel == 0xFD) ? 0 : pixel;
+ *outp++ = (pixel == 0xFD) ? TRANSPARENT_COLOUR_INDEX : pixel;
} else {
- *outp++ = (cmd2 == 0xFD) ? 0 : cmd2;
+ *outp++ = (cmd2 == 0xFD) ? TRANSPARENT_COLOUR_INDEX : cmd2;
}
}
}
}
}
-byte M4Sprite::getTransparentColor() const {
- // FIXME: We assume that the transparent color is the color of the
- // top left pixel.
- return *getBasePtr(0, 0);
+byte M4Sprite::getTransparencyIndex() const {
+ return TRANSPARENT_COLOUR_INDEX;
}
} // End of namespace M4