diff options
-rw-r--r-- | engines/gob/coktelvideo.cpp | 2 | ||||
-rw-r--r-- | engines/gob/videoplayer.cpp | 4 | ||||
-rw-r--r-- | engines/gob/videoplayer.h | 3 |
3 files changed, 6 insertions, 3 deletions
diff --git a/engines/gob/coktelvideo.cpp b/engines/gob/coktelvideo.cpp index c86ac48459..b7d13333b3 100644 --- a/engines/gob/coktelvideo.cpp +++ b/engines/gob/coktelvideo.cpp @@ -1213,7 +1213,7 @@ CoktelVideo::State Vmd::processFrame(uint16 frame) { if (!_vidMem) setVideoMemory(); - for (uint16 i = 0; i < _partsPerFrame; i++) { + for (uint16 i = 0; (i < _partsPerFrame) && (frame < _framesCount); i++) { Part &part = _frames[frame].parts[i]; if (part.type == kPartTypeAudio) { diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp index 4fa07af5dc..ef9d663b6f 100644 --- a/engines/gob/videoplayer.cpp +++ b/engines/gob/videoplayer.cpp @@ -38,7 +38,7 @@ namespace Gob { -const char *VideoPlayer::_extensions[] = { "IMD", "VMD" }; +const char *VideoPlayer::_extensions[] = { "IMD", "VMD", "RMD" }; VideoPlayer::Video::Video(GobEngine *vm) : _vm(vm), _fileName(0), _stream(0), _video(0) { } @@ -63,6 +63,8 @@ bool VideoPlayer::Video::open(const char *fileName, Type which) { _video = new Imd(); } else if (which == kVideoTypeVMD) { _video = new Vmd(_vm->_video->_palLUT); + } else if (which == kVideoTypeRMD) { + _video = new Vmd(_vm->_video->_palLUT); } else { warning("Couldn't open video \"%s\": Invalid video Type", fileName); close(); diff --git a/engines/gob/videoplayer.h b/engines/gob/videoplayer.h index 65d1e2b2cf..d7b55fa98f 100644 --- a/engines/gob/videoplayer.h +++ b/engines/gob/videoplayer.h @@ -48,7 +48,8 @@ public: enum Type { kVideoTypeTry = -1, kVideoTypeIMD = 0, - kVideoTypeVMD = 1 + kVideoTypeVMD = 1, + kVideoTypeRMD = 2 }; VideoPlayer(GobEngine *vm); |