[Scummvm-git-logs] scummvm master -> d32b518837baba95afb071150323fad27943e3b6
sev-
noreply at scummvm.org
Mon Nov 13 19:19:23 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
d32b518837 DIRECTOR: Fix filmloop loading for non-bitmap sprites
Commit: d32b518837baba95afb071150323fad27943e3b6
https://github.com/scummvm/scummvm/commit/d32b518837baba95afb071150323fad27943e3b6
Author: Kartik Sharma (77577353+kartiksharmakk at users.noreply.github.com)
Date: 2023-11-13T20:19:20+01:00
Commit Message:
DIRECTOR: Fix filmloop loading for non-bitmap sprites
This fixes a graphics glitch in the sonic cemetery scene of Total Distortion.
The filmloop was producing extra bounding boxes that led to white artifacts being drawn.
In some cases, particularly in Total Distortion, there could be kInactiveSprite type sprites.
We have to skip processing them to avoid the issue.
To reproduce the issue, run:
./scummvm --start-movie="ATD/HD/NJSONIC.DXR"@300 totaldistortion-win
Changed paths:
engines/director/castmember/filmloop.cpp
diff --git a/engines/director/castmember/filmloop.cpp b/engines/director/castmember/filmloop.cpp
index beae040d83f..71d0452f9ab 100644
--- a/engines/director/castmember/filmloop.cpp
+++ b/engines/director/castmember/filmloop.cpp
@@ -271,7 +271,12 @@ void FilmLoopCastMember::loadFilmLoopDataD4(Common::SeekableReadStreamEndian &st
Sprite sprite(nullptr);
sprite._movie = g_director->getCurrentMovie();
if (newFrame.sprites.contains(channel)) {
- sprite = newFrame.sprites.getVal(channel);
+ // In some cases, particularly in Total Distortion, there could be sprites of type kInactiveSprite.
+ // We need to skip processing them to avoid issues.
+
+ if (newFrame.sprites.getVal(channel)._spriteType == kBitmapSprite) {
+ sprite = newFrame.sprites.getVal(channel);
+ }
}
sprite._puppet = 1;
More information about the Scummvm-git-logs
mailing list