[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