diff options
author | Eugene Sandulenko | 2019-12-27 22:43:42 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2019-12-27 22:43:42 +0100 |
commit | eb02162def9347d6e209bb52f00187b2109e1cb5 (patch) | |
tree | e02c6788afb35dccba03a03a47bb20ba4348fc59 /engines | |
parent | 29a07afc58bb02b04c5f9dcbc7ac6cb4095accba (diff) | |
download | scummvm-rg350-eb02162def9347d6e209bb52f00187b2109e1cb5.tar.gz scummvm-rg350-eb02162def9347d6e209bb52f00187b2109e1cb5.tar.bz2 scummvm-rg350-eb02162def9347d6e209bb52f00187b2109e1cb5.zip |
DIRECTOR: LINGO: Added manipulation of sprite patterns.
TODO: Figure out where in data it is stored.
Diffstat (limited to 'engines')
-rw-r--r-- | engines/director/frame.cpp | 2 | ||||
-rw-r--r-- | engines/director/lingo/lingo-the.cpp | 6 | ||||
-rw-r--r-- | engines/director/sprite.cpp | 1 | ||||
-rw-r--r-- | engines/director/sprite.h | 2 |
4 files changed, 10 insertions, 1 deletions
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp index f7a3e84daf..2fcb50f1f9 100644 --- a/engines/director/frame.cpp +++ b/engines/director/frame.cpp @@ -674,7 +674,7 @@ void Frame::renderShape(Graphics::ManagedSurface &surface, uint16 spriteId) { // No minus one on the pattern here! MacPlotData will do that for us! //Graphics::MacPlotData pd(&tmpSurface, &_vm->getPatterns(), 1, 1, sp->_backColor); - Graphics::MacPlotData pd(&tmpSurface, &_vm->getPatterns(), sp->_castId, sp->_lineSize + 1, sp->_backColor); + Graphics::MacPlotData pd(&tmpSurface, &_vm->getPatterns(), sp->_pattern, sp->_lineSize + 1, sp->_backColor); Common::Rect fillRect(shapeRect.width(), shapeRect.height()); switch (sp->_spriteType) { diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index 01640653e9..56dc3fe918 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -417,6 +417,9 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) { case kTheEditableText: sprite->_editableText = *d.toString(); break; + case kThePattern: + sprite->_pattern = d.u.i; + break; default: warning("Lingo::setTheSprite(): Unprocessed setting field %d of sprite", field); } @@ -619,6 +622,9 @@ Datum Lingo::getTheSprite(Datum &id1, int field) { d.toString(); d.u.s = &sprite->_editableText; break; + case kThePattern: + d.u.i = sprite->_pattern; + break; default: warning("Lingo::getTheSprite(): Unprocessed getting field %d of sprite", field); d.type = VOID; diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp index ac355fbe91..0148c6665e 100644 --- a/engines/director/sprite.cpp +++ b/engines/director/sprite.cpp @@ -39,6 +39,7 @@ Sprite::Sprite() { _castId = 0; _backColor = 255; _foreColor = 0; + _pattern = 0; _left = 0; _right = 0; _top = 0; diff --git a/engines/director/sprite.h b/engines/director/sprite.h index f37f1c84ea..f918a3a39e 100644 --- a/engines/director/sprite.h +++ b/engines/director/sprite.h @@ -91,6 +91,8 @@ public: byte _moveable; byte _backColor; byte _foreColor; + uint16 _pattern; + uint16 _left; uint16 _right; uint16 _top; |