[Scummvm-cvs-logs] SF.net SVN: scummvm:[42456] scummvm/trunk/engines/tucker

cyx at users.sourceforge.net cyx at users.sourceforge.net
Tue Jul 14 00:11:54 CEST 2009


Revision: 42456
          http://scummvm.svn.sourceforge.net/scummvm/?rev=42456&view=rev
Author:   cyx
Date:     2009-07-13 22:11:54 +0000 (Mon, 13 Jul 2009)

Log Message:
-----------
tucker: fixed issues with dirty rects handling (tracker item #2597763)

Modified Paths:
--------------
    scummvm/trunk/engines/tucker/locations.cpp
    scummvm/trunk/engines/tucker/resource.cpp
    scummvm/trunk/engines/tucker/sequences.cpp
    scummvm/trunk/engines/tucker/tucker.cpp
    scummvm/trunk/engines/tucker/tucker.h

Modified: scummvm/trunk/engines/tucker/locations.cpp
===================================================================
--- scummvm/trunk/engines/tucker/locations.cpp	2009-07-13 22:08:56 UTC (rev 42455)
+++ scummvm/trunk/engines/tucker/locations.cpp	2009-07-13 22:11:54 UTC (rev 42456)
@@ -195,8 +195,8 @@
 				for (int j = 0; j < 2; ++j) {
 					const int offset = (_updateLocationYPosTable2[i] + j) * 640 + _updateLocationXPosTable2[i];
 					_locationBackgroundGfxBuf[offset] = 142 + j * 2;
-					addDirtyRect(offset % 640, offset / 640, 1, 1);
 				}
+				addDirtyRect(_updateLocationXPosTable2[i], _updateLocationYPosTable2[i], 1, 2);
 				_updateLocationYPosTable2[i] += 2;
 				if (_updateLocationYPosTable2[i] > _updateLocationYMaxTable[i]) {
 					_updateLocationYPosTable2[i] = 0;
@@ -540,13 +540,14 @@
 		x2 = 15 - _flagsTable[27];
 	}
 	for (int i = 0; i < x1; ++i) {
-		execData3PreUpdate_locationNum6Helper2(13125 + i * 8, _data3GfxBuf + _dataTable[238].sourceOffset);
-		execData3PreUpdate_locationNum6Helper2(13245 - i * 8, _data3GfxBuf + _dataTable[238].sourceOffset);
+		execData3PreUpdate_locationNum6Helper2(20 * 640 + 325 + i * 8, _data3GfxBuf + _dataTable[238].sourceOffset);
+		execData3PreUpdate_locationNum6Helper2(20 * 640 + 445 - i * 8, _data3GfxBuf + _dataTable[238].sourceOffset);
 	}
 	for (int i = 0; i < x2; ++i) {
-		execData3PreUpdate_locationNum6Helper3(13125 + x1 * 8 + i * 4, _data3GfxBuf + _dataTable[238].sourceOffset);
-		execData3PreUpdate_locationNum6Helper3(13249 - x1 * 8 - i * 4, _data3GfxBuf + _dataTable[238].sourceOffset);
+		execData3PreUpdate_locationNum6Helper3(20 * 640 + 325 + x1 * 8 + i * 4, _data3GfxBuf + _dataTable[238].sourceOffset);
+		execData3PreUpdate_locationNum6Helper3(20 * 640 + 449 - x1 * 8 - i * 4, _data3GfxBuf + _dataTable[238].sourceOffset);
 	}
+	addDirtyRect(0, 20, 640, 51);
 }
 
 void TuckerEngine::execData3PreUpdate_locationNum6Helper2(int dstOffset, const uint8 *src) {
@@ -562,7 +563,6 @@
 			}
 		}
 	}
-	addDirtyRect(dstOffset % 640, dstOffset / 640, 8, 51);
 }
 
 void TuckerEngine::execData3PreUpdate_locationNum6Helper3(int dstOffset, const uint8 *src) {
@@ -575,7 +575,6 @@
 			}
 		}
 	}
-	addDirtyRect(dstOffset % 640, dstOffset / 640, 4, 51);
 }
 
 void TuckerEngine::execData3PostUpdate_locationNum6() {
@@ -661,7 +660,7 @@
 				_locationBackgroundGfxBuf[offset + 640 * j + i] = colorsTable[(j - 1) * 3  + i + 1];
 			}
 		}
