[Scummvm-cvs-logs] CVS: scummvm/scumm sprite_he.cpp,1.73,1.74

kirben kirben at users.sourceforge.net
Sat Feb 26 21:17:54 CET 2005


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

Modified Files:
	sprite_he.cpp 
Log Message:

Correction, only redraw if flags changed.


Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -d -r1.73 -r1.74
--- sprite_he.cpp	27 Feb 2005 03:36:33 -0000	1.73
+++ sprite_he.cpp	27 Feb 2005 05:14:24 -0000	1.74
@@ -532,36 +532,39 @@
 void ScummEngine_v90he::spriteInfoSet_flag13(int spriteId, int value) {
 	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
+	int oldFlags = _spriteTable[spriteId].flags;
 	if (value)
 		_spriteTable[spriteId].flags |= kSF13;
 	else
 		_spriteTable[spriteId].flags &= ~(kSF09 | kSF13);
 
-	if (_spriteTable[spriteId].res_id)
+	if (_spriteTable[spriteId].res_id && _spriteTable[spriteId].flags != oldFlags)
 		_spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw;
 }
 
 void ScummEngine_v90he::spriteInfoSet_flag14(int spriteId, int value) {
 	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
+	int oldFlags = _spriteTable[spriteId].flags;
 	if (value)
 		_spriteTable[spriteId].flags |= kSF14;
 	else
 		_spriteTable[spriteId].flags &= ~(kSF09 | kSF14);
 
-	if (_spriteTable[spriteId].res_id)
+	if (_spriteTable[spriteId].res_id && _spriteTable[spriteId].flags != oldFlags)
 		_spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw;
 }
 
 void ScummEngine_v90he::spriteInfoSet_flag15(int spriteId, int value) {
 	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
+	int oldFlags = _spriteTable[spriteId].flags;
 	if (value)
 		_spriteTable[spriteId].flags |= kSF15;
 	else
 		_spriteTable[spriteId].flags &= ~(kSF09 | kSF15);
 
-	if (_spriteTable[spriteId].res_id)
+	if (_spriteTable[spriteId].res_id && _spriteTable[spriteId].flags != oldFlags)
 		_spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw;
 }
 
@@ -577,12 +580,13 @@
 void ScummEngine_v90he::spriteInfoSet_flag20(int spriteId, int value) {
 	checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
 
+	int oldFlags = _spriteTable[spriteId].flags;
 	if (value)
 		_spriteTable[spriteId].flags |= kSF20;
 	else
 		_spriteTable[spriteId].flags &= ~(kSFChanged | kSF20);
 
-	if (_spriteTable[spriteId].res_id)
+	if (_spriteTable[spriteId].res_id && _spriteTable[spriteId].flags != oldFlags)
 		_spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw;
 }
 





More information about the Scummvm-git-logs mailing list