aboutsummaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorperes2013-10-26 22:24:16 +0900
committerperes2013-10-26 22:24:16 +0900
commit92c1ff31d6d8d78e58caa4d123ceb0fea43a48ed (patch)
tree88a89acbd4d4e0c004af9856c626e78d4315df69 /graphics
parent47953d13277fcc177eb18036a037c5b9fbb064f5 (diff)
downloadscummvm-rg350-92c1ff31d6d8d78e58caa4d123ceb0fea43a48ed.tar.gz
scummvm-rg350-92c1ff31d6d8d78e58caa4d123ceb0fea43a48ed.tar.bz2
scummvm-rg350-92c1ff31d6d8d78e58caa4d123ceb0fea43a48ed.zip
GRAPHICS: do not clear the internal state of IFFDecoder on loadStream().
This decoder needs to keep track of client parameters that control how the pixels are going to be packaged, so the responsibility for clearing the state has been moved on the client (using the destroy() method on ImageDecoder). As no client uses the IFFDecoder for more than one image at a time, this change does not require updates to the engines. The only effect is on Parallaction (BRA-Amiga), which can now control the way pixels are packaged in mask and path bitmaps.
Diffstat (limited to 'graphics')
-rw-r--r--graphics/decoders/iff.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/graphics/decoders/iff.cpp b/graphics/decoders/iff.cpp
index 7b37969fc1..485b2846a8 100644
--- a/graphics/decoders/iff.cpp
+++ b/graphics/decoders/iff.cpp
@@ -59,7 +59,8 @@ void IFFDecoder::destroy() {
}
bool IFFDecoder::loadStream(Common::SeekableReadStream &stream) {
- destroy();
+ // NOTE: we cannot call destroy() here, like most other decoders do, otherwise the
+ // settings (stored in _numRelevantPlanes and _pixelPacking) will be cleared.
const uint32 form = stream.readUint32BE();