aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agos/agos.h1
-rw-r--r--engines/agos/animation.cpp8
-rw-r--r--engines/agos/installshield_cab.cpp1
-rw-r--r--engines/agos/res.cpp7
4 files changed, 12 insertions, 5 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index cf75842cdd..03feafa70f 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -197,6 +197,7 @@ public:
void registerArchive(const Common::String &filename, int priority);
#endif
+ bool hasFile(const Common::String &name);
Common::SeekableReadStream *open(const Common::String &filename);
private:
diff --git a/engines/agos/animation.cpp b/engines/agos/animation.cpp
index d9d6b71a2a..db2cff328c 100644
--- a/engines/agos/animation.cpp
+++ b/engines/agos/animation.cpp
@@ -525,25 +525,25 @@ MoviePlayer *makeMoviePlayer(AGOSEngine_Feeble *vm, const char *name) {
memcpy(shortName, baseName, 6);
sprintf(filename, "%s~1.dxa", shortName);
- if (Common::File::exists(filename)) {
+ if (vm->_archives.hasFile(filename)) {
memset(baseName, 0, sizeof(baseName));
memcpy(baseName, filename, 8);
}
sprintf(filename, "%s~1.smk", shortName);
- if (Common::File::exists(filename)) {
+ if (vm->_archives.hasFile(filename)) {
memset(baseName, 0, sizeof(baseName));
memcpy(baseName, filename, 8);
}
}
sprintf(filename, "%s.dxa", baseName);
- if (Common::File::exists(filename)) {
+ if (vm->_archives.hasFile(filename)) {
return new MoviePlayerDXA(vm, baseName);
}
sprintf(filename, "%s.smk", baseName);
- if (Common::File::exists(filename)) {
+ if (vm->_archives.hasFile(filename)) {
return new MoviePlayerSMK(vm, baseName);
}
diff --git a/engines/agos/installshield_cab.cpp b/engines/agos/installshield_cab.cpp
index f7b49a64c5..ac4e40d1d1 100644
--- a/engines/agos/installshield_cab.cpp
+++ b/engines/agos/installshield_cab.cpp
@@ -162,7 +162,6 @@ InstallShieldCabinet::InstallShieldCabinet(const Common::String &filename) : _in
}
bool InstallShieldCabinet::hasFile(const Common::String &name) {
- warning("hasFile: Filename %s", name.c_str());
return _map.contains(name);
}
diff --git a/engines/agos/res.cpp b/engines/agos/res.cpp
index 69447f4b83..62197340d2 100644
--- a/engines/agos/res.cpp
+++ b/engines/agos/res.cpp
@@ -47,6 +47,13 @@ void ArchiveMan::registerArchive(const Common::String &filename, int priority) {
}
#endif
+bool ArchiveMan::hasFile(const Common::String &name) {
+ if (_fallBack && SearchMan.hasFile(name))
+ return true;
+
+ return Common::SearchSet::hasFile(name);
+}
+
Common::SeekableReadStream *ArchiveMan::open(const Common::String &filename) {
if (_fallBack && SearchMan.hasFile(filename)) {
return SearchMan.createReadStreamForMember(filename);