[Scummvm-git-logs] scummvm master -> 5acb90fd9db39ac1c0bf1ae2608fdb28c124c73c
djsrv
dservilla at gmail.com
Fri Jul 10 15:10:47 UTC 2020
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:
5acb90fd9d DIRECTOR: Fix flashing on movie start
Commit: 5acb90fd9db39ac1c0bf1ae2608fdb28c124c73c
https://github.com/scummvm/scummvm/commit/5acb90fd9db39ac1c0bf1ae2608fdb28c124c73c
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-10T11:06:02-04:00
Commit Message:
DIRECTOR: Fix flashing on movie start
Changed paths:
engines/director/stage.cpp
diff --git a/engines/director/stage.cpp b/engines/director/stage.cpp
index 650d6d40ff..fc5dafecd1 100644
--- a/engines/director/stage.cpp
+++ b/engines/director/stage.cpp
@@ -377,49 +377,21 @@ bool Stage::setNextMovie(Common::String &movieFilenameRaw) {
}
bool Stage::step() {
- if (_currentMovie) {
+ // finish last movie
+ if (_currentMovie && _currentMovie->getScore()->_playState == kPlayStopped) {
debug(0, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
debug(0, "@@@@ Movie name '%s' in '%s'", _currentMovie->getMacName().c_str(), _currentPath.c_str());
debug(0, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
- switch (_currentMovie->getScore()->_playState) {
- case kPlayNotStarted:
- {
- bool goodMovie = _currentMovie->loadArchive();
+ _currentMovie->getScore()->stopPlay();
+ debugC(1, kDebugEvents, "Finished playback of movie '%s'", _currentMovie->getMacName().c_str());
- // If we came in a loop, then skip as requested
- if (!_nextMovie.frameS.empty()) {
- _currentMovie->getScore()->setStartToLabel(_nextMovie.frameS);
- _nextMovie.frameS.clear();
- }
-
- if (_nextMovie.frameI != -1) {
- _currentMovie->getScore()->setCurrentFrame(_nextMovie.frameI);
- _nextMovie.frameI = -1;
- }
-
- if (!debugChannelSet(-1, kDebugCompileOnly) && goodMovie) {
- debugC(1, kDebugEvents, "Starting playback of movie '%s'", _currentMovie->getMacName().c_str());
- _currentMovie->getScore()->startPlay();
- } else {
- return false;
- }
- }
- return true;
- case kPlayStarted:
- _currentMovie->getScore()->step();
- return true;
- case kPlayStopped:
- _currentMovie->getScore()->stopPlay();
- debugC(1, kDebugEvents, "Finished playback of movie '%s'", _currentMovie->getMacName().c_str());
+ if (_vm->getGameGID() == GID_TESTALL) {
+ _nextMovie = getNextMovieFromQueue();
}
}
- if (_vm->getGameGID() == GID_TESTALL) {
- _nextMovie = getNextMovieFromQueue();
- }
-
- // If a loop was requested, do it
+ // prepare next movie
if (!_nextMovie.movie.empty()) {
_newMovieStarted = true;
@@ -460,7 +432,44 @@ bool Stage::step() {
}
_nextMovie.movie.clear();
- return true;
+ }
+
+ // play current movie
+ if (_currentMovie) {
+ debug(0, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
+ debug(0, "@@@@ Movie name '%s' in '%s'", _currentMovie->getMacName().c_str(), _currentPath.c_str());
+ debug(0, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
+
+ switch (_currentMovie->getScore()->_playState) {
+ case kPlayNotStarted:
+ {
+ bool goodMovie = _currentMovie->loadArchive();
+
+ // If we came in a loop, then skip as requested
+ if (!_nextMovie.frameS.empty()) {
+ _currentMovie->getScore()->setStartToLabel(_nextMovie.frameS);
+ _nextMovie.frameS.clear();
+ }
+
+ if (_nextMovie.frameI != -1) {
+ _currentMovie->getScore()->setCurrentFrame(_nextMovie.frameI);
+ _nextMovie.frameI = -1;
+ }
+
+ if (!debugChannelSet(-1, kDebugCompileOnly) && goodMovie) {
+ debugC(1, kDebugEvents, "Starting playback of movie '%s'", _currentMovie->getMacName().c_str());
+ _currentMovie->getScore()->startPlay();
+ } else {
+ return false;
+ }
+ }
+ // fall through
+ case kPlayStarted:
+ _currentMovie->getScore()->step();
+ return true;
+ default:
+ return false;
+ }
}
return false;
More information about the Scummvm-git-logs
mailing list