[Scummvm-git-logs] scummvm master -> e0d3b0573049b3f39cccbb69d5b4b1f5db4588fe
criezy
criezy at scummvm.org
Sun Feb 21 21:09:11 UTC 2021
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:
e0d3b05730 SWORD25: Fix running with non-extracted files
Commit: e0d3b0573049b3f39cccbb69d5b4b1f5db4588fe
https://github.com/scummvm/scummvm/commit/e0d3b0573049b3f39cccbb69d5b4b1f5db4588fe
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2021-02-21T21:09:02Z
Commit Message:
SWORD25: Fix running with non-extracted files
After loading or saving a game, the engine believed it was running
with extracted files, when then cause a crash when looking for
files in the PackageManager.
This fixes bug #12173
Changed paths:
engines/sword25/package/packagemanager.cpp
engines/sword25/package/packagemanager.h
engines/sword25/sword25.cpp
diff --git a/engines/sword25/package/packagemanager.cpp b/engines/sword25/package/packagemanager.cpp
index e33fe6798e..b57652e899 100644
--- a/engines/sword25/package/packagemanager.cpp
+++ b/engines/sword25/package/packagemanager.cpp
@@ -156,9 +156,6 @@ bool PackageManager::loadDirectoryAsPackage(const Common::String &directoryName,
_archiveList.push_front(new ArchiveEntry(folderArchive, mountPosition));
- _extractedFiles = true;
- _directoryName = directoryName;
-
return true;
}
}
diff --git a/engines/sword25/package/packagemanager.h b/engines/sword25/package/packagemanager.h
index 5687763379..b958a445ec 100644
--- a/engines/sword25/package/packagemanager.h
+++ b/engines/sword25/package/packagemanager.h
@@ -104,6 +104,15 @@ public:
FT_FILE = (1 << 1)
};
+ /**
+ *
+ * Set the PackageManager to run on extracted game files.s
+ */
+ void setRunWithExtractedFiles(const Common::String &directoryName) {
+ _extractedFiles = true;
+ _directoryName = directoryName;
+ }
+
/**
* Mounts the contents of a package in the directory specified in the directory tree.
* @param FileName The filename of the package to mount
diff --git a/engines/sword25/sword25.cpp b/engines/sword25/sword25.cpp
index 3591fcc864..88f6047999 100644
--- a/engines/sword25/sword25.cpp
+++ b/engines/sword25/sword25.cpp
@@ -109,7 +109,9 @@ Common::Error Sword25Engine::appStart() {
// Load packages
PackageManager *packageManagerPtr = Kernel::getInstance()->getPackage();
if (getGameFlags() & GF_EXTRACTED) {
- if (!packageManagerPtr->loadDirectoryAsPackage(ConfMan.get("path"), "/"))
+ Common::String gameDirectory = ConfMan.get("path");
+ packageManagerPtr->setRunWithExtractedFiles(gameDirectory);
+ if (!packageManagerPtr->loadDirectoryAsPackage(gameDirectory, "/"))
return Common::kUnknownError;
} else {
if (!loadPackages())
More information about the Scummvm-git-logs
mailing list