[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.350,1.351 intern.h,2.478,2.479 sprite_he.cpp,1.136,1.137

Gregory Montoir cyx at users.sourceforge.net
Mon May 9 11:28:29 CEST 2005


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

Modified Files:
	actor.cpp intern.h sprite_he.cpp 
Log Message:
fixed spritesMarkDirty

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.350
retrieving revision 1.351
diff -u -d -r1.350 -r1.351
--- actor.cpp	30 Apr 2005 22:01:16 -0000	1.350
+++ actor.cpp	9 May 2005 18:26:34 -0000	1.351
@@ -1022,7 +1022,7 @@
 void ScummEngine_v90he::processActors() {
 	preProcessAuxQueue();
 
-	spritesMarkDirty(0);
+	spritesMarkDirty(false);
 	spritesProcessWiz(true);
 
 	if (!_skipProcessActors)
@@ -1030,7 +1030,7 @@
 
 	postProcessAuxQueue();
 
-	spritesMarkDirty(1);
+	spritesMarkDirty(true);
 	spritesProcessWiz(false);
 }
 

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.478
retrieving revision 2.479
diff -u -d -r2.478 -r2.479
--- intern.h	8 May 2005 03:08:01 -0000	2.478
+++ intern.h	9 May 2005 18:26:35 -0000	2.479
@@ -1190,7 +1190,7 @@
 public:
 	void saveOrLoadSpriteData(Serializer *s, uint32 savegameVersion);
 	void spritesBlitToScreen();
-	void spritesMarkDirty(bool unkFlag);
+	void spritesMarkDirty(bool checkZOrder);
 	void spritesSortActiveSprites();
 	void spritesProcessWiz(bool arg);
 	void spritesUpdateImages();

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -d -r1.136 -r1.137
--- sprite_he.cpp	8 May 2005 21:49:46 -0000	1.136
+++ sprite_he.cpp	9 May 2005 18:26:36 -0000	1.137
@@ -1125,17 +1125,24 @@
 	}
 }
 
-void ScummEngine_v90he::spritesMarkDirty(bool unkFlag) {
+void ScummEngine_v90he::spritesMarkDirty(bool checkZOrder) {
 	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)) {
-				int lp, rp;
-				lp = MAX(0, spi->bbox.left / 8);
-				lp = MIN(79, spi->bbox.left / 8);
-				rp = MAX(0, (spi->bbox.right + 7) / 8);
-				rp = MIN(79, (spi->bbox.right + 7) / 8);
+			if ((!checkZOrder || spi->zorderPriority >= 0) && (spi->flags & kSFMarkDirty)) {
+				int lp = spi->bbox.left / 8;
+				if (lp < 0) {
+					lp = 0;
+				} else if (lp > 79) {
+					lp = 79;
+				}
+				int rp = spi->bbox.right + 7 / 8;
+				if (rp < 0) {
+					rp = 0;
+				} else {
+					rp = 79;
+				}
 				for (; lp <= rp; ++lp) {
 					if (vs->tdirty[lp] < vs->h && spi->bbox.bottom >= vs->tdirty[lp] && spi->bbox.top <= vs->bdirty[lp]) {
 						spi->flags |= kSFNeedRedraw;





More information about the Scummvm-git-logs mailing list