aboutsummaryrefslogtreecommitdiff
path: root/engines/prince
diff options
context:
space:
mode:
Diffstat (limited to 'engines/prince')
-rw-r--r--engines/prince/resources.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/prince/resources.cpp b/engines/prince/resources.cpp
index bb3db04032..342c16e900 100644
--- a/engines/prince/resources.cpp
+++ b/engines/prince/resources.cpp
@@ -83,11 +83,15 @@ bool PrinceEngine::loadLocation(uint16 locationNr) {
const Common::String locationNrStr = Common::String::format("%02d", _locationNr);
debugEngine("loadLocation %s", locationNrStr.c_str());
- PtcArchive *locationArchive = new PtcArchive();
- if (!locationArchive->open(locationNrStr + "/databank.ptc"))
- error("Can't open location %s", locationNrStr.c_str());
-
- SearchMan.add(locationNrStr, locationArchive);
+ if (!(getFeatures() & GF_EXTRACTED)) {
+ PtcArchive *locationArchive = new PtcArchive();
+ if (!locationArchive->open(locationNrStr + "/databank.ptc"))
+ error("Can't open location %s", locationNrStr.c_str());
+
+ SearchMan.add(locationNrStr, locationArchive);
+ } else {
+ SearchMan.addSubDirectoryMatching(gameDataDir, locationNrStr);
+ }
loadMusic(_locationNr);