aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2016-08-25 02:46:08 +0200
committerWillem Jan Palenstijn2016-08-25 02:46:08 +0200
commit6890948f748d6b3c63314d8756b03bc4ec8660f8 (patch)
treeb6dd28dd4490d9047c4cab0ed00d3202e4f446af
parent224704ec8807ebaabc80b12dd9c60b666ffa11df (diff)
downloadscummvm-rg350-6890948f748d6b3c63314d8756b03bc4ec8660f8.tar.gz
scummvm-rg350-6890948f748d6b3c63314d8756b03bc4ec8660f8.tar.bz2
scummvm-rg350-6890948f748d6b3c63314d8756b03bc4ec8660f8.zip
DIRECTOR: Improve decoding compressed images
-rw-r--r--engines/director/frame.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 7412031245..078f4eba60 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -577,8 +577,12 @@ Image::ImageDecoder *Frame::getImageFrom(uint16 spriteId) {
if (pic->size() * 8 == w1 * h) {
debugC(3, kDebugImages, "Disabling compression for %d: %d x %d", imgId, w1, h);
img = new BITDDecoder(w1, h, false);
- } else
- img = new BITDDecoder(w /*+ 8*/, h, true);
+ } else if (w % 16 <= 8) {
+ // FIXME: This shouldn't actually increase the width of the surface, probably, but only affect the decoder
+ img = new BITDDecoder(w + 8, h, true);
+ } else {
+ img = new BITDDecoder(w, h, true);
+ }
} else {
img = new BITDDecoder(w, h, true);
}