diff options
author | Matthew Hoops | 2012-08-26 15:49:45 -0400 |
---|---|---|
committer | Matthew Hoops | 2012-08-26 16:12:25 -0400 |
commit | bb1e60e8b2f3bba06ae3b089097f94ea82a70c8a (patch) | |
tree | a434233367725fbb6dc7072776c312f52254d57f /engines/pegasus/pegasus.cpp | |
parent | 7a49b3669a0e18210a2f5409cb35da735f549b11 (diff) | |
parent | 857b92f8ffececa9c1f990d21a6a8d1630199a62 (diff) | |
download | scummvm-rg350-bb1e60e8b2f3bba06ae3b089097f94ea82a70c8a.tar.gz scummvm-rg350-bb1e60e8b2f3bba06ae3b089097f94ea82a70c8a.tar.bz2 scummvm-rg350-bb1e60e8b2f3bba06ae3b089097f94ea82a70c8a.zip |
Merge remote branch 'upstream/master' into pegasus
Conflicts:
AUTHORS
devtools/credits.pl
gui/credits.h
Diffstat (limited to 'engines/pegasus/pegasus.cpp')
-rw-r--r-- | engines/pegasus/pegasus.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/engines/pegasus/pegasus.cpp b/engines/pegasus/pegasus.cpp index 0e426a2943..bbe2e0e212 100644 --- a/engines/pegasus/pegasus.cpp +++ b/engines/pegasus/pegasus.cpp @@ -289,8 +289,10 @@ void PegasusEngine::runIntro() { bool skipped = false; - Video::SeekableVideoDecoder *video = new Video::QuickTimeDecoder(); + Video::VideoDecoder *video = new Video::QuickTimeDecoder(); if (video->loadFile(_introDirectory + "/BandaiLogo.movie")) { + video->start(); + while (!shouldQuit() && !video->endOfVideo() && !skipped) { if (video->needsUpdate()) { const Graphics::Surface *frame = video->decodeNextFrame(); @@ -320,7 +322,8 @@ void PegasusEngine::runIntro() { if (!video->loadFile(_introDirectory + "/Big Movie.movie")) error("Could not load intro movie"); - video->seekToTime(Audio::Timestamp(0, 10 * 600, 600)); + video->seek(Audio::Timestamp(0, 10 * 600, 600)); + video->start(); playMovieScaled(video, 0, 0); @@ -671,13 +674,14 @@ void PegasusEngine::introTimerExpired() { bool skipped = false; - Video::SeekableVideoDecoder *video = new Video::QuickTimeDecoder(); + Video::VideoDecoder *video = new Video::QuickTimeDecoder(); if (!video->loadFile(_introDirectory + "/LilMovie.movie")) error("Failed to load little movie"); bool saveAllowed = swapSaveAllowed(false); bool openAllowed = swapLoadAllowed(false); + video->start(); skipped = playMovieScaled(video, 0, 0); delete video; @@ -815,13 +819,14 @@ void PegasusEngine::doGameMenuCommand(const GameMenuCommand command) { _gfx->clearScreen(); _gfx->updateDisplay(); - Video::SeekableVideoDecoder *video = new Video::QuickTimeDecoder(); + Video::VideoDecoder *video = new Video::QuickTimeDecoder(); if (!video->loadFile(_introDirectory + "/Closing.movie")) error("Could not load closing movie"); uint16 x = (640 - video->getWidth() * 2) / 2; uint16 y = (480 - video->getHeight() * 2) / 2; + video->start(); playMovieScaled(video, x, y); delete video; @@ -1261,7 +1266,7 @@ void PegasusEngine::checkFlashlight() { _neighborhood->checkFlashlight(); } -bool PegasusEngine::playMovieScaled(Video::SeekableVideoDecoder *video, uint16 x, uint16 y) { +bool PegasusEngine::playMovieScaled(Video::VideoDecoder *video, uint16 x, uint16 y) { bool skipped = false; while (!shouldQuit() && !video->endOfVideo() && !skipped) { @@ -2084,10 +2089,12 @@ void PegasusEngine::playEndMessage() { void PegasusEngine::doSubChase() { static const uint32 endTime = 133200 * 1000 / 600; - Video::SeekableVideoDecoder *video = new Video::QuickTimeDecoder(); + Video::VideoDecoder *video = new Video::QuickTimeDecoder(); if (!video->loadFile("Images/Norad Alpha/Sub Chase Movie")) error("Failed to load sub chase"); + video->start(); + while (!shouldQuit() && !video->endOfVideo() && video->getTime() < endTime) { if (video->needsUpdate()) { const Graphics::Surface *frame = video->decodeNextFrame(); |