diff options
Diffstat (limited to 'engines/xeen/files.cpp')
-rw-r--r-- | engines/xeen/files.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/engines/xeen/files.cpp b/engines/xeen/files.cpp index 2ba3b6f993..a424bd510b 100644 --- a/engines/xeen/files.cpp +++ b/engines/xeen/files.cpp @@ -328,7 +328,11 @@ bool File::open(const Common::String &filename, int ccMode) { int oldMode = files._isDarkCc ? 1 : 0; files.setGameCc(ccMode); - File::open(filename, *_currentArchive); + if (File::exists(filename, *_currentArchive)) + File::open(filename, *_currentArchive); + else + File::open(filename); + files.setGameCc(oldMode); return true; @@ -390,6 +394,10 @@ bool File::exists(const Common::String &filename, int ccMode) { return result; } +bool File::exists(const Common::String &filename, Common::Archive &archive) { + return archive.hasFile(filename); +} + void File::syncBitFlags(Common::Serializer &s, bool *startP, bool *endP) { byte data = 0; |