diff options
author | Matthew Hoops | 2010-12-11 18:38:27 +0000 |
---|---|---|
committer | Matthew Hoops | 2010-12-11 18:38:27 +0000 |
commit | b1e3b48418e2514893768ecf8a6ba0db61b9302e (patch) | |
tree | f8754abe1a04fc9a1c96d615c76c7bf4070d65f7 | |
parent | 36851d4eb4a4b9fe3f717aee24ab4f10e14ac725 (diff) | |
download | scummvm-rg350-b1e3b48418e2514893768ecf8a6ba0db61b9302e.tar.gz scummvm-rg350-b1e3b48418e2514893768ecf8a6ba0db61b9302e.tar.bz2 scummvm-rg350-b1e3b48418e2514893768ecf8a6ba0db61b9302e.zip |
MOHAWK: Fix some Myst ME cards that store PICT images in WDIB resources (see myst 4013)
svn-id: r54867
-rw-r--r-- | engines/mohawk/graphics.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/engines/mohawk/graphics.cpp b/engines/mohawk/graphics.cpp index 8812b2edb2..30478bf74b 100644 --- a/engines/mohawk/graphics.cpp +++ b/engines/mohawk/graphics.cpp @@ -323,15 +323,17 @@ MohawkSurface *MystGraphics::decodeImage(uint16 id) { // The PICT resource exists. However, it could still contain a MystBitmap // instead of a PICT image... dataStream = _vm->getResource(ID_PICT, id); + } else // No PICT, so the WDIB must exist. Let's go grab it. + dataStream = _vm->getResource(ID_WDIB, id); + if (_vm->getFeatures() & GF_ME) { // Here we detect whether it's really a PICT or a WDIB. Since a MystBitmap // would be compressed, there's no way to detect for the BM without a hack. // So, we search for the PICT version opcode for detection. dataStream->seek(512 + 10); // 512 byte pict header isPict = (dataStream->readUint32BE() == 0x001102FF); dataStream->seek(0); - } else // No PICT, so the WDIB must exist. Let's go grab it. - dataStream = _vm->getResource(ID_WDIB, id); + } if (isPict) mhkSurface = new MohawkSurface(_pictDecoder->decodeImage(dataStream)); |