aboutsummaryrefslogtreecommitdiff
path: root/engines/made/pmvplayer.cpp
diff options
context:
space:
mode:
authorBenjamin Haisch2009-01-22 13:04:29 +0000
committerBenjamin Haisch2009-01-22 13:04:29 +0000
commit5b8105afb3a345cfd66efa795726329f509572c3 (patch)
tree4ff90316c9dee6be8bda8a0c3f8413ab5d8178a5 /engines/made/pmvplayer.cpp
parentd5d7175691ea3cde7aa941886e3197763c1398c6 (diff)
downloadscummvm-rg350-5b8105afb3a345cfd66efa795726329f509572c3.tar.gz
scummvm-rg350-5b8105afb3a345cfd66efa795726329f509572c3.tar.bz2
scummvm-rg350-5b8105afb3a345cfd66efa795726329f509572c3.zip
- Added support for The Manhole EGA version
- Support for 'chunked' picture resources and EGA pictures - Improved the mouth sync in RtZ (still not perfect, though) - Removed obsolete TODOs - Fixed sfPlayMovie to return if the movie playback was aborted or not; this is used by RtZ to determine if it should display the credits screen after the intro movie svn-id: r35997
Diffstat (limited to 'engines/made/pmvplayer.cpp')
-rw-r--r--engines/made/pmvplayer.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/engines/made/pmvplayer.cpp b/engines/made/pmvplayer.cpp
index c3f5879f53..5240a3980d 100644
--- a/engines/made/pmvplayer.cpp
+++ b/engines/made/pmvplayer.cpp
@@ -34,15 +34,15 @@ PmvPlayer::PmvPlayer(MadeEngine *vm, Audio::Mixer *mixer) : _fd(NULL), _vm(vm),
PmvPlayer::~PmvPlayer() {
}
-void PmvPlayer::play(const char *filename) {
+bool PmvPlayer::play(const char *filename) {
- _abort = false;
+ _aborted = false;
_surface = NULL;
_fd = new Common::File();
if (!_fd->open(filename)) {
delete _fd;
- return;
+ return false;
}
uint32 chunkType, chunkSize;
@@ -51,14 +51,14 @@ void PmvPlayer::play(const char *filename) {
if (chunkType != MKID_BE('MOVE')) {
warning("Unexpected PMV video header, expected 'MOVE'");
delete _fd;
- return;
+ return false;
}
readChunk(chunkType, chunkSize); // "MHED"
if (chunkType != MKID_BE('MHED')) {
warning("Unexpected PMV video header, expected 'MHED'");
delete _fd;
- return;
+ return false;
}
uint frameDelay = _fd->readUint16LE();
@@ -108,7 +108,7 @@ void PmvPlayer::play(const char *filename) {
// get it to work well?
_audioStream = Audio::makeAppendableAudioStream(soundFreq, Audio::Mixer::FLAG_UNSIGNED);
- while (!_vm->shouldQuit() && !_abort && !_fd->eos()) {
+ while (!_vm->shouldQuit() && !_aborted && !_fd->eos()) {
int32 frameTime = _vm->_system->getMillis();
@@ -208,6 +208,8 @@ void PmvPlayer::play(const char *filename) {
delete _fd;
delete _surface;
+ return !_aborted;
+
}
void PmvPlayer::readChunk(uint32 &chunkType, uint32 &chunkSize) {
@@ -227,7 +229,7 @@ void PmvPlayer::handleEvents() {
switch (event.type) {
case Common::EVENT_KEYDOWN:
if (event.kbd.keycode == Common::KEYCODE_ESCAPE)
- _abort = true;
+ _aborted = true;
break;
default:
break;