aboutsummaryrefslogtreecommitdiff
path: root/engines/director/frame.h
diff options
context:
space:
mode:
authorEugene Sandulenko2016-10-28 22:48:28 +0200
committerEugene Sandulenko2016-10-29 08:07:19 -0700
commit703178e033934b7aa09ab5e995480d967ef7113a (patch)
tree799c1eb719c621ea22ca9544596e6d6f1bc7b485 /engines/director/frame.h
parent9f35d6fdc6cc4462f1cb3a9916aba298d0a3e1be (diff)
downloadscummvm-rg350-703178e033934b7aa09ab5e995480d967ef7113a.tar.gz
scummvm-rg350-703178e033934b7aa09ab5e995480d967ef7113a.tar.bz2
scummvm-rg350-703178e033934b7aa09ab5e995480d967ef7113a.zip
DIRECTOR: Rework Channel data parsing
Diffstat (limited to 'engines/director/frame.h')
-rw-r--r--engines/director/frame.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/engines/director/frame.h b/engines/director/frame.h
index 68eb1e33bb..694d3a770c 100644
--- a/engines/director/frame.h
+++ b/engines/director/frame.h
@@ -35,6 +35,10 @@ class Sprite;
#define CHANNEL_COUNT 24
+enum {
+ kChannelDataSize = (25 * 50)
+};
+
enum TransitionType {
kTransNone,
kTransWipeRight,
@@ -97,6 +101,7 @@ struct PaletteInfo {
uint8 flags;
uint8 speed;
uint16 frameCount;
+ uint16 cycleCount;
};
@@ -105,6 +110,7 @@ public:
Frame(DirectorEngine *vm);
Frame(const Frame &frame);
~Frame();
+ void readChannels(Common::ReadStreamEndian *stream);
void readChannel(Common::SeekableSubReadStreamEndian &stream, uint16 offset, uint16 size);
void prepareFrame(Score *score);
uint16 getSpriteIDFromPos(Common::Point pos);
@@ -123,7 +129,9 @@ private:
void drawMatteSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
void drawGhostSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
void drawReverseSprite(Graphics::ManagedSurface &target, const Graphics::Surface &sprite, Common::Rect &drawRect);
+
public:
+ byte _channelData[kChannelDataSize];
uint8 _actionId;
uint8 _transDuration;
uint8 _transArea; //1 - Whole Stage, 0 - Changing Area