[Scummvm-git-logs] scummvm master -> ee52e2274c4e951d745a005648c1c328e06bd695

ysj1173886760 42030331+ysj1173886760 at users.noreply.github.com
Thu Jul 8 02:11:17 UTC 2021


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:
67f20656b5 DIRECTOR: use highest bit of _inkData of sprite to decide whether to scale bitmap castmember
ee52e2274c DIRECTOR: eliminate forcing dims when setting cast in lingo


Commit: 67f20656b583a15d8598a3665e7881ab0c850b2b
    https://github.com/scummvm/scummvm/commit/67f20656b583a15d8598a3665e7881ab0c850b2b
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-07-08T10:08:22+08:00

Commit Message:
DIRECTOR: use highest bit of _inkData of sprite to decide whether to scale bitmap castmember

Changed paths:
    engines/director/sprite.cpp


diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 736755a7e7..7ffe9e298e 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -206,16 +206,7 @@ void Sprite::setCast(CastMemberID memberID, bool forceDims) {
 		Common::Rect dims = _cast->getInitialRect();
 		// strange logic here, need to be fixed
 		if (_cast->_type == kCastBitmap) {
-			// i'm not sure about whether to use original dims though comparing with the current one. or we decide it by ink type
-			// for now, we have only met one scaling situation in warlock stambul dancing girl.
-			// at that situation, we are using sprite dims to guide us scaling the cast. And the ink type for that is bkgnd transparent4
-			// maybe there is an flag to indicate the sprite is scaling or not?
-			if (_width >= dims.width() || _height >= dims.height()) {
-				_width = dims.width();
-				_height = dims.height();
-			}
-			// for ink copy sprites, we use the original dims
-			if (_ink == kInkTypeCopy) {
+			if (!(_inkData & 0x80)) {
 				_width = dims.width();
 				_height = dims.height();
 			}


Commit: ee52e2274c4e951d745a005648c1c328e06bd695
    https://github.com/scummvm/scummvm/commit/ee52e2274c4e951d745a005648c1c328e06bd695
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-07-08T10:10:07+08:00

Commit Message:
DIRECTOR: eliminate forcing dims when setting cast in lingo

Changed paths:
    engines/director/channel.cpp
    engines/director/sprite.cpp
    engines/director/sprite.h


diff --git a/engines/director/channel.cpp b/engines/director/channel.cpp
index a17ad26400..d6b3753ff5 100644
--- a/engines/director/channel.cpp
+++ b/engines/director/channel.cpp
@@ -289,7 +289,7 @@ Common::Rect Channel::getBbox(bool unstretched) {
 }
 
 void Channel::setCast(CastMemberID memberID) {
-	_sprite->setCast(memberID, true);
+	_sprite->setCast(memberID);
 	_width = _sprite->_width;
 	_height = _sprite->_height;
 	replaceWidget();
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 7ffe9e298e..1abd2b10aa 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -179,7 +179,7 @@ void Sprite::setPattern(uint16 pattern) {
 	}
 }
 
-void Sprite::setCast(CastMemberID memberID, bool forceDims) {
+void Sprite::setCast(CastMemberID memberID) {
 	CastMember *member = _movie->getCastMember(memberID);
 	_castId = memberID;
 
@@ -190,7 +190,7 @@ void Sprite::setCast(CastMemberID memberID, bool forceDims) {
 		_cast = member;
 
 		if (_cast->_type == kCastText &&
-				(_spriteType == kButtonSprite ||
+			(_spriteType == kButtonSprite ||
 				 _spriteType == kCheckboxSprite ||
 				 _spriteType == kRadioButtonSprite)) {
 			// WORKAROUND: In D2/D3 there can be text casts that have button
@@ -214,12 +214,6 @@ void Sprite::setCast(CastMemberID memberID, bool forceDims) {
 			_width = dims.width();
 			_height = dims.height();
 		}
-
-		// if we are setting the cast though lingo, then we modify the sprites dims to suit for cast member
-		if (forceDims) {
-			_width = dims.width();
-			_height = dims.height();
-		}
 	} else {
 		warning("Sprite::setCast(): %s has null member", memberID.asString().c_str());
 	}
diff --git a/engines/director/sprite.h b/engines/director/sprite.h
index d40e1b1619..98575271b7 100644
--- a/engines/director/sprite.h
+++ b/engines/director/sprite.h
@@ -74,7 +74,7 @@ public:
 	uint16 getPattern();
 	void setPattern(uint16 pattern);
 
-	void setCast(CastMemberID memberID, bool forceDims = false);
+	void setCast(CastMemberID memberID);
 	bool isQDShape();
 
 	Frame *_frame;




More information about the Scummvm-git-logs mailing list