diff options
| -rw-r--r-- | engines/access/bubble_box.cpp | 18 | 
1 files changed, 11 insertions, 7 deletions
| diff --git a/engines/access/bubble_box.cpp b/engines/access/bubble_box.cpp index df8adc1bc6..831ba507a1 100644 --- a/engines/access/bubble_box.cpp +++ b/engines/access/bubble_box.cpp @@ -95,8 +95,9 @@ void BubbleBox::placeBubble1(const Common::String &msg) {  void BubbleBox::calcBubble(const Common::String &msg) {  	// Save points -	Common::Point printOrg = _vm->_screen->_printOrg; -	Common::Point printStart = _vm->_screen->_printStart; +	Screen &screen = *_vm->_screen; +	Common::Point printOrg = screen._printOrg; +	Common::Point printStart = screen._printStart;  	// Figure out maximum width allowed  	if (_type == kBoxTypeFileDialog) { @@ -114,15 +115,15 @@ void BubbleBox::calcBubble(const Common::String &msg) {  	int width = 0;  	bool lastLine;  	do { -		lastLine = _vm->_fonts._font2.getLine(s, _vm->_screen->_maxChars * 6, line, width); +		lastLine = _vm->_fonts._font2.getLine(s, screen._maxChars * 6, line, width);  		_vm->_fonts._printMaxX = MAX(width, _vm->_fonts._printMaxX); -		_vm->_screen->_printOrg.y += 6; -		_vm->_screen->_printOrg.x = _vm->_screen->_printStart.x; +		screen._printOrg.y += 6; +		screen._printOrg.x = screen._printStart.x;  	} while (!lastLine);  	if (_type == kBoxTypeFileDialog) -		++_vm->_screen->_printOrg.y += 6; +		++screen._printOrg.y += 6;  	// Determine the width for the area  	width = (((_vm->_fonts._printMaxX >> 4) + 1) << 4) + 5; @@ -131,7 +132,7 @@ void BubbleBox::calcBubble(const Common::String &msg) {  	bounds.setWidth(width);  	// Determine the height for area -	int y = _vm->_screen->_printOrg.y + 6; +	int y = screen._printOrg.y + 6;  	if (_type == kBoxTypeFileDialog)  		y += 6;  	int height = y - bounds.top; @@ -141,6 +142,9 @@ void BubbleBox::calcBubble(const Common::String &msg) {  	if (height >= 0)  		bounds.setHeight(bounds.height() + 13 - (height % 13)); +	if (bounds.bottom > screen.h) +		bounds.translate(0, screen.h - bounds.bottom); +  	// Add the new bounds to the bubbles list  	_bubbles.push_back(bounds); | 
