[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