-		addDirtyRect(_updateLocationXPosTable2[0] - 1, _updateLocationYPosTable2[0], 3, 4);
+		addDirtyRect(_updateLocationXPosTable2[0] - 1, _updateLocationYPosTable2[0] + 1, 3, 4);
 		_updateLocationYPosTable2[0] += 2;
 		if (_updateLocationYPosTable2[0] > 120) {
 			_updateLocationYPosTable2[0] = 0;
@@ -1013,9 +1012,10 @@
 		if (num > 0) {
 			const int w = _dataTable[num].xSize;
 			const int h = _dataTable[num].ySize;
-			const int dstOffset = (_updateLocationYPosTable2[i] / 16 - h / 2) * 640 + (_updateLocationXPosTable2[i] - w / 2);
-			Graphics::decodeRLE_248(_locationBackgroundGfxBuf + dstOffset, _data3GfxBuf + _dataTable[num].sourceOffset, w, h, 0, 0, false);
-			addDirtyRect(dstOffset % 640, dstOffset / 640, w, h);
+			const int x = _updateLocationXPosTable2[i] - w / 2;
+			const int y = _updateLocationYPosTable2[i] / 16 - h / 2;
+			Graphics::decodeRLE_248(_locationBackgroundGfxBuf + y * 640 + x, _data3GfxBuf + _dataTable[num].sourceOffset, w, h, 0, 0, false);
+			addDirtyRect(x, y, w, h);
 		}
 	}
 }
@@ -3033,17 +3033,17 @@
 	_panelState = 1;
 	setCursorType(2);
 	int pos = getPositionForLine(22, _infoBarBuf);
-	int offset = (_flagsTable[143] == 0) ? 57688 : 46168;
+	int offset = (_flagsTable[143] == 0) ? 90 * 640 + 88 : 72 * 640 + 88;
 	drawStringAlt(offset, color, &_infoBarBuf[pos]);
-	Graphics::drawStringChar(_locationBackgroundGfxBuf + offset + 5760, 62, 640, color, _charsetGfxBuf);
+	Graphics::drawStringChar(_locationBackgroundGfxBuf + offset + 9 * 640, 62, 640, color, _charsetGfxBuf);
 	if (_flagsTable[143] != 0) {
 		pos = getPositionForLine(_flagsTable[143] * 2 + 23, _infoBarBuf);
-		drawStringAlt(offset + 11520, color, &_infoBarBuf[pos]);
+		drawStringAlt(offset + 18 * 640, color, &_infoBarBuf[pos]);
 		pos = getPositionForLine(_flagsTable[143] * 2 + 24, _infoBarBuf);
-		drawStringAlt(offset + 17280, color, &_infoBarBuf[pos]);
+		drawStringAlt(offset + 27 * 640, color, &_infoBarBuf[pos]);
 	}
 	execData3PreUpdate_locationNum70Helper();
-	drawStringAlt(offset + 5768, color, _updateLocation70String, _updateLocation70StringLen);
+	drawStringAlt(offset + 9 * 640 + 8, color, _updateLocation70String, _updateLocation70StringLen);
 }
 
 void TuckerEngine::execData3PreUpdate_locationNum70Helper() {

Modified: scummvm/trunk/engines/tucker/resource.cpp
===================================================================
--- scummvm/trunk/engines/tucker/resource.cpp	2009-07-13 22:08:56 UTC (rev 42455)
+++ scummvm/trunk/engines/tucker/resource.cpp	2009-07-13 22:11:54 UTC (rev 42456)
@@ -467,7 +467,7 @@
 		copyLocBitmap(filename, 0, false);
 		Graphics::copyRect(_quadBackgroundGfxBuf + 134400, 320, _locationBackgroundGfxBuf + 320, 640, 320, 140);
 	}
-	_fullRedrawCounter = 2;
+	_fullRedraw = true;
 }
 
 void TuckerEngine::loadObj() {

Modified: scummvm/trunk/engines/tucker/sequences.cpp
===================================================================
--- scummvm/trunk/engines/tucker/sequences.cpp	2009-07-13 22:08:56 UTC (rev 42455)
+++ scummvm/trunk/engines/tucker/sequences.cpp	2009-07-13 22:11:54 UTC (rev 42456)
@@ -102,7 +102,7 @@
 				counter2 = 0;
 			}
 		}
