[Scummvm-git-logs] scummvm master -> 7846a08f492d972f01682f48a648b7fea47fbe7f

sev- noreply at scummvm.org
Mon Jun 6 16:32:20 UTC 2022


This automated email contains information about 8 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
0a95714cac DIRECTOR: GRAPHICS: Add getPlainText() function to MacText
f241bdefd3 DIRECTOR: LINGO: Implement kTheTextFont, kTheTextStyle, kTheTextHeight and kTheTextSize in Lingo::setField()
6b4cffb5e4 DIRECTOR: LINGO: Implement kTheTextSize STUB in TextCastMember->setField() of lingo-object.cpp
26779bbd1d DIRECTOR: Revert _ptext change check omission in TextCastMember::setText(), remove unnecessary initialisation of string 
a982da07d7 DIRECTOR: LINGO: MOve the widget creation to top of TextCastMember::setField() to prevent duplicacy, remove redundant se
334bbd11a3 DIRECTOR: LINGO: Implement MacText::enforceTextFont() and use it to implement STUB kTheTextFont in TextCastMember::setFi
8409314414 DIRECTOR: LINGO: Implement MacText::enforceFontSlant() and implement kTheTextStyle STUB in TextCastMember::setField()
7846a08f49 DIRECTOR: LINGO: Add nullptr check for channel in TextCastMember::setField()


Commit: 0a95714cacc0f8fbc0a556cc119a03fb8b383bad
    https://github.com/scummvm/scummvm/commit/0a95714cacc0f8fbc0a556cc119a03fb8b383bad
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T18:32:14+02:00

Commit Message:
DIRECTOR: GRAPHICS: Add getPlainText() function to MacText

Changed paths:
    graphics/macgui/mactext.cpp
    graphics/macgui/mactext.h


diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index 5855fda541b..33833c66b96 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -1620,6 +1620,17 @@ Common::U32String MacText::getEditedString() {
 	return getTextChunk(_editableRow, 0, -1, -1);
 }
 
