aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2010-01-17 22:32:53 +0000
committerMartin Kiewitz2010-01-17 22:32:53 +0000
commit055e17b60e522417089a8c752d138f13d894f4e0 (patch)
tree2519ecaa4528c50dc8d03ddd4a524176445c7b24
parentfb178c0a62eb8b5ab9a56754c2320890154b98ee (diff)
downloadscummvm-rg350-055e17b60e522417089a8c752d138f13d894f4e0.tar.gz
scummvm-rg350-055e17b60e522417089a8c752d138f13d894f4e0.tar.bz2
scummvm-rg350-055e17b60e522417089a8c752d138f13d894f4e0.zip
SCI: fixed detection to not crash when adding sierras pinball creep, also changed detection so that we dont "accept" games that use unknown view resources (otherwise pinball creep will get detected as SCI)
svn-id: r47348
-rw-r--r--engines/sci/detection.cpp4
-rw-r--r--engines/sci/resource.cpp5
2 files changed, 8 insertions, 1 deletions
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index 8660b56704..d3bbedef11 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -273,7 +273,9 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const Common::FSList &fsl
if (gameViews == kViewUnknown) {
SearchMan.remove("SCI_detection");
delete resMan;
- return (const ADGameDescription *)&s_fallbackDesc;
+ // Can't be SCI (or unsupported SCI views). Pinball Creep by sierra also uses resource.map/resource.000 files
+ // but doesnt share sci format at all, if we dont return 0 here we will detect this game as SCI
+ return 0;
}
#ifndef ENABLE_SCI32
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index ae2c6f50e7..5a4379e39b 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -575,6 +575,11 @@ void ResourceManager::init() {
debugC(1, kDebugLevelResMan, "resMan: Detected resource map version %d: %s", _mapVersion, versionDescription(_mapVersion));
debugC(1, kDebugLevelResMan, "resMan: Detected volume version %d: %s", _volVersion, versionDescription(_volVersion));
+ if ((_mapVersion == kResVersionUnknown) && (_volVersion == kResVersionUnknown)) {
+ _viewType = kViewUnknown;
+ return;
+ }
+
scanNewSources();
addInternalSources();
scanNewSources();