-		_fullRedrawCounter = 2;
+		_fullRedraw = true;
 		++counter3;
 		if (counter3 == 2) {
 			counter3 = 0;
@@ -172,7 +172,7 @@
 	stopSounds();
 	loadImage("congrat.pcx", _loadTempBuf, 1);
 	Graphics::copyRect(_locationBackgroundGfxBuf, 640, _loadTempBuf, 320, 320, 200);
-	_fullRedrawCounter = 2;
+	_fullRedraw = true;
 	redrawScreen(0);
 	while (!_quitGame && _timerCounter2 < 450) {
 		while (_fadePaletteCounter < 14) {
@@ -242,7 +242,7 @@
 			++_fadePaletteCounter;
 		}
 		Graphics::copyRect(_locationBackgroundGfxBuf, 640, _quadBackgroundGfxBuf, 320, 320, 200);
-		_fullRedrawCounter = 2;
+		_fullRedraw = true;
 		updateSprites();
 		drawSprite(0);
 		redrawScreen(0);
@@ -259,7 +259,7 @@
 			--_fadePaletteCounter;
 		}
 		Graphics::copyRect(_locationBackgroundGfxBuf, 640, _quadBackgroundGfxBuf, 320, 320, 200);
-		_fullRedrawCounter = 2;
+		_fullRedraw = true;
 		updateSprites();
 		drawSprite(0);
 		redrawScreen(0);
@@ -294,7 +294,7 @@
 			++_fadePaletteCounter;
 		}
 		Graphics::copyRect(_locationBackgroundGfxBuf, 640, _quadBackgroundGfxBuf + 89600, 320, 320, 200);
-		_fullRedrawCounter = 2;
+		_fullRedraw = true;
 		redrawScreen(0);
 		waitForTimer(3);
 		++i;
@@ -305,11 +305,12 @@
 			--_fadePaletteCounter;
 		}
 		Graphics::copyRect(_locationBackgroundGfxBuf, 640, _quadBackgroundGfxBuf + 89600, 320, 320, 200);
-		_fullRedrawCounter = 2;
+		_fullRedraw = true;
 		redrawScreen(0);
 		waitForTimer(3);
 	} while (_fadePaletteCounter > 0);
 	memcpy(_currentPalette, backupPalette, 256 * 3);
+	_fullRedraw = true;
 }
 
 void TuckerEngine::handleMapSequence() {
@@ -337,7 +338,7 @@
 		waitForTimer(2);
 		updateMouseState();
 		Graphics::copyRect(_locationBackgroundGfxBuf + _scrollOffset, 640, _quadBackgroundGfxBuf + 89600, 320, 320, 200);
-		_fullRedrawCounter = 2;
+		_fullRedraw = true;
 		if (_flagsTable[7] > 0 && _mousePosX > 30 && _mousePosX < 86 && _mousePosY > 36 && _mousePosY < 86) {
 			textNum = 13;
 			_nextLocationNum = (_partNum == 1) ? 3 : 65;
@@ -459,7 +460,7 @@
 		waitForTimer(2);
 		updateMouseState();
 		Graphics::copyRect(_locationBackgroundGfxBuf + _scrollOffset, 640, _quadBackgroundGfxBuf, 320, 320, 200);
-		_fullRedrawCounter = 2;
+		_fullRedraw = true;
 		if (_fadePaletteCounter < 14) {
 			fadeOutPalette();
 			++_fadePaletteCounter;

Modified: scummvm/trunk/engines/tucker/tucker.cpp
===================================================================
--- scummvm/trunk/engines/tucker/tucker.cpp	2009-07-13 22:08:56 UTC (rev 42455)
+++ scummvm/trunk/engines/tucker/tucker.cpp	2009-07-13 22:11:54 UTC (rev 42456)
@@ -305,7 +305,7 @@
 	_currentGfxBackground = 0;
 	_fadePaletteCounter = 0;
 	memset(_currentPalette, 0, sizeof(_currentPalette));
-	_fullRedrawCounter = 0;
+	_fullRedraw = false;
 	_dirtyRectsPrevCount = _dirtyRectsCount = 0;
 
 	_updateLocationFadePaletteCounter = 0;
@@ -469,7 +469,7 @@
 					_mainSpritesBaseOffset = 1;
 				}
 			}
-			_fullRedrawCounter = 2;
+			_fullRedraw = true;
 		} else {
 			_currentGfxBackground = _quadBackgroundGfxBuf;
 		}
@@ -1460,7 +1460,7 @@
 		}
 	}
 	if (scrollPrevOffset != _scrollOffset) {
-		_fullRedrawCounter = 2;
+		_fullRedraw = true;
 	}
 }
 
