diff options
Diffstat (limited to 'engines/pegasus/movie.cpp')
-rwxr-xr-x | engines/pegasus/movie.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/engines/pegasus/movie.cpp b/engines/pegasus/movie.cpp index 75790ed897..9551248ccc 100755 --- a/engines/pegasus/movie.cpp +++ b/engines/pegasus/movie.cpp @@ -57,8 +57,19 @@ void Movie::initFromMovieFile(const Common::String &fileName, bool transparent) releaseMovie(); _video = new Video::QuickTimeDecoder(); - if (!_video->loadFile(fileName)) - error("Could not load video '%s'", fileName.c_str()); + if (!_video->loadFile(fileName)) { + // Replace any colon with an underscore, since only Mac OS X + // supports that. See PegasusEngine::detectOpeningClosingDirectory() + // for more info. + Common::String newName(fileName); + if (newName.contains(':')) + for (uint i = 0; i < newName.size(); i++) + if (newName[i] == ':') + newName.setChar(i, '_'); + + if (!_video->loadFile(newName)) + error("Could not load video '%s'", fileName.c_str()); + } _video->pauseVideo(true); |