aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/resource.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index f5edda9eb0..92b90d00ea 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -615,8 +615,7 @@ int ResourceManager::addAppropriateSources() {
SearchMan.listMatchingMembers(mapFiles, "resmap.0??");
SearchMan.listMatchingMembers(files, "ressci.0??");
- // We need to have the same number of maps as resource archives
- if (mapFiles.empty() || files.empty() || mapFiles.size() != files.size())
+ if (mapFiles.empty() || files.empty())
return 0;
if (Common::File::exists("resaud.001")) {
@@ -626,16 +625,23 @@ int ResourceManager::addAppropriateSources() {
for (Common::ArchiveMemberList::const_iterator mapIterator = mapFiles.begin(); mapIterator != mapFiles.end(); ++mapIterator) {
Common::String mapName = (*mapIterator)->getName();
int mapNumber = atoi(strrchr(mapName.c_str(), '.') + 1);
+ bool foundVolume = false;
for (Common::ArchiveMemberList::const_iterator fileIterator = files.begin(); fileIterator != files.end(); ++fileIterator) {
Common::String resName = (*fileIterator)->getName();
int resNumber = atoi(strrchr(resName.c_str(), '.') + 1);
if (mapNumber == resNumber) {
+ foundVolume = true;
addSource(new VolumeResourceSource(resName, addExternalMap(mapName, mapNumber), mapNumber));
break;
}
}
+
+ // GK2 on Steam comes with an extra bogus resource map file
+ if (!foundVolume) {
+ warning("Could not find corresponding volume for %s", mapName.c_str());
+ }
}
// SCI2.1 resource patches