aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorDmitry Iskrich2016-05-28 19:54:31 +0300
committerEugene Sandulenko2016-08-03 23:40:36 +0200
commit6299055098cf09e174344c43d421b935f5a50a6b (patch)
tree7d635d793c0039749e148c979dde3e746af0ede9 /engines
parentd7f1c98f29e3eacd2eb25456878eed5a0dd7d78a (diff)
downloadscummvm-rg350-6299055098cf09e174344c43d421b935f5a50a6b.tar.gz
scummvm-rg350-6299055098cf09e174344c43d421b935f5a50a6b.tar.bz2
scummvm-rg350-6299055098cf09e174344c43d421b935f5a50a6b.zip
DIRECTOR: Add ink types parsing
Diffstat (limited to 'engines')
-rw-r--r--engines/director/score.cpp3
-rw-r--r--engines/director/score.h26
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;