diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/prince/resources.cpp | 14 |
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); |