diff options
author | Dmitry Iskrich | 2016-05-28 19:54:31 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2016-08-03 23:40:36 +0200 |
commit | 6299055098cf09e174344c43d421b935f5a50a6b (patch) | |
tree | 7d635d793c0039749e148c979dde3e746af0ede9 /engines/director | |
parent | d7f1c98f29e3eacd2eb25456878eed5a0dd7d78a (diff) | |
download | scummvm-rg350-6299055098cf09e174344c43d421b935f5a50a6b.tar.gz scummvm-rg350-6299055098cf09e174344c43d421b935f5a50a6b.tar.bz2 scummvm-rg350-6299055098cf09e174344c43d421b935f5a50a6b.zip |
DIRECTOR: Add ink types parsing
Diffstat (limited to 'engines/director')
-rw-r--r-- | engines/director/score.cpp | 3 | ||||
-rw-r--r-- | engines/director/score.h | 26 |
2 files changed, 27 insertions, 2 deletions
diff --git a/engines/director/score.cpp b/engines/director/score.cpp index 625c4b1d40..477d8501e1 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -362,6 +362,7 @@ void Frame::readSprite(Common::SeekableReadStream &stream, uint16 offset, uint16 break; case kSpritePositionFlags: sprite._flags = stream.readUint16BE(); + sprite._ink = static_cast<inkType>(sprite._flags & 0x3f); //TODO more flags? fieldPosition += 2; break; case kSpritePositionCastId: @@ -431,6 +432,7 @@ void Frame::display(Archive &_movie) { Sprite::Sprite() { _enabled = false; _width = 0; + _ink = kInkTypeCopy; _flags = 0; _height = 0; _castId = 0; @@ -441,6 +443,7 @@ Sprite::Sprite(const Sprite &sprite) { _enabled = sprite._enabled; _castId = sprite._castId; _flags = sprite._flags; + _ink = sprite._ink; _width = sprite._width; _height = sprite._height; _startPoint.x = sprite._startPoint.x; diff --git a/engines/director/score.h b/engines/director/score.h index 2fcb62a522..d3293da95b 100644 --- a/engines/director/score.h +++ b/engines/director/score.h @@ -43,7 +43,7 @@ enum castType { kCastScript }; -enum spritePositions { +enum spritePositions { kSpritePositionUnk1 = 0, kSpritePositionEnabled, kSpritePositionUnk2, @@ -70,6 +70,28 @@ enum mainChannelsPosition { kPaletePosition = 15 }; +enum inkType { + kInkTypeCopy, + kInkTypeTransparent, + kInkTypeReverse, + kInkTypeGhost, + kInkTypeNotCopy, + kInkTypeNotTrans, + kInkTypeNotReverse, + kInkTypeNotGhost, + kIntTypeMatte, + kInkTypeMask, + //10-31 Not used (Lingo in a Nutshell) + kInkTypeBlend = 32, + kInkTypeAddPin, + kInkTypeAdd, + kInkTypeSubPin, + kInkTypeBackgndTrans, + kInkTypeLight, + kInkTypeSub, + kInkTypeDark +}; + struct Cast { castType type; Common::Rect initialRect; @@ -121,7 +143,7 @@ public: Sprite(const Sprite &sprite); bool _enabled; byte _castId; - //castType type; + inkType _ink; Cast *_cast; uint16 _flags; Common::Point _startPoint; |