diff options
| -rw-r--r-- | scumm/string.cpp | 23 | 
1 files changed, 19 insertions, 4 deletions
| diff --git a/scumm/string.cpp b/scumm/string.cpp index 31b00f3342..5656e2cb61 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -560,7 +560,10 @@ void Scumm::drawString(int a)  		charset._left -= charset.getStringWidth(a, buf, 0) >> 1;  	} -	charset._ignoreCharsetMask = 1; +	// Full Throttle's conversation menus should definitely mask the +	// background. +	if (!(_features & GF_AFTER_V7)) +		charset._ignoreCharsetMask = 1;  	if (!buf[0]) {  		buf[0] = ' '; @@ -598,10 +601,10 @@ void Scumm::drawString(int a)  				break;  			}  		} else { -			if (a == 1 && (_features & GF_AFTER_V6)) - +			if (a == 1 && (_features & GF_AFTER_V6)) {  				if (_string[a].no_talk_anim == 0)  					charset._blitAlso = true; +			}  			if (_features & GF_OLD256)  				charset.printCharOld(chr);  			else @@ -615,7 +618,19 @@ void Scumm::drawString(int a)  	if (a == 0) {  		charset._xpos2 = charset._left;  		charset._ypos2 = charset._top; -	} +	}  + +	if (_features & GF_AFTER_V7) { +		charset._hasMask = true; +		if (charset._strLeft < gdi._mask_left) +			gdi._mask_left = charset._strLeft; +		if (charset._strRight > gdi._mask_right) +			gdi._mask_right = charset._strRight; +		if (charset._strTop < gdi._mask_top) +			gdi._mask_top = charset._strTop; +		if (charset._strBottom > gdi._mask_bottom) +			gdi._mask_bottom = charset._strBottom; +	}   }  byte *Scumm::addMessageToStack(byte *msg) | 
