[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