aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorsylvaintv2011-07-09 03:26:43 +0200
committersylvaintv2011-07-09 03:26:43 +0200
commit831d358d425b8d0e2725df87054fd321e6e8dd3b (patch)
tree8eaa722c2604683817109a13f7d48be55d08b025 /engines
parent36222c747fb2feb35d8e3b8fae3e9e4eb7657111 (diff)
downloadscummvm-rg350-831d358d425b8d0e2725df87054fd321e6e8dd3b.tar.gz
scummvm-rg350-831d358d425b8d0e2725df87054fd321e6e8dd3b.tar.bz2
scummvm-rg350-831d358d425b8d0e2725df87054fd321e6e8dd3b.zip
TOON: Fix rare palette glitch during one frame after cutscene
Diffstat (limited to 'engines')
-rw-r--r--engines/toon/movie.cpp3
-rw-r--r--engines/toon/toon.cpp5
2 files changed, 6 insertions, 2 deletions
diff --git a/engines/toon/movie.cpp b/engines/toon/movie.cpp
index 2318eaaac7..7637f4e62f 100644
--- a/engines/toon/movie.cpp
+++ b/engines/toon/movie.cpp
@@ -94,7 +94,7 @@ void Movie::play(Common::String video, int32 flags) {
_vm->getAudioManager()->setMusicVolume(0);
_decoder->loadFile(video.c_str());
playVideo(isFirstIntroVideo);
- _vm->flushPalette(false);
+ _vm->flushPalette(true);
if (flags & 1)
_vm->getAudioManager()->setMusicVolume(_vm->getAudioManager()->isMusicMuted() ? 0 : 255);
_decoder->close();
@@ -103,7 +103,6 @@ void Movie::play(Common::String video, int32 flags) {
bool Movie::playVideo(bool isFirstIntroVideo) {
debugC(1, kDebugMovie, "playVideo(isFirstIntroVideo: %d)", isFirstIntroVideo);
-
while (!_vm->shouldQuit() && !_decoder->endOfVideo()) {
if (_decoder->needsUpdate()) {
const Graphics::Surface *frame = _decoder->decodeNextFrame();
diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index c261ca1db1..401ab3d70e 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -690,6 +690,11 @@ bool ToonEngine::showMainmenu(bool &loadedGame) {
}
}
+ if (_needPaletteFlush) {
+ flushPalette(false);
+ _needPaletteFlush = false;
+ }
+
parseInput();
copyToVirtualScreen(true);
_system->delayMillis(17);