[Scummvm-git-logs] scummvm master -> 828595c9fc935854efc38988f69b5f10bdf21106
npjg
nathanael.gentrydb8 at gmail.com
Fri Aug 21 20:53:07 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:
0bab9810c0 DIRECTOR: Fix getWidgetRect code path
828595c9fc DIRECTOR: Don't override shape dimensions
Commit: 0bab9810c0fa44398fa5fa92fde35e4e35ef769a
https://github.com/scummvm/scummvm/commit/0bab9810c0fa44398fa5fa92fde35e4e35ef769a
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-08-21T16:34:06-04:00
Commit Message:
DIRECTOR: Fix getWidgetRect code path
This is morally equivalent to getWidgetRect, but takes into account the changes
to dimensions that MacText makes for borders and gutters and a text shadow.
Thus, these features are working again.
Changed paths:
engines/director/castmember.cpp
engines/director/castmember.h
engines/director/channel.cpp
engines/director/sprite.cpp
diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 53ae66d388..c6915cbfac 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -659,16 +659,6 @@ Graphics::MacWidget *TextCastMember::createWidget(Common::Rect &bbox, Channel *c
return widget;
}
-Common::Rect TextCastMember::getWidgetRect() {
- Graphics::MacWidget *widget = createWidget(_initialRect, nullptr);
- Common::Rect result = _initialRect;
- if (widget) {
- result = widget->_dims;
- delete widget;
- }
- return result;
-}
-
void TextCastMember::importRTE(byte *text) {
//assert(rteList.size() == 3);
//child0 is probably font data.
diff --git a/engines/director/castmember.h b/engines/director/castmember.h
index 80abac4f76..9bb64d57e9 100644
--- a/engines/director/castmember.h
+++ b/engines/director/castmember.h
@@ -72,7 +72,7 @@ public:
virtual bool isModified() { return _modified; }
virtual Graphics::MacWidget *createWidget(Common::Rect &bbox, Channel *channel) { return nullptr; }
virtual void updateFromWidget(Graphics::MacWidget *widget) {}
- virtual Common::Rect getWidgetRect() { return _initialRect; }
+ virtual Common::Rect getInitialRect() { return _initialRect; }
virtual void setColors(uint32 *fgcolor, uint32 *bgcolor) { return; }
virtual uint32 getForeColor() { return 0; }
@@ -210,7 +210,6 @@ public:
void setText(const char *text);
virtual Graphics::MacWidget *createWidget(Common::Rect &bbox, Channel *channel) override;
- virtual Common::Rect getWidgetRect() override;
virtual bool isEditable() override;
virtual void setEditable(bool editable) override;
diff --git a/engines/director/channel.cpp b/engines/director/channel.cpp
index 7a36e64c56..c9be048689 100644
--- a/engines/director/channel.cpp
+++ b/engines/director/channel.cpp
@@ -374,6 +374,15 @@ void Channel::replaceWidget() {
if (_widget) {
_widget->_priority = _priority;
_widget->draw();
+
+ // HACK: Account for the added dimensions for borders, etc.
+ if (_sprite->_cast->_type == kCastText || _sprite->_cast->_type == kCastButton) {
+ _sprite->_width = _widget->_dims.width();
+ _sprite->_height = _widget->_dims.height();
+
+ _width = _sprite->_width;
+ _height = _sprite->_height;
+ }
}
}
}
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 83bd8f45c8..50b3f8c78c 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -183,7 +183,7 @@ void Sprite::setCast(uint16 castId) {
((TextCastMember *)_cast)->_buttonType = (ButtonType)(_spriteType - 8);
}
- Common::Rect dims = _cast->getWidgetRect();
+ Common::Rect dims = _cast->getInitialRect();
_width = dims.width();
_height = dims.height();
} else {
Commit: 828595c9fc935854efc38988f69b5f10bdf21106
https://github.com/scummvm/scummvm/commit/828595c9fc935854efc38988f69b5f10bdf21106
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-08-21T16:52:07-04:00
Commit Message:
DIRECTOR: Don't override shape dimensions
Changed paths:
engines/director/sprite.cpp
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 50b3f8c78c..537cf98748 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -183,9 +183,13 @@ void Sprite::setCast(uint16 castId) {
((TextCastMember *)_cast)->_buttonType = (ButtonType)(_spriteType - 8);
}
- Common::Rect dims = _cast->getInitialRect();
- _width = dims.width();
- _height = dims.height();
+ // TODO: Respect sprite width/height settings. Need to determine how to read
+ // them properly.
+ if (_cast->_type != kCastShape) {
+ Common::Rect dims = _cast->getInitialRect();
+ _width = dims.width();
+ _height = dims.height();
+ }
} else {
warning("Sprite::setCast(): CastMember id %d(%s) has null member", castId, numToCastNum(castId));
}
More information about the Scummvm-git-logs
mailing list