[Scummvm-git-logs] scummvm master -> 24da65e1b935be699906927b467b559f36bb685d
npjg
nathanael.gentrydb8 at gmail.com
Sat Jun 13 18:34:01 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
7c8c96a357 DIRECTOR: Remove erroneous warning
24da65e1b9 DIRECTOR: Implement changing width/height of sprite for basic inks
Commit: 7c8c96a357a2c7c38d33265cea378f23e85dbf29
https://github.com/scummvm/scummvm/commit/7c8c96a357a2c7c38d33265cea378f23e85dbf29
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-06-13T14:33:35-04:00
Commit Message:
DIRECTOR: Remove erroneous warning
Changed paths:
engines/director/lingo/lingo-the.cpp
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index f698e9bd0d..bc0a64ffdb 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -866,7 +866,6 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
sprite->setPattern(d.asInt());
break;
case kThePuppet:
- warning("kThePuppet: %d", d.asInt());
sprite->_puppet = d.asInt();
if (!d.asInt()) {
sprite->_currentPoint = sprite->_startPoint;
Commit: 24da65e1b935be699906927b467b559f36bb685d
https://github.com/scummvm/scummvm/commit/24da65e1b935be699906927b467b559f36bb685d
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-06-13T14:33:35-04:00
Commit Message:
DIRECTOR: Implement changing width/height of sprite for basic inks
Changed paths:
engines/director/ink.cpp
engines/director/lingo/lingo-the.cpp
engines/director/sprite.cpp
diff --git a/engines/director/ink.cpp b/engines/director/ink.cpp
index 52a71e8a09..6b9d36234b 100644
--- a/engines/director/ink.cpp
+++ b/engines/director/ink.cpp
@@ -37,11 +37,11 @@ void Score::inkBasedBlit(Graphics::ManagedSurface *maskSurface, const Graphics::
switch (ink) {
case kInkTypeCopy:
- _surface->transBlitFrom(spriteSurface, Common::Point(t.left, t.top), *maskSurface);
+ _surface->transBlitFrom(spriteSurface, Common::Rect(spriteSurface.w, spriteSurface.h), t, 0, false, 0, 0xff, &maskSurface->rawSurface(), true);
break;
case kInkTypeTransparent:
// FIXME: is it always white (last entry in pallette)?
- _surface->transBlitFrom(spriteSurface, Common::Point(t.left, t.top), _vm->getPaletteColorCount() - 1);
+ _surface->transBlitFrom(spriteSurface, Common::Rect(spriteSurface.w, spriteSurface.h), t, _vm->getPaletteColorCount() - 1);
break;
case kInkTypeBackgndTrans:
drawBackgndTransSprite(spriteSurface, t, spriteId);
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index bc0a64ffdb..bba027ad5e 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -177,7 +177,7 @@ TheEntityField fields[] = {
{ kTheSprite, "right", kTheRight, 2 },// D2 p
{ kTheSprite, "scoreColor", kTheScoreColor, 4 },// D4 p
{ kTheSprite, "scriptNum", kTheScriptNum, 4 },// D4 p
- { kTheSprite, "stretch", kTheStrech, 2 },// D2 p
+ { kTheSprite, "stretch", kTheStretch, 2 },// D2 p
{ kTheSprite, "top", kTheTop, 2 },// D2 p
{ kTheSprite, "trails", kTheTrails, 3 },// D3.1 p
{ kTheSprite, "type", kTheType, 2 },// D2 p
@@ -833,7 +833,9 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
sprite->_foreColor = d.asInt();
break;
case kTheHeight:
- sprite->_height = d.asInt();
+ if (sprite->_puppet && sprite->_stretch) {
+ sprite->_height = d.asInt();
+ }
break;
case kTheImmediate:
sprite->_immediate = d.asInt();
@@ -897,7 +899,9 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
sprite->_volume = d.asInt();
break;
case kTheWidth:
- sprite->_width = d.asInt();
+ if (sprite->_puppet && sprite->_stretch) {
+ sprite->_width = d.asInt();
+ }
break;
default:
warning("Lingo::setTheSprite(): Unprocessed setting field \"%s\" of sprite", field2str(field));
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index b5889bf3b4..a1215d660d 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -266,6 +266,13 @@ Common::Rect Sprite::getBbox() {
result.translate(offsetx, offsety);
}
+ if (_puppet && _stretch) {
+ // TODO: Properly align the bounding box
+
+ result.setHeight(_height);
+ result.setWidth(_width);
+ }
+
return result;
}
More information about the Scummvm-git-logs
mailing list