+Common::U32String MacText::getPlainText() {
+	Common::U32String res("");
+	for (uint i = 0; i < _textLines.size(); i++) {
+		for (uint j = 0; j < _textLines[i].chunks.size(); j++) {
+			res += _textLines[i].chunks[j].text;
+		}
+	}
+
+	return res;
+}
+
 Common::U32String MacText::cutSelection() {
 	if (!isCutAllowed())
 		return Common::U32String();
diff --git a/graphics/macgui/mactext.h b/graphics/macgui/mactext.h
index fd78e0add45..a014ed8bca1 100644
--- a/graphics/macgui/mactext.h
+++ b/graphics/macgui/mactext.h
@@ -272,6 +272,7 @@ public:
 
 	Common::U32String getEditedString();
 	Common::U32String getText() { return _str; }
+	Common::U32String getPlainText();
 
 	void setSelRange(int selStart, int selEnd);
 


Commit: f241bdefd3d738495db77151735caaa99d59ab64
    https://github.com/scummvm/scummvm/commit/f241bdefd3d738495db77151735caaa99d59ab64
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T18:32:14+02:00

Commit Message:
DIRECTOR: LINGO: Implement kTheTextFont, kTheTextStyle, kTheTextHeight and kTheTextSize in Lingo::setField()

Changed paths:
    engines/director/castmember.cpp
    engines/director/lingo/lingo-object.cpp
    graphics/macgui/macfontmanager.cpp


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index bc7b8479287..1e85c7a9d15 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -1036,11 +1036,6 @@ void TextCastMember::importRTE(byte *text) {
 }
 
 void TextCastMember::setText(const Common::U32String &text) {
-	// Do nothing if text did not change
-	if (_ptext.equals(text))
-		return;
-
-	// If text has changed, use the cached formatting from first STXT in this castmember.
 	Common::U32String formatting = Common::String::format("\001\016%04x%02x%04x%04x%04x%04x", _fontId, _textSlant, _fontSize, _fgpalinfo1, _fgpalinfo2, _fgpalinfo3);
 	_ptext = text;
 	_ftext = formatting + text;
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index a6b2c2ffca7..b2305295ea7 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -1029,22 +1029,27 @@ bool TextCastMember::setField(int field, const Datum &d) {
 	}
 		return true;
 	case kTheTextFont:
-		warning("STUB: set textFont");
-		// d is STRING here
-		_fontId = d.asInt();
+		_fontId = g_director->_wm->_fontMan->getFontIdByName(d.asString());
+		setText(this->_ptext);
 		_modified = true;
 		return false;
 	case kTheTextHeight:
 		_lineSpacing = d.asInt();
+		setText(this->_ptext);
 		_modified = true;
 		return false;
 	case kTheTextSize:
-		setTextSize(d.asInt());
+		_fontSize = d.asInt();
+		setText(this->_ptext);
 		return false;
 	case kTheTextStyle:
-		_textSlant = d.asInt();
+	{
+		int slant = g_director->_wm->_fontMan->parseSlantFromName(d.asString());
+		slant ? _textSlant |= slant : _textSlant = slant;
+		setText(this->_ptext);
 		_modified = true;
 		return false;
+	}
 	default:
 		break;
 	}
diff --git a/graphics/macgui/macfontmanager.cpp b/graphics/macgui/macfontmanager.cpp
index 2a424bc3b90..0eb6e01713e 100644
--- a/graphics/macgui/macfontmanager.cpp
+++ b/graphics/macgui/macfontmanager.cpp
@@ -512,22 +512,24 @@ int MacFontManager::parseFontSlant(Common::String slant) {
 int MacFontManager::parseSlantFromName(const Common::String &name) {
 	int slantVal = 0;
 
-	if (name.contains(" Bold"))
+	if (name.contains(" Bold") || name.equalsIgnoreCase("Bold"))
 		slantVal |= kMacFontBold;
-	if (name.contains(" Italic"))
+	if (name.contains(" Italic") || name.equalsIgnoreCase("Italic"))
 		slantVal |= kMacFontItalic;
-	if (name.contains(" Regular"))
+	if (name.contains(" Regular") || name.equalsIgnoreCase("Regular"))
 		slantVal |= kMacFontRegular;
-	if (name.contains(" Underline"))
+	if (name.contains(" Underline") || name.equalsIgnoreCase("Underline"))
 		slantVal |= kMacFontUnderline;
-	if (name.contains(" Shadow"))
+	if (name.contains(" Shadow") || name.equalsIgnoreCase("Shadow"))
 		slantVal |= kMacFontShadow;
-	if (name.contains(" Outline"))
+	if (name.contains(" Outline") || name.equalsIgnoreCase("Outline"))
 		slantVal |= kMacFontOutline;
-	if (name.contains(" Condense"))
+	if (name.contains(" Condense") || name.equalsIgnoreCase("Condense"))
 		slantVal |= kMacFontCondense;
-	if (name.contains(" Extend"))
+	if (name.contains(" Extend") || name.equalsIgnoreCase("Extend"))
 		slantVal |= kMacFontExtend;
+	if (name.contains(" Plain") || name.equalsIgnoreCase("Plain"))
+		slantVal = kMacFontRegular;
 
 	return slantVal;
 }
@@ -591,6 +593,11 @@ int MacFontManager::getFontIdByName(Common::String name) {
 	if (_fontIds.contains(name))
 		return _fontIds[name];
 
+	for (auto it = _fontIds.begin(); it != _fontIds.end(); it++) {
+		if (it->_key.equalsIgnoreCase(name)) {
+			return it->_value;
+		}
+	}
 	return 1;
 }
 


Commit: 6b4cffb5e483c5d8d953a40194cd463ff8db97e5
    https://github.com/scummvm/scummvm/commit/6b4cffb5e483c5d8d953a40194cd463ff8db97e5
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T18:32:14+02:00

Commit Message:
DIRECTOR: LINGO: Implement kTheTextSize STUB in TextCastMember->setField() of lingo-object.cpp

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 b2305295ea7..171b136493d 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -27,6 +27,8 @@
 #include "director/cast.h"
 #include "director/channel.h"
 #include "director/castmember.h"
+#include "director/movie.h"
+#include "director/score.h"
 #include "director/window.h"
 #include "director/util.h"
 #include "director/lingo/lingo.h"
@@ -1039,9 +1041,24 @@ bool TextCastMember::setField(int field, const Datum &d) {
 		_modified = true;
 		return false;
 	case kTheTextSize:
-		_fontSize = d.asInt();
-		setText(this->_ptext);
+	{
+		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;
+			}
+		}
+		Common::Rect bbox = toEdit->getBbox();
+		toEdit->_widget = createWidget(bbox, toEdit, toEdit->_sprite->_spriteType);
+		((Graphics::MacText *)toEdit->_widget)->setTextSize(d.asInt());
+		_ptext = ((Graphics::MacText *)toEdit->_widget)->getPlainText();
+		_ftext = ((Graphics::MacText *)toEdit->_widget)->getTextChunk(0, 0, -1, -1, true);
+		_modified = true;
+		toEdit->_widget->removeWidget(_widget);
 		return false;
+	}
 	case kTheTextStyle:
 	{
 		int slant = g_director->_wm->_fontMan->parseSlantFromName(d.asString());


Commit: 26779bbd1d86ace0d79438a9ba653cfd1b88b85d
    https://github.com/scummvm/scummvm/commit/26779bbd1d86ace0d79438a9ba653cfd1b88b85d
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T18:32:14+02:00

Commit Message:
DIRECTOR: Revert _ptext change check omission in TextCastMember::setText(), remove unnecessary initialisation of string in MacText::getPlainText()

Changed paths:
    engines/director/castmember.cpp
    graphics/macgui/mactext.cpp


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 1e85c7a9d15..bbe0d24f3e4 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -1036,6 +1036,11 @@ void TextCastMember::importRTE(byte *text) {
 }
 
 void TextCastMember::setText(const Common::U32String &text) {
+	//Do nothing if text did not change
+	if (_ptext.equals(text))
+		return;
+
+	// If text has changed, use the cached formatting from first STXT in this castmember.
 	Common::U32String formatting = Common::String::format("\001\016%04x%02x%04x%04x%04x%04x", _fontId, _textSlant, _fontSize, _fgpalinfo1, _fgpalinfo2, _fgpalinfo3);
 	_ptext = text;
 	_ftext = formatting + text;
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index 33833c66b96..e9fe32c3fb7 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -1621,7 +1621,7 @@ Common::U32String MacText::getEditedString() {
 }
 
 Common::U32String MacText::getPlainText() {
-	Common::U32String res("");
+	Common::U32String res;
 	for (uint i = 0; i < _textLines.size(); i++) {
 		for (uint j = 0; j < _textLines[i].chunks.size(); j++) {
 			res += _textLines[i].chunks[j].text;


Commit: a982da07d7de20e1a6379a9ebd4ec87313d22eec
    https://github.com/scummvm/scummvm/commit/a982da07d7de20e1a6379a9ebd4ec87313d22eec
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T18:32:14+02:00

Commit Message:
DIRECTOR: LINGO: MOve the widget creation to top of TextCastMember::setField() to prevent duplicacy, remove redundant setText() in kTheTextHeight case of 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 171b136493d..0bec808149d 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -986,6 +986,16 @@ 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;
+		}
+	}
+	Common::Rect bbox = toEdit->getBbox();
+	toEdit->_widget = createWidget(bbox, toEdit, toEdit->_sprite->_spriteType);
 	switch (field) {
 	case kTheBackColor:
 		{
@@ -1037,28 +1047,15 @@ bool TextCastMember::setField(int field, const Datum &d) {
 		return false;
 	case kTheTextHeight:
 		_lineSpacing = d.asInt();
-		setText(this->_ptext);
 		_modified = true;
 		return false;
 	case kTheTextSize:
-	{
-		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;
-			}
-		}
-		Common::Rect bbox = toEdit->getBbox();
-		toEdit->_widget = createWidget(bbox, toEdit, toEdit->_sprite->_spriteType);
 		((Graphics::MacText *)toEdit->_widget)->setTextSize(d.asInt());
 		_ptext = ((Graphics::MacText *)toEdit->_widget)->getPlainText();
 		_ftext = ((Graphics::MacText *)toEdit->_widget)->getTextChunk(0, 0, -1, -1, true);
 		_modified = true;
 		toEdit->_widget->removeWidget(_widget);
 		return false;
-	}
 	case kTheTextStyle:
 	{
 		int slant = g_director->_wm->_fontMan->parseSlantFromName(d.asString());


Commit: 334bbd11a3dbff83c9066152fc8eb612b431fc08
    https://github.com/scummvm/scummvm/commit/334bbd11a3dbff83c9066152fc8eb612b431fc08
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T18:32:14+02:00

Commit Message:
DIRECTOR: LINGO: Implement MacText::enforceTextFont() and use it to implement STUB kTheTextFont in TextCastMember::setField()

Changed paths:
    engines/director/castmember.cpp
    engines/director/lingo/lingo-object.cpp
    graphics/macgui/mactext.cpp
    graphics/macgui/mactext.h


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index bbe0d24f3e4..bc7b8479287 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -1036,7 +1036,7 @@ void TextCastMember::importRTE(byte *text) {
 }
 
 void TextCastMember::setText(const Common::U32String &text) {
-	//Do nothing if text did not change
+	// Do nothing if text did not change
 	if (_ptext.equals(text))
 		return;
 
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 0bec808149d..80892440460 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -1041,8 +1041,9 @@ bool TextCastMember::setField(int field, const Datum &d) {
 	}
 		return true;
 	case kTheTextFont:
-		_fontId = g_director->_wm->_fontMan->getFontIdByName(d.asString());
-		setText(this->_ptext);
+		((Graphics::MacText *)toEdit->_widget)->enforceTextFont((uint16) g_director->_wm->_fontMan->getFontIdByName(d.asString()));
+		_ptext = ((Graphics::MacText *)toEdit->_widget)->getPlainText();
+		_ftext = ((Graphics::MacText *)toEdit->_widget)->getTextChunk(0, 0, -1, -1, true);
 		_modified = true;
 		return false;
 	case kTheTextHeight:
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index e9fe32c3fb7..a3f63f90d88 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -337,6 +337,18 @@ void MacText::setColors(uint32 fg, uint32 bg) {
 	_contentIsDirty = true;
 }
 
+void MacText::enforceTextFont(uint16 fontId) {
+	for (uint i = 0; i < _textLines.size(); i++) {
+		for (uint j = 0; j < _textLines[i].chunks.size(); j++) {
+			_textLines[i].chunks[j].fontId = fontId;
+		}
+	}
+
+	_fullRefresh = true;
+	render();
+	_contentIsDirty = true;
+}
+
 void MacText::setTextSize(int textSize) {
 	for (uint i = 0; i < _textLines.size(); i++) {
 		for (uint j = 0; j < _textLines[i].chunks.size(); j++) {
diff --git a/graphics/macgui/mactext.h b/graphics/macgui/mactext.h
index a014ed8bca1..f41a2c67f06 100644
--- a/graphics/macgui/mactext.h
+++ b/graphics/macgui/mactext.h
@@ -194,6 +194,7 @@ public:
 	void appendText(const Common::U32String &str, const Font *font, uint16 r = 0, uint16 g = 0, uint16 b = 0, bool skipAdd = false);
 
 	int getTextFont() { return _defaultFormatting.fontId; }
+	void enforceTextFont(uint16 fontId);
 
 	// because currently, we are counting linespacing as font height
 	int getTextSize() { return _defaultFormatting.fontSize; }


Commit: 84093144145e02b74f859f5e7c9b9a5f8198ad99
    https://github.com/scummvm/scummvm/commit/84093144145e02b74f859f5e7c9b9a5f8198ad99
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T18:32:14+02:00

Commit Message:
DIRECTOR: LINGO: Implement MacText::enforceFontSlant() and implement kTheTextStyle STUB in TextCastMember::setField()

Changed paths:
    engines/director/lingo/lingo-object.cpp
    graphics/macgui/mactext.cpp
    graphics/macgui/mactext.h


diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 80892440460..30647db7d6c 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -1045,6 +1045,7 @@ bool TextCastMember::setField(int field, const Datum &d) {
 		_ptext = ((Graphics::MacText *)toEdit->_widget)->getPlainText();
 		_ftext = ((Graphics::MacText *)toEdit->_widget)->getTextChunk(0, 0, -1, -1, true);
 		_modified = true;
+		toEdit->_widget->removeWidget(_widget);
 		return false;
 	case kTheTextHeight:
 		_lineSpacing = d.asInt();
@@ -1060,9 +1061,11 @@ bool TextCastMember::setField(int field, const Datum &d) {
 	case kTheTextStyle:
 	{
 		int slant = g_director->_wm->_fontMan->parseSlantFromName(d.asString());
-		slant ? _textSlant |= slant : _textSlant = slant;
-		setText(this->_ptext);
+		((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 false;
 	}
 	default:
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index a3f63f90d88..740d043dfc4 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -484,6 +484,22 @@ void MacText::setTextSlant(int textSlant, int start, int end) {
 	setTextChunks(start, end, textSlant, setTextSlantCallback);
 }
 
+void MacText::enforceTextSlant(int textSlant) {
+	for (uint i = 0; i < _textLines.size(); i++) {
+		for (uint j = 0; j < _textLines[i].chunks.size(); j++) {
+			if (textSlant) {
+				_textLines[i].chunks[j].textSlant |= textSlant;
+			} else {
+				_textLines[i].chunks[j].textSlant = textSlant;
+			}
+		}
+	}
+
+	_fullRefresh = true;
+	render();
+	_contentIsDirty = true;
+}
+
 // this maybe need to amend
 // currently, we just return the text size of first character.
 int MacText::getTextSize(int start, int end) {
diff --git a/graphics/macgui/mactext.h b/graphics/macgui/mactext.h
index f41a2c67f06..0031a619091 100644
--- a/graphics/macgui/mactext.h
+++ b/graphics/macgui/mactext.h
@@ -211,6 +211,7 @@ public:
 
 	int getTextSlant(int start, int end);
 	void setTextSlant(int textSlant, int start, int end);
+	void enforceTextSlant(int textSlant);
 
 	// director text related-functions
 	int getMouseChar(int x, int y);


Commit: 7846a08f492d972f01682f48a648b7fea47fbe7f
    https://github.com/scummvm/scummvm/commit/7846a08f492d972f01682f48a648b7fea47fbe7f
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T18:32:14+02:00

Commit Message:
DIRECTOR: LINGO: Add nullptr check for channel in 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 30647db7d6c..5771f27b240 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -994,8 +994,11 @@ bool TextCastMember::setField(int field, const Datum &d) {
 			break;
 		}
 	}
-	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) {
 	case kTheBackColor:
 		{
@@ -1041,32 +1044,44 @@ bool TextCastMember::setField(int field, const Datum &d) {
 	}
 		return true;
 	case kTheTextFont:
+		if (!toEdit) {
+			warning("Channel containing this CastMember %d doesn't exist", (int) _castId);
+			return false;
+		}
 		((Graphics::MacText *)toEdit->_widget)->enforceTextFont((uint16) g_director->_wm->_fontMan->getFontIdByName(d.asString()));
 		_ptext = ((Graphics::MacText *)toEdit->_widget)->getPlainText();
 		_ftext = ((Graphics::MacText *)toEdit->_widget)->getTextChunk(0, 0, -1, -1, true);
 		_modified = true;
 		toEdit->_widget->removeWidget(_widget);
-		return false;
+		return true;
 	case kTheTextHeight:
 		_lineSpacing = d.asInt();
 		_modified = true;
 		return false;
 	case kTheTextSize:
+		if (!toEdit) {
+			warning("Channel containing this CastMember %d doesn't exist", (int) _castId);
+			return false;
+		}
 		((Graphics::MacText *)toEdit->_widget)->setTextSize(d.asInt());
 		_ptext = ((Graphics::MacText *)toEdit->_widget)->getPlainText();
 		_ftext = ((Graphics::MacText *)toEdit->_widget)->getTextChunk(0, 0, -1, -1, true);
 		_modified = true;
 		toEdit->_widget->removeWidget(_widget);
-		return false;
+		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);
 		_ptext = ((Graphics::MacText *)toEdit->_widget)->getPlainText();
 		_ftext = ((Graphics::MacText *)toEdit->_widget)->getTextChunk(0, 0, -1, -1, true);
 		_modified = true;
 		toEdit->_widget->removeWidget(_widget);
-		return false;
+		return true;
 	}
 	default:
 		break;




More information about the Scummvm-git-logs mailing list