diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/intern.h | 2 | ||||
-rw-r--r-- | scumm/scumm.cpp | 9 | ||||
-rw-r--r-- | scumm/sprite_he.cpp | 4 |
3 files changed, 10 insertions, 5 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 49e65b02dc..0a37218d1f 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -968,13 +968,13 @@ protected: void spriteGroupCheck(int spriteGroupId); void spriteMarkIfInGroup(int spriteGroupId, uint32 flags); void spriteInfoSet_addImageToList(int spriteId, int imageNum, int *spriteIdptr); - void spritesUpdateImages(); public: void spritesBlitToScreen(); void spritesMarkDirty(bool unkFlag); void spritesSortActiveSprites(); void spritesProcessWiz(bool arg); + void spritesUpdateImages(); protected: /* HE version 90 script opcodes */ diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index f820b1355b..d55a3e6c2a 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -1859,13 +1859,15 @@ load_game: } if (_heversion >= 71) { preProcessAuxQueue(); - processActors(); - postProcessAuxQueue(); if (_heversion >= 90) { ((ScummEngine_v90he *)this)->spritesMarkDirty(0); ((ScummEngine_v90he *)this)->spritesProcessWiz(true); } + + processActors(); + postProcessAuxQueue(); + } else { processActors(); } @@ -1940,6 +1942,9 @@ load_game: /* show or hide mouse */ _system->showMouse(_cursor.state > 0); + if (_heversion >= 90) + ((ScummEngine_v90he *)this)->spritesUpdateImages(); + if (VAR_TIMER != 0xFF) VAR(VAR_TIMER) = 0; return VAR(VAR_TIMER_NEXT); diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp index 5008452d62..19f3b5aa54 100644 --- a/scumm/sprite_he.cpp +++ b/scumm/sprite_he.cpp @@ -1119,9 +1119,9 @@ void ScummEngine_v90he::spritesSortActiveSprites() { if (spi->flags & kSF16) { if (!spi->flags & kSF23) { - if (!spi->flags & kSF30) + if (!(spi->flags & kSF30)) spi->flags |= kSFNeedRedraw; - if (!spi->flags & kSF31) + if (!(spi->flags & kSF31)) spi->flags |= kSF01; } if (spi->group_num) |