aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gob/coktelvideo.cpp2
-rw-r--r--engines/gob/videoplayer.cpp4
-rw-r--r--engines/gob/videoplayer.h3
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);