diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index 4d5411048914..59bd24872137 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -184,6 +184,15 @@ void Lingo::setTheSprite(int id, TheField field, Datum &d) { case kTheInk: sprite->_ink = static_cast(d.u.i); break; + case kTheLocH: + sprite->_startPoint.x = d.u.i; + break; + case kTheLocV: + sprite->_startPoint.y = d.u.i; + break; + case kTheConstraint: + sprite->_constraint = d.u.i; + break; default: error("Unprocessed setting field %d of sprite", field); @@ -229,6 +238,18 @@ Datum Lingo::getTheSprite(int id, TheField field) { case kTheInk: d.u.i = sprite->_ink; break; + case kTheInk: + sprite->_ink = static_cast(d.u.i); + break; + case kTheLocH: + d.u.i = sprite->_startPoint.x; + break; + case kTheLocV: + d.u.i = sprite->_startPoint.y; + break; + case kTheConstraint: + d.u.i = sprite->_constraint; + break; default: error("Unprocessed getting field %d of sprite", field); } diff --git a/engines/director/score.cpp b/engines/director/score.cpp index dd3ab54eb84a..53b26629c28c 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -1535,6 +1535,8 @@ Sprite::Sprite() { _flags = 0; _height = 0; _castId = 0; + _constraint = 0; + _moveable = 0; _castId = 0; } diff --git a/engines/director/score.h b/engines/director/score.h index ee0eaa29725c..2f17783d0e0b 100644 --- a/engines/director/score.h +++ b/engines/director/score.h @@ -286,6 +286,10 @@ class Sprite { Common::Point _startPoint; uint16 _width; uint16 _height; + //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; }; class Frame {