[Scummvm-cvs-logs] SF.net SVN: scummvm:[47699] scummvm/trunk/engines/sci/engine/kgraphics.cpp
mthreepwood at users.sourceforge.net
mthreepwood at users.sourceforge.net
Sat Jan 30 04:57:58 CET 2010
Revision: 47699
http://scummvm.svn.sourceforge.net/scummvm/?rev=47699&view=rev
Author: mthreepwood
Date: 2010-01-30 03:57:58 +0000 (Sat, 30 Jan 2010)
Log Message:
-----------
Add the SCI2.1 variant of kShowMovie; KQ7 now shows the opening video.
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kgraphics.cpp
Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp 2010-01-30 03:37:26 UTC (rev 47698)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp 2010-01-30 03:57:58 UTC (rev 47699)
@@ -1167,8 +1167,7 @@
// The Windows and DOS versions use different video format as well
// as a different argument set.
if (argv[0].toUint16() == 0) {
- // Windows
-
+ // Windows (SCI1.1/SCI2)
Common::String filename = s->_segMan->getString(argv[1]);
Graphics::AviDecoder *aviDecoder = new Graphics::AviDecoder(g_system->getMixer());
@@ -1182,9 +1181,34 @@
aviDecoder->closeFile();
delete player;
delete aviDecoder;
+#ifdef ENABLE_SCI32
+ } else if (argv[0].toUint16() == 1) {
+ // Windows (SCI2.1)
+
+ // TODO: This appears to be some sort of subop. case 0 contains the string
+ // for the video, so we'll just play it from there for now.
+ switch (argv[1].toUint16()) {
+ case 0: {
+ Common::String filename = s->_segMan->getString(argv[2]);
+ Graphics::AviDecoder *aviDecoder = new Graphics::AviDecoder(g_system->getMixer());
+ Graphics::VideoPlayer *player = new Graphics::VideoPlayer(aviDecoder);
+ if (aviDecoder->loadFile(filename.c_str())) {
+ player->playVideo();
+ playedVideo = true;
+ } else {
+ warning("Failed to open movie file %s", filename.c_str());
+ }
+ aviDecoder->closeFile();
+ delete player;
+ delete aviDecoder;
+ break;
+ }
+ default:
+ warning("Unhandled SCI2.1 kShowMovie subop %d", argv[1].toUint16());
+ }
+#endif
} else {
// DOS
-
Common::String filename = s->_segMan->getString(argv[0]);
int delay = argv[1].toUint16(); // Time between frames in ticks
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list