diff options
Diffstat (limited to 'engines/sludge/imgloader.cpp')
-rw-r--r-- | engines/sludge/imgloader.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/sludge/imgloader.cpp b/engines/sludge/imgloader.cpp index bfac7fa5da..002e8501b0 100644 --- a/engines/sludge/imgloader.cpp +++ b/engines/sludge/imgloader.cpp @@ -44,10 +44,22 @@ bool ImgLoader::loadImage(Common::SeekableReadStream *stream, Graphics::Surface return true; } -bool ImgLoader::loadPNGImage(Common::SeekableReadStream *stream, Graphics::Surface *dest) { +bool ImgLoader::loadPNGImage(Common::SeekableReadStream *stream, Graphics::Surface *dest, bool checkSig) { ::Image::PNGDecoder png; + + // set skip signature + if (!checkSig) { + png.setSkipSignature(true); + } + if (!png.loadStream(*stream)) return false; + + // set value back + if (!checkSig) { + png.setSkipSignature(false); + } + const Graphics::Surface *sourceSurface = png.getSurface(); Graphics::Surface *pngSurface = sourceSurface->convertTo(*g_sludge->getScreenPixelFormat(), png.getPalette()); dest->copyFrom(*pngSurface); |