[Scummvm-git-logs] scummvm master -> 04bc7f983ab7fbb04738ec28ffde5dba3e898eaf
phcoder
noreply at scummvm.org
Thu Jan 19 16:30:11 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
04bc7f983a NEVERHOOD: Allow loading NHC from extrapath
Commit: 04bc7f983ab7fbb04738ec28ffde5dba3e898eaf
https://github.com/scummvm/scummvm/commit/04bc7f983ab7fbb04738ec28ffde5dba3e898eaf
Author: Vladimir Serbinenko (phcoder at gmail.com)
Date: 2023-01-19T19:30:06+03:00
Commit Message:
NEVERHOOD: Allow loading NHC from extrapath
We can't use SearchMan directly in dialogs.cpp as the engine may not be
running when dialogs.cpp is called
Changed paths:
engines/neverhood/dialogs.cpp
engines/neverhood/neverhood.cpp
diff --git a/engines/neverhood/dialogs.cpp b/engines/neverhood/dialogs.cpp
index c5d0886a5bf..b147e92a32f 100644
--- a/engines/neverhood/dialogs.cpp
+++ b/engines/neverhood/dialogs.cpp
@@ -63,13 +63,20 @@ NeverhoodOptionsWidget::NeverhoodOptionsWidget(GuiObject *boss, const Common::St
"NeverhoodGameOptionsDialog.RepeatWillieHint", _("Repeat useful Willie's hint"),
_("Repeat actual useful hint by Willie"));
- Common::String path = ConfMan.get("path", _domain);
- Common::FSDirectory dir(path);
- Common::FSDirectory *langdir = dir.getSubDirectory("language");
+ Common::FSDirectory dir(ConfMan.get("path", _domain));
+ Common::String extraPath(ConfMan.get("extrapath", _domain));
+ Common::FSDirectory extraDir(extraPath);
+ Common::Array<Common::FSDirectory *> langdirs = { &dir, dir.getSubDirectory("language") };
+ if (!extraPath.empty()) {
+ langdirs.push_back(&extraDir);
+ langdirs.push_back(extraDir.getSubDirectory("language"));
+ }
_nhcFiles.push_back("");
- if (langdir) {
+ for (Common::Array<Common::FSDirectory *>::const_iterator langdir = langdirs.begin(); langdir != langdirs.end(); langdir++) {
Common::ArchiveMemberList nhcFileList;
- langdir->listMatchingMembers(nhcFileList, "*.nhc");
+ if (!(*langdir))
+ continue;
+ (*langdir)->listMatchingMembers(nhcFileList, "*.nhc");
for (Common::ArchiveMemberList::iterator iter = nhcFileList.begin(); iter != nhcFileList.end(); ++iter) {
Common::String nhcFileName = (*iter)->getName();
diff --git a/engines/neverhood/neverhood.cpp b/engines/neverhood/neverhood.cpp
index b6cfc2c99b8..eb20ae8e88e 100644
--- a/engines/neverhood/neverhood.cpp
+++ b/engines/neverhood/neverhood.cpp
@@ -70,6 +70,7 @@ Common::Error NeverhoodEngine::run() {
const Common::FSNode gameDataDir(ConfMan.get("path"));
SearchMan.addSubDirectoryMatching(gameDataDir, "data");
+ SearchMan.addSubDirectoryMatching(gameDataDir, "language");
_isSaveAllowed = false;
@@ -101,7 +102,7 @@ Common::Error NeverhoodEngine::run() {
}
Common::String nhcFile = ConfMan.get("nhc_file");
- if (!nhcFile.empty() && _res->addNhcArchive("language/" + nhcFile + ".nhc")) {
+ if (!nhcFile.empty() && _res->addNhcArchive(nhcFile + ".nhc")) {
uint32 fontSpecHash = calcHash("asRecFont");
if (_res->nhcExists(fontSpecHash, kResTypeData)) {
DataResource fontData(this);
More information about the Scummvm-git-logs
mailing list