diff options
-rw-r--r-- | engines/saga/animation.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/engines/saga/animation.cpp b/engines/saga/animation.cpp index 538d1a78b2..4dd24cb422 100644 --- a/engines/saga/animation.cpp +++ b/engines/saga/animation.cpp @@ -386,10 +386,9 @@ void Anim::load(uint16 animId, const byte *animResourceData, size_t animResource // Cache frame offsets - // WORKAROUND: Cutaway #4 is ending credits. For some reason it - // has wrong number of frames specified in its header. So we - // calculate it here: - if (animId == MAX_ANIMATIONS + 4) + // WORKAROUND: Cutaway with background resource ID 37 (loaded as cutaway #4) is ending credits. + // For some reason it has wrong number of frames specified in its header. So we calculate it here: + if (animId > MAX_ANIMATIONS && _cutawayListLength > 4 && _cutawayList[4].backgroundResourceId == 37) anim->maxFrame = fillFrameOffsets(anim, false); anim->frameOffsets = (size_t *)malloc((anim->maxFrame + 1) * sizeof(*anim->frameOffsets)); |