@@ -1733,34 +1733,36 @@
 		} else if (_xPosCurrent > 320 && _xPosCurrent < 640) {
 			srcX += 320;
 		}
-		int offset = _backgroundSprOffset + srcY * 640 + srcX;
-		Graphics::decodeRLE_248(_locationBackgroundGfxBuf + offset, _backgroundSpriteDataPtr + frameOffset + 12, srcW, srcH, 0, _locationHeightTable[_locationNum], false);
-		addDirtyRect(offset % 640, offset / 640, srcW, srcH);
+		srcX += _backgroundSprOffset;
+		Graphics::decodeRLE_248(_locationBackgroundGfxBuf + srcY * 640 + srcX, _backgroundSpriteDataPtr + frameOffset + 12, srcW, srcH, 0, _locationHeightTable[_locationNum], false);
+		addDirtyRect(srcX, srcY, srcW, srcH);
 	}
 }
 
 void TuckerEngine::drawCurrentSprite() {
 	SpriteFrame *chr = &_spriteFramesTable[_currentSpriteAnimationFrame];
-	int offset = (_yPosCurrent + _mainSpritesBaseOffset - 54 + chr->yOffset) * 640 + _xPosCurrent;
+	int yPos = _yPosCurrent + _mainSpritesBaseOffset - 54 + chr->yOffset;
+	int xPos = _xPosCurrent;
 	if (_mirroredDrawing == 0) {
-		offset += chr->xOffset - 14;
+		xPos += chr->xOffset - 14;
 	} else {
-		offset -= chr->xSize + chr->xOffset - 14;
+		xPos -= chr->xSize + chr->xOffset - 14;
 	}
-	Graphics::decodeRLE_248(_locationBackgroundGfxBuf + offset, _spritesGfxBuf + chr->sourceOffset, chr->xSize, chr->ySize,
+	Graphics::decodeRLE_248(_locationBackgroundGfxBuf + yPos * 640 + xPos, _spritesGfxBuf + chr->sourceOffset, chr->xSize, chr->ySize,
 		chr->yOffset, _locationHeightTable[_locationNum], _mirroredDrawing != 0);
-	addDirtyRect(offset % 640, offset / 640, chr->xSize, chr->ySize);
+	addDirtyRect(xPos, yPos, chr->xSize, chr->ySize);
 	if (_currentSpriteAnimationLength > 1) {
 		SpriteFrame *chr2 = &_spriteFramesTable[_currentSpriteAnimationFrame2];
-		offset = (_yPosCurrent + _mainSpritesBaseOffset - 54 + chr2->yOffset) * 640 + _xPosCurrent;
+		yPos = _yPosCurrent + _mainSpritesBaseOffset - 54 + chr2->yOffset;
+		xPos = _xPosCurrent;
 		if (_mirroredDrawing == 0) {
-			offset += chr2->xOffset - 14;
+			xPos += chr2->xOffset - 14;
 		} else {
-			offset -= chr2->xSize + chr2->xOffset - 14;
+			xPos -= chr2->xSize + chr2->xOffset - 14;
 		}
-		Graphics::decodeRLE_248(_locationBackgroundGfxBuf + offset, _spritesGfxBuf + chr2->sourceOffset, chr2->xSize, chr2->ySize,
+		Graphics::decodeRLE_248(_locationBackgroundGfxBuf + yPos * 640 + xPos, _spritesGfxBuf + chr2->sourceOffset, chr2->xSize, chr2->ySize,
 			chr2->yOffset, _locationHeightTable[_locationNum], _mirroredDrawing != 0);
-		addDirtyRect(offset % 640, offset / 640, chr2->xSize, chr2->ySize);
+		addDirtyRect(xPos, yPos, chr2->xSize, chr2->ySize);
 	}
 }
 
@@ -1891,13 +1893,13 @@
 		int srcH = READ_LE_UINT16(p + frameOffset + 2);
 		int srcX = READ_LE_UINT16(p + frameOffset + 8);
 		int srcY = READ_LE_UINT16(p + frameOffset + 10);
-		int dstOffset = s->gfxBackgroundOffset + srcX;
-		if (dstOffset < 600 && (_scrollOffset + 320 < dstOffset || _scrollOffset - srcW > dstOffset)) {
+		int xPos = s->gfxBackgroundOffset + srcX;
+		if (xPos < 600 && (_scrollOffset + 320 < xPos || _scrollOffset - srcW > xPos)) {
 			return;
 		}
 		s->xSource = srcX;
 		s->gfxBackgroundOffset += s->backgroundOffset;
-		uint8 *dstPtr = _locationBackgroundGfxBuf + srcY * 640 + dstOffset;
+		uint8 *dstPtr = _locationBackgroundGfxBuf + srcY * 640 + xPos;
 		const uint8 *srcPtr = p + frameOffset + 12;
 		switch (s->colorType) {
 		case 0:
@@ -1910,7 +1912,7 @@
 			Graphics::decodeRLE_248(dstPtr, srcPtr, srcW, srcH, 0, s->yMaxBackground, s->flipX != 0);
 			break;
 		}
-		addDirtyRect(dstOffset % 640, dstOffset / 640 + srcY, srcW, srcH);
+		addDirtyRect(xPos, srcY, srcW, srcH);
 	}
 }
 
@@ -2826,7 +2828,7 @@
 		Graphics::drawStringChar(_locationBackgroundGfxBuf + offset, numStr[i], 640, 102, _charsetGfxBuf);
 		offset += 8;
 	}
