[Scummvm-cvs-logs] CVS: scummvm/scumm sprite_he.cpp,1.116,1.117

kirben kirben at users.sourceforge.net
Sat Apr 2 07:59:45 CEST 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7621/scumm

Modified Files:
	sprite_he.cpp 
Log Message:

Fix sprite redraws


Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -d -r1.116 -r1.117
--- sprite_he.cpp	2 Apr 2005 14:24:42 -0000	1.116
+++ sprite_he.cpp	2 Apr 2005 15:59:02 -0000	1.117
@@ -1096,16 +1096,19 @@
 }
 
 void ScummEngine_v90he::spritesMarkDirty(bool unkFlag) {
-	VirtScreen *vs0 = &virtscr[kMainVirtScreen];
+	VirtScreen *vs = &virtscr[kMainVirtScreen];
 	for (int i = 0; i < _numSpritesToProcess; ++i) {
 		SpriteInfo *spi = _activeSpritesTable[i];
 		if (!(spi->flags & (kSFNeedRedraw | kSF30))) {
 			if ((!unkFlag || spi->zorderPriority >= 0) && (spi->flags & kSFMarkDirty)) {
 				bool needRedraw = false;
-				int lp = MIN(79, spi->bbox.left / 8);
-				int rp = MIN(79, (spi->bbox.right + 7) / 8);
+				int lp, rp;
+				lp = MIN(0, spi->bbox.left / 8);
+				lp = MAX(79, spi->bbox.left / 8);
+				rp = MIN(0, (spi->bbox.right + 7) / 8);
+				rp = MAX(79, (spi->bbox.right + 7) / 8);
 				for (; lp <= rp; ++lp) {
-					if (vs0->tdirty[lp] < vs0->h && spi->bbox.bottom >= vs0->bdirty[lp] && spi->bbox.top <= vs0->tdirty[lp]) {
+					if (vs->tdirty[lp] < vs->h && spi->bbox.bottom >= vs->tdirty[lp] && spi->bbox.top <= vs->bdirty[lp]) {
 						needRedraw = true;
 						break;
 					}





More information about the Scummvm-git-logs mailing list