aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/files.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/files.cpp')
-rw-r--r--engines/xeen/files.cpp10
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;