aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLittleboy2012-07-27 16:07:23 -0400
committerLittleboy2012-07-27 16:09:35 -0400
commitd8acba294d7898ffff70ea679579cd8ae5eab0a7 (patch)
treee6526fc657fb4defa545c6ec711c79aa616caf86
parent94e2ea10cd9f5caf7a560b7f1def0f23da9046a5 (diff)
downloadscummvm-rg350-d8acba294d7898ffff70ea679579cd8ae5eab0a7.tar.gz
scummvm-rg350-d8acba294d7898ffff70ea679579cd8ae5eab0a7.tar.bz2
scummvm-rg350-d8acba294d7898ffff70ea679579cd8ae5eab0a7.zip
LASTEXPRESS: Add IgnoreSubtype option to AnimFrame
-rw-r--r--engines/lastexpress/data/animation.cpp2
-rw-r--r--engines/lastexpress/data/sequence.cpp2
-rw-r--r--engines/lastexpress/data/sequence.h6
3 files changed, 6 insertions, 4 deletions
diff --git a/engines/lastexpress/data/animation.cpp b/engines/lastexpress/data/animation.cpp
index ce42acb8fe..7618259e69 100644
--- a/engines/lastexpress/data/animation.cpp
+++ b/engines/lastexpress/data/animation.cpp
@@ -230,7 +230,7 @@ AnimFrame *Animation::processChunkFrame(Common::SeekableReadStream *in, const Ch
i.read(str, false);
// Decode the frame
- AnimFrame *f = new AnimFrame(str, i);
+ AnimFrame *f = new AnimFrame(str, i, true);
// Delete the temporary chunk buffer
delete str;
diff --git a/engines/lastexpress/data/sequence.cpp b/engines/lastexpress/data/sequence.cpp
index e1e0d9bee8..a5bcba84cd 100644
--- a/engines/lastexpress/data/sequence.cpp
+++ b/engines/lastexpress/data/sequence.cpp
@@ -76,7 +76,7 @@ void FrameInfo::read(Common::SeekableReadStream *in, bool isSequence) {
// AnimFrame
-AnimFrame::AnimFrame(Common::SeekableReadStream *in, const FrameInfo &f) : _palette(NULL) {
+AnimFrame::AnimFrame(Common::SeekableReadStream *in, const FrameInfo &f, bool ignoreSubtype) : _palette(NULL), _ignoreSubtype(ignoreSubtype) {
_palSize = 1;
// TODO: use just the needed rectangle
_image.create(640, 480, Graphics::PixelFormat::createFormatCLUT8());
diff --git a/engines/lastexpress/data/sequence.h b/engines/lastexpress/data/sequence.h
index 9987eae48e..610a55cebf 100644
--- a/engines/lastexpress/data/sequence.h
+++ b/engines/lastexpress/data/sequence.h
@@ -49,8 +49,9 @@
byte {1} - Compression type
byte {1} - Subtype (determines which set of decompression functions will be called) => 0, 1, 2, 3
byte {1} - Unknown
+ byte {1} - Keep previous frame while drawing
+ byte {1} - Unknown
byte {1} - Unknown
- uint16 {2} - Unknown
byte {1} - Sound action
byte {1} - Unknown
uint32 {4} - positionId
@@ -129,7 +130,7 @@ struct FrameInfo {
class AnimFrame : public Drawable {
public:
- AnimFrame(Common::SeekableReadStream *in, const FrameInfo &f);
+ AnimFrame(Common::SeekableReadStream *in, const FrameInfo &f, bool ignoreSubtype = false);
~AnimFrame();
Common::Rect draw(Graphics::Surface *s);
@@ -146,6 +147,7 @@ private:
uint16 _palSize;
uint16 *_palette;
Common::Rect _rect;
+ bool _ignoreSubtype;
};
class Sequence {