diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/saga/introproc_saga2.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/engines/saga/introproc_saga2.cpp b/engines/saga/introproc_saga2.cpp index 7491815303..785534729e 100644 --- a/engines/saga/introproc_saga2.cpp +++ b/engines/saga/introproc_saga2.cpp @@ -99,8 +99,9 @@ void Scene::playMovie(const char *filename) { uint16 x = (g_system->getWidth() - smkDecoder->getWidth()) / 2; uint16 y = (g_system->getHeight() - smkDecoder->getHeight()) / 2; + bool skipVideo = false; - while (!_vm->shouldQuit() && !smkDecoder->endOfVideo()) { + while (!_vm->shouldQuit() && !smkDecoder->endOfVideo() && !skipVideo) { if (smkDecoder->needsUpdate()) { Graphics::Surface *frame = smkDecoder->decodeNextFrame(); if (frame) { @@ -114,8 +115,10 @@ void Scene::playMovie(const char *filename) { } Common::Event event; - while (_vm->_system->getEventManager()->pollEvent(event)) - ; + while (_vm->_system->getEventManager()->pollEvent(event)) { + if ((event.type == Common::EVENT_KEYDOWN && event.kbd.keycode == Common::KEYCODE_ESCAPE) || event.type == Common::EVENT_LBUTTONUP) + skipVideo = true; + } _vm->_system->delayMillis(10); } |