-	addDirtyRect(x, y, Graphics::_charset.charW * 3, Graphics::_charset.charH);
+	addDirtyRect(_scrollOffset + x, y, Graphics::_charset.charW * 3, Graphics::_charset.charH);
 }
 
 void TuckerEngine::drawStringAlt(int offset, int color, const uint8 *str, int strLen) {
@@ -3740,20 +3742,20 @@
 		y = count * 10;
 	}
 	for (int i = 0; i < count; ++i) {
-		int dstOffset = xStart - lines[i].w / 2;
-		if (dstOffset < _scrollOffset) {
-			dstOffset = _scrollOffset;
-		} else if (dstOffset > _scrollOffset + 320 - lines[i].w) {
-			dstOffset = _scrollOffset + 320 - lines[i].w;
+		int yPos, xPos = xStart - lines[i].w / 2;
+		if (xPos < _scrollOffset) {
+			xPos = _scrollOffset;
+		} else if (xPos > _scrollOffset + 320 - lines[i].w) {
+			xPos = _scrollOffset + 320 - lines[i].w;
 		}
 		if (_conversationOptionsCount != 0) {
-			dstOffset = xStart + _scrollOffset;
-			dstOffset += (i * 10 + y) * 640;
+			xPos = xStart + _scrollOffset;
+			yPos = i * 10 + y;
 			_panelItemWidth = count;
 		} else {
-			dstOffset += (y - (count - i) * 10) * 640;
+			yPos = y - (count - i) * 10;
 		}
-		drawSpeechTextLine(dataPtr, lines[i].offset, lines[i].count, dstOffset, color);
+		drawSpeechTextLine(dataPtr, lines[i].offset, lines[i].count, xPos, yPos, color);
 	}
 }
 
@@ -3780,23 +3782,24 @@
 	return ret;
 }
 
