aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/saga/animation.cpp7
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));