diff options
author | Matthew Hoops | 2011-02-13 01:56:57 -0500 |
---|---|---|
committer | Matthew Hoops | 2011-02-13 16:14:06 -0500 |
commit | b4ca2da72ebf587fd067f82551b2ccff3cc29a40 (patch) | |
tree | 9238702836dba84759b36a975c64fa84592a540e | |
parent | 0be58b2694c2517c24a66035b3ea716bf9ac5fb6 (diff) | |
download | scummvm-rg350-b4ca2da72ebf587fd067f82551b2ccff3cc29a40.tar.gz scummvm-rg350-b4ca2da72ebf587fd067f82551b2ccff3cc29a40.tar.bz2 scummvm-rg350-b4ca2da72ebf587fd067f82551b2ccff3cc29a40.zip |
SCI: Switch to true color mode for the GK2 demo Indeo3 video
-rw-r--r-- | engines/sci/engine/kvideo.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/engines/sci/engine/kvideo.cpp b/engines/sci/engine/kvideo.cpp index 3392a9b9ab..155dec5e27 100644 --- a/engines/sci/engine/kvideo.cpp +++ b/engines/sci/engine/kvideo.cpp @@ -140,7 +140,7 @@ reg_t kShowMovie(EngineState *s, int argc, reg_t *argv) { initGraphics(screenWidth, screenHeight, screenWidth > 320, NULL); if (g_system->getScreenFormat().bytesPerPixel == 1) { - error("This video requires >8bpp color to be displayed, but could not switch to RGB color mode"); + warning("This video requires >8bpp color to be displayed, but could not switch to RGB color mode"); return NULL_REG; } @@ -180,6 +180,19 @@ reg_t kShowMovie(EngineState *s, int argc, reg_t *argv) { Common::String filename = s->_segMan->getString(argv[1]); videoDecoder = new Video::AviDecoder(g_system->getMixer()); + if (filename.equalsIgnoreCase("gk2a.avi")) { + // HACK: Switch to 16bpp graphics for Indeo3. + // The only known movie to do use this codec is the GK2 demo trailer + // If another video turns up that uses Indeo, we may have to add a better + // check. + initGraphics(screenWidth, screenHeight, screenWidth > 320, NULL); + + if (g_system->getScreenFormat().bytesPerPixel == 1) { + warning("This video requires >8bpp color to be displayed, but could not switch to RGB color mode"); + return NULL_REG; + } + } + if (!videoDecoder->loadFile(filename.c_str())) { warning("Failed to open movie file %s", filename.c_str()); delete videoDecoder; @@ -195,7 +208,7 @@ reg_t kShowMovie(EngineState *s, int argc, reg_t *argv) { if (videoDecoder) { playVideo(videoDecoder, s->_videoState); - // HACK: Switch back to 8bpp if we played a QuickTime video. + // HACK: Switch back to 8bpp if we played a true color video. // We also won't be copying the screen to the SCI screen... if (g_system->getScreenFormat().bytesPerPixel != 1) initGraphics(screenWidth, screenHeight, screenWidth > 320); |