-void TuckerEngine::drawSpeechTextLine(const uint8 *dataPtr, int pos, int count, int dstOffset, uint8 color) {
-	int startOffset = dstOffset;
+void TuckerEngine::drawSpeechTextLine(const uint8 *dataPtr, int pos, int count, int x, int y, uint8 color) {
+	int xStart = x;
 	int i = 0;
 	for (; i < count && dataPtr[pos] != '\n'; ++i) {
-		Graphics::drawStringChar(_locationBackgroundGfxBuf + dstOffset, dataPtr[pos], 640, color, _charsetGfxBuf);
-		dstOffset += _charWidthTable[dataPtr[pos]];
+		Graphics::drawStringChar(_locationBackgroundGfxBuf + y * 640 + x, dataPtr[pos], 640, color, _charsetGfxBuf);
+		x += _charWidthTable[dataPtr[pos]];
 		++pos;
 	}
-	addDirtyRect(startOffset % 640, startOffset / 640, Graphics::_charset.charW * i, Graphics::_charset.charH);
+	addDirtyRect(xStart, y, Graphics::_charset.charW * i, Graphics::_charset.charH);
 }
 
 void TuckerEngine::redrawScreen(int offset) {
-	debug(9, "redrawScreen() _fullRedrawCounter %d offset %d _dirtyRectsCount %d", _fullRedrawCounter, offset, _dirtyRectsCount);
+	debug(9, "redrawScreen() _fullRedraw %d offset %d _dirtyRectsCount %d", _fullRedraw, offset, _dirtyRectsCount);
 	assert(offset <= kScreenWidth);
-	if (_fullRedrawCounter > 0) {
-		--_fullRedrawCounter;
+	if (_fullRedraw) {
+		_fullRedraw = false;
 		_system->copyRectToScreen(_locationBackgroundGfxBuf + offset, kScreenPitch, 0, 0, kScreenWidth, kScreenHeight);
+		_dirtyRectsPrevCount = _dirtyRectsCount = 0;
 	} else {
 		const int xClip = offset % kScreenPitch;
 		const int yClip = offset / kScreenPitch;
@@ -3806,13 +3809,11 @@
 		}
 		for (int i = 0; i < _dirtyRectsCount; ++i) {
 			redrawScreenRect(clipRect, _dirtyRectsTable[0][i]);
+			_dirtyRectsTable[1][i] = _dirtyRectsTable[0][i];
 		}
 		_dirtyRectsPrevCount = _dirtyRectsCount;
-		for (int i = 0; i < _dirtyRectsCount; ++i) {
-			_dirtyRectsTable[1][i] = _dirtyRectsTable[0][i];
-		}
+		_dirtyRectsCount = 0;
 	}
-	_dirtyRectsCount = 0;
 	_system->updateScreen();
 }
 
@@ -3827,17 +3828,33 @@
 		if (w <= 0 || h <= 0) {
 			return;
 		}
+#if 0
+		static const uint8 outlineColor = 0;
+		memset(_locationBackgroundGfxBuf + r.top           * 640 + r.left, outlineColor, w);
+		memset(_locationBackgroundGfxBuf + (r.top + h - 1) * 640 + r.left, outlineColor, w);
+		for (int y = r.top; y < r.top + h; ++y) {
+			_locationBackgroundGfxBuf[y * 640 + r.left] = outlineColor;
+			_locationBackgroundGfxBuf[y * 640 + r.left + w - 1] = outlineColor;
+		}
+#endif
 		_system->copyRectToScreen(src, 640, r.left, r.top, w, h);
 	}
 }
 
 void TuckerEngine::addDirtyRect(int x, int y, int w, int h) {
-	if (_dirtyRectsCount >= kMaxDirtyRects) {
-		_fullRedrawCounter = 2;
-		_dirtyRectsCount = 0;
-	} else {
-		_dirtyRectsTable[0][_dirtyRectsCount] = Common::Rect(x, y, x + w, y + h);
-		++_dirtyRectsCount;
+	if (!_fullRedraw) {
+		Common::Rect r(x, y, x + w, y + h);
+		for (int i = 0; i < _dirtyRectsCount; ++i) {
+			if (_dirtyRectsTable[0][i].contains(r)) {
+				return;
+			}
+		}
+		if (_dirtyRectsCount < kMaxDirtyRects) {
+			_dirtyRectsTable[0][_dirtyRectsCount] = r;
+			++_dirtyRectsCount;
+		} else {
+			_fullRedraw = true;
+		}
 	}
 }
 

Modified: scummvm/trunk/engines/tucker/tucker.h
===================================================================
--- scummvm/trunk/engines/tucker/tucker.h	2009-07-13 22:08:56 UTC (rev 42455)
+++ scummvm/trunk/engines/tucker/tucker.h	2009-07-13 22:11:54 UTC (rev 42456)
@@ -342,7 +342,7 @@
 	void playSpeechForAction(int i);
 	void drawSpeechText(int xStart, int y, const uint8 *dataPtr, int num, int color);
 	int splitSpeechTextLines(const uint8 *dataPtr, int pos, int x, int &lineCharsCount, int &lineWidth);
-	void drawSpeechTextLine(const uint8 *dataPtr, int pos, int count, int dstOffset, uint8 color);
+	void drawSpeechTextLine(const uint8 *dataPtr, int pos, int count, int x, int y, uint8 color);
 	void redrawScreen(int offset);
 	void redrawScreenRect(const Common::Rect &clip, const Common::Rect &dirty);
 	void addDirtyRect(int x, int y, int w, int h);
@@ -801,7 +801,7 @@
 	uint8 *_currentGfxBackground;
 	int _fadePaletteCounter;
 	uint8 _currentPalette[768];
-	int _fullRedrawCounter;
+	bool _fullRedraw;
 	int _dirtyRectsPrevCount, _dirtyRectsCount;
 	Common::Rect _dirtyRectsTable[2][kMaxDirtyRects];
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list