[Scummvm-git-logs] scummvm master -> 93670edc46fdff83f007765a784de6298c91cad0
sev-
noreply at scummvm.org
Mon Jun 6 16:37:03 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
93670edc46 DIRECTOR: LINGO: Optimize TextCastMember::setField()
Commit: 93670edc46fdff83f007765a784de6298c91cad0
https://github.com/scummvm/scummvm/commit/93670edc46fdff83f007765a784de6298c91cad0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2022-06-06T18:36:39+02:00
Commit Message:
DIRECTOR: LINGO: Optimize TextCastMember::setField()
Changed paths:
engines/director/lingo/lingo-object.cpp
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 5771f27b240..671afef6010 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -987,16 +987,19 @@ Datum TextCastMember::getField(int field) {
bool TextCastMember::setField(int field, const Datum &d) {
Channel *toEdit = nullptr;
- Common::Array<Channel *> channels = g_director->getCurrentMovie()->getScore()->_channels;
- for (uint i = 0; i < channels.size(); i++) {
- if (channels[i]->_sprite->_cast == this) {
- toEdit = channels[i];
- break;
+
+ if (field == kTheTextFont || field == kTheTextSize || field == kTheTextStyle) {
+ Common::Array<Channel *> channels = g_director->getCurrentMovie()->getScore()->_channels;
+ for (uint i = 0; i < channels.size(); i++) {
+ if (channels[i]->_sprite->_cast == this) {
+ toEdit = channels[i];
+ break;
+ }
+ }
+ if (toEdit) {
+ Common::Rect bbox = toEdit->getBbox();
+ toEdit->_widget = createWidget(bbox, toEdit, toEdit->_sprite->_spriteType);
}
- }
- if (toEdit) {
- Common::Rect bbox = toEdit->getBbox();
- toEdit->_widget = createWidget(bbox, toEdit, toEdit->_sprite->_spriteType);
}
switch (field) {
@@ -1070,19 +1073,19 @@ bool TextCastMember::setField(int field, const Datum &d) {
toEdit->_widget->removeWidget(_widget);
return true;
case kTheTextStyle:
- {
if (!toEdit) {
warning("Channel containing this CastMember %d doesn't exist", (int) _castId);
return false;
}
- int slant = g_director->_wm->_fontMan->parseSlantFromName(d.asString());
- ((Graphics::MacText *)toEdit->_widget)->enforceTextSlant(slant);
+ {
+ int slant = g_director->_wm->_fontMan->parseSlantFromName(d.asString());
+ ((Graphics::MacText *)toEdit->_widget)->enforceTextSlant(slant);
+ }
_ptext = ((Graphics::MacText *)toEdit->_widget)->getPlainText();
_ftext = ((Graphics::MacText *)toEdit->_widget)->getTextChunk(0, 0, -1, -1, true);
_modified = true;
toEdit->_widget->removeWidget(_widget);
return true;
- }
default:
break;
}
More information about the Scummvm-git-logs
mailing list