aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2016-02-22 14:22:59 +0100
committerMartin Kiewitz2016-02-22 14:24:37 +0100
commit2c247a03e935027eda91757f5a064d9bd714e791 (patch)
treeb9a016bb58bae2d4abd53c82ddeff05e94465c1e
parentd6881100dd5613c8573f8f8235b93772ae513e49 (diff)
downloadscummvm-rg350-2c247a03e935027eda91757f5a064d9bd714e791.tar.gz
scummvm-rg350-2c247a03e935027eda91757f5a064d9bd714e791.tar.bz2
scummvm-rg350-2c247a03e935027eda91757f5a064d9bd714e791.zip
SCI: Add hack for Pepper's Adventure in Time CDAUDIO issue
Game checks for file CDAUDIO. Currently the kFileIO(Exists) code is working pretty slowly on at least Windows. Needs to get fixed properly by enhancing SaveFileManager(). This is primarily for branch 1.8.0.
-rw-r--r--engines/sci/engine/kfile.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index f155fe75cb..335763a35f 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -601,6 +601,16 @@ reg_t kFileIOExists(EngineState *s, int argc, reg_t *argv) {
bool exists = false;
+ if (g_sci->getGameId() == GID_PEPPER) {
+ // HACK: Special case for Pepper's Adventure in Time
+ // The game checks like crazy for the file CDAUDIO when entering the game menu.
+ // On at least Windows that makes the engine slow down to a crawl and takes at least 1 second.
+ // Should get solved properly by changing the code below. This here is basically for 1.8.0 release.
+ // TODO: Fix this properly.
+ if (name == "CDAUDIO")
+ return NULL_REG;
+ }
+
// Check for regular file
exists = Common::File::exists(name);