diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp index 145e24805d8..7de2a3ffa66 100644 --- a/engines/director/frame.cpp +++ b/engines/director/frame.cpp @@ -348,12 +348,13 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) { sprite._colorcode = stream->readByte(); sprite._blendAmount = stream->readByte(); - sprite._moveable = ((sprite._colorcode & 0x80) == 0x80); sprite._thickness = stream->readByte(); stream->readByte(); // unused } sprite._ink = static_cast(sprite._inkData & 0x3f); + sprite._editable = ((sprite._colorcode & 0x40) == 0x40); + sprite._moveable = ((sprite._colorcode & 0x80) == 0x80); if (sprite._inkData & 0x40) sprite._trails = 1; diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp index 0ae47b6caf1..c51ba697449 100644 --- a/engines/director/sprite.cpp +++ b/engines/director/sprite.cpp @@ -35,7 +35,8 @@ Sprite::Sprite() { _height = 0; _castId = 0; _constraint = 0; - _moveable = 0; + _moveable = false; + _editable = false; _castId = 0; _castIndex = 0; _backColor = 255; @@ -95,6 +96,7 @@ Sprite::Sprite(const Sprite &sprite) { _constraint = sprite._constraint; _moveable = sprite._moveable; + _editable = sprite._editable; _blend = sprite._blend; _startTime = sprite._startTime; _thickness = sprite._thickness; diff --git a/engines/director/sprite.h b/engines/director/sprite.h index 2ebd8fbaff0..ca39aee2653 100644 --- a/engines/director/sprite.h +++ b/engines/director/sprite.h @@ -89,7 +89,8 @@ public: // TODO: default constraint = 0, if turned on, sprite is constrainted to the bounding rect // As i know, constrainted != 0 only if sprite moveable byte _constraint; - byte _moveable; + bool _moveable; + bool _editable; byte _backColor; byte _foreColor;