diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/director/frame.cpp | 8 |
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); } |