aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorMatthew Hoops2012-03-08 08:03:50 -0500
committerMatthew Hoops2012-03-08 08:04:54 -0500
commitfe0c5c0e9720c30689b745ff7aee136022c3df8d (patch)
tree6bae238d13ce00b20ba11a557b18dec9e06aba2f /engines/sci/engine
parent30e7a0f00129323676cc9490e7c070374c6472f4 (diff)
downloadscummvm-rg350-fe0c5c0e9720c30689b745ff7aee136022c3df8d.tar.gz
scummvm-rg350-fe0c5c0e9720c30689b745ff7aee136022c3df8d.tar.bz2
scummvm-rg350-fe0c5c0e9720c30689b745ff7aee136022c3df8d.zip
SCI: Fix KQ6 Mac movies with resource fork names
Diffstat (limited to 'engines/sci/engine')
-rw-r--r--engines/sci/engine/kfile.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index aade40fd9f..312497720a 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -24,6 +24,7 @@
#include "common/config-manager.h"
#include "common/debug-channels.h"
#include "common/file.h"
+#include "common/macresman.h"
#include "common/str.h"
#include "common/savefile.h"
#include "common/system.h"
@@ -1080,6 +1081,14 @@ reg_t kFileIOExists(EngineState *s, int argc, reg_t *argv) {
delete outFile;
}
+ // Special case for KQ6 Mac: The game checks for two video files to see
+ // if they exist before it plays them. Since we support multiple naming
+ // schemes for resource fork files, we also need to support that here in
+ // case someone has a "HalfDome.bin" file, etc.
+ if (!exists && g_sci->getGameId() == GID_KQ6 && g_sci->getPlatform() == Common::kPlatformMacintosh &&
+ (name == "HalfDome" || name == "Kq6Movie"))
+ exists = Common::MacResManager::exists(name);
+
debugC(kDebugLevelFile, "kFileIO(fileExists) %s -> %d", name.c_str(), exists);
return make_reg(0, exists);
}