aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/pegasus.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2012-08-26 15:49:45 -0400
committerMatthew Hoops2012-08-26 16:12:25 -0400
commitbb1e60e8b2f3bba06ae3b089097f94ea82a70c8a (patch)
treea434233367725fbb6dc7072776c312f52254d57f /engines/pegasus/pegasus.cpp
parent7a49b3669a0e18210a2f5409cb35da735f549b11 (diff)
parent857b92f8ffececa9c1f990d21a6a8d1630199a62 (diff)
downloadscummvm-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.cpp19
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();