aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorColin Snover2017-07-26 22:38:35 -0500
committerColin Snover2017-07-26 22:43:20 -0500
commit365dde1e5dd72e65189634d0748dbfcd54067dbb (patch)
tree73734cf07bf5c7d804b4de234f1bbaac25cf8564 /engines/sci
parent655c5973fd3d41dcabc1dee253953a51687e7fed (diff)
downloadscummvm-rg350-365dde1e5dd72e65189634d0748dbfcd54067dbb.tar.gz
scummvm-rg350-365dde1e5dd72e65189634d0748dbfcd54067dbb.tar.bz2
scummvm-rg350-365dde1e5dd72e65189634d0748dbfcd54067dbb.zip
SCI32: Reduce priority of PATCHES directory for Phant2
For whatever reason, Sierra decided that the final patches would go in the root directory for Phant2. The game disc includes (different, older) patches for many of the same resources in the PATCHES directory, and loading those instead makes the game not always work quite right.
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/sci.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp
index f6bc48f1fa..f5e327c619 100644
--- a/engines/sci/sci.cpp
+++ b/engines/sci/sci.cpp
@@ -164,8 +164,14 @@ SciEngine::SciEngine(OSystem *syst, const ADGameDescription *desc, SciGameId gam
// Add the patches directory, except for KQ6CD; The patches folder in some versions of KQ6CD
// (e.g. KQ Collection 1997) is for the demo of Phantasmagoria, included in the disk
- if (_gameId != GID_KQ6)
- SearchMan.addSubDirectoryMatching(gameDataDir, "patches"); // resource patches
+ if (_gameId != GID_KQ6) {
+ // Patch files in the root directory of Phantasmagoria 2 are higher
+ // priority than patch files in the patches directory (the SSCI
+ // installer copies these patches to HDD and gives the HDD directory
+ // top priority)
+ const int priority = _gameId == GID_PHANTASMAGORIA2 ? -1 : 0;
+ SearchMan.addSubDirectoryMatching(gameDataDir, "patches", priority); // resource patches
+ }
// Some releases (e.g. Pointsoft Torin) use a different patch directory name
SearchMan.addSubDirectoryMatching(gameDataDir, "patch"); // resource patches