[Scummvm-git-logs] scummvm master -> a78571655eee9c1538a0d711967cf4c21159221b
sev-
noreply at scummvm.org
Sat Oct 11 21:02:36 UTC 2025
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
0d5c7484b2 DIRECTOR: Put all path resolving debug output to separate channel
dd129a4817 DIRECTOR: Added '@/' as a legit root folder designation
10c3329d0c DIRECTOR: Added more path-related debug output
f24ce7d34e DIRECTOR: Treat '/' as a path separator for D5+
a78571655e WINTERMUTE: Fix compilation
Commit: 0d5c7484b2ff745fdb267a828038f81f980a1718
https://github.com/scummvm/scummvm/commit/0d5c7484b2ff745fdb267a828038f81f980a1718
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-10-11T22:59:16+02:00
Commit Message:
DIRECTOR: Put all path resolving debug output to separate channel
Changed paths:
engines/director/detection.cpp
engines/director/director.h
engines/director/util.cpp
diff --git a/engines/director/detection.cpp b/engines/director/detection.cpp
index 57a2fcf7056..560a1578b80 100644
--- a/engines/director/detection.cpp
+++ b/engines/director/detection.cpp
@@ -79,6 +79,7 @@ static const DebugChannelDef debugFlagList[] = {
{Director::kDebugPaused, "paused", "Pause first movie right after start"},
{Director::kDebugPauseOnLoad, "pauseonload", "Pause every movie right after loading"},
{Director::kDebugSaving, "saving", "Show Debug output while saving movies"},
+ {Director::kDebugPaths, "paths", "Show path resolving"},
DEBUG_CHANNEL_END
};
diff --git a/engines/director/director.h b/engines/director/director.h
index 120e68900df..902b0fb7794 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -94,6 +94,7 @@ enum {
kDebugPaused,
kDebugPauseOnLoad,
kDebugSaving,
+ kDebugPaths,
};
enum {
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 5cb44392ebd..5743b7aed77 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -509,7 +509,7 @@ Common::String rectifyRelativePath(const Common::String &path, const Common::Pat
}
}
Common::String result = "@:" + Common::Path::joinComponents(components).toString(g_director->_dirSeparator);
- debug(9, "rectifyRelativePath(): '%s' + '%s' => '%s'", base.toString(g_director->_dirSeparator).c_str(), path.c_str(), result.c_str());
+ debugC(1, kDebugPaths, "rectifyRelativePath(): '%s' + '%s' => '%s'", base.toString(g_director->_dirSeparator).c_str(), path.c_str(), result.c_str());
warning("rectifyRelativePath(): '%s' + '%s' => '%s'", base.toString(g_director->_dirSeparator).c_str(), path.c_str(), result.c_str());
return result;
}
@@ -689,8 +689,8 @@ Common::Path resolveFSPath(const Common::String &path, const Common::Path &base,
}
if (exists) {
- debugN(9, "%s", recIndent());
- debug(9, "resolveFSPath(): Found filesystem match for %s -> %s", path.c_str(), newPath.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "resolveFSPath(): Found filesystem match for %s -> %s", path.c_str(), newPath.toString().c_str());
return newPath;
}
@@ -711,14 +711,14 @@ Common::Path resolvePathInner(const Common::String &path, const Common::Path &ba
if (!directory) {
// Check SearchMan
if (SearchMan.hasFile(newPath)) {
- debugN(9, "%s", recIndent());
- debug(9, "resolvePath(): Found SearchMan match for %s -> %s", path.c_str(), newPath.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "resolvePath(): Found SearchMan match for %s -> %s", path.c_str(), newPath.toString().c_str());
return newPath;
}
// Check MacResArchive
if (Common::MacResManager::exists(newPath)) {
- debugN(9, "%s", recIndent());
- debug(9, "resolvePath(): Found MacResManager match for %s -> %s", path.c_str(), newPath.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "resolvePath(): Found MacResManager match for %s -> %s", path.c_str(), newPath.toString().c_str());
return newPath;
}
} else {
@@ -746,16 +746,16 @@ Common::Path resolvePathInner(const Common::String &path, const Common::Path &ba
}
}
if (match) {
- debugN(9, "%s", recIndent());
- debug(9, "resolvePath(): Found SearchMan match for %s -> %s", path.c_str(), testParent.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "resolvePath(): Found SearchMan match for %s -> %s", path.c_str(), testParent.toString().c_str());
return testParent;
}
}
}
- debugN(9, "%s", recIndent());
- debug(9, "resolvePath(): No match found for %s", path.c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "resolvePath(): No match found for %s", path.c_str());
return Common::Path();
}
@@ -849,12 +849,12 @@ Common::Path resolvePartialPathWithFuzz(const Common::String &path, const Common
Common::Path findAbsolutePath(const Common::String &path, bool directory, const char **exts) {
Common::Path result, base;
if (isAbsolutePath(path)) {
- debugN(9, "%s", recIndent());
- debug(9, "findAbsolutePath(): searching absolute path");
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findAbsolutePath(): searching absolute path");
result = resolvePathWithFuzz(path, base, directory, exts);
if (!result.empty()) {
- debugN(9, "%s", recIndent());
- debug(9, "findAbsolutePath(): resolved \"%s\" -> \"%s\"", path.c_str(), result.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findAbsolutePath(): resolved \"%s\" -> \"%s\"", path.c_str(), result.toString().c_str());
}
}
return result;
@@ -866,8 +866,8 @@ Common::Path findPath(const Common::Path &path, bool currentFolder, bool searchP
Common::Path findPath(const Common::String &path, bool currentFolder, bool searchPaths, bool directory, const char **exts) {
Common::Path result, base;
- debugN(9, "%s", recIndent());
- debug(9, "findPath(): beginning search for \"%s\"", path.c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findPath(): beginning search for \"%s\"", path.c_str());
Common::String currentPath = g_director->getCurrentPath();
Common::Path current = resolvePath(currentPath, base, true, exts);
@@ -885,25 +885,25 @@ Common::Path findPath(const Common::String &path, bool currentFolder, bool searc
}
if (currentFolder) {
- debugN(9, "%s", recIndent());
- debug(9, "findPath(): searching current folder %s", current.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findPath(): searching current folder %s", current.toString().c_str());
base = current;
result = resolvePartialPathWithFuzz(testPath, base, directory, exts);
if (!result.empty()) {
- debugN(9, "%s", recIndent());
- debug(9, "findPath(): resolved \"%s\" -> \"%s\"", testPath.c_str(), result.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findPath(): resolved \"%s\" -> \"%s\"", testPath.c_str(), result.toString().c_str());
return result;
}
}
// Fall back to checking the game root path
- debugN(9, "%s", recIndent());
- debug(9, "findPath(): searching game root path");
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findPath(): searching game root path");
base = Common::Path();
result = resolvePartialPathWithFuzz(testPath, base, directory, exts);
if (!result.empty()) {
- debugN(9, "%s", recIndent());
- debug(9, "findPath(): resolved \"%s\" -> \"%s\"", testPath.c_str(), result.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findPath(): resolved \"%s\" -> \"%s\"", testPath.c_str(), result.toString().c_str());
return result;
}
@@ -923,23 +923,23 @@ Common::Path findPath(const Common::String &path, bool currentFolder, bool searc
base = Common::Path();
base = resolvePathWithFuzz(searchIn, base, true, exts);
if (base.empty()) {
- debugN(9, "%s", recIndent());
- debug(9, "findPath(): couldn't resolve search path folder %s, skipping", searchIn.c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findPath(): couldn't resolve search path folder %s, skipping", searchIn.c_str());
continue;
}
- debugN(9, "%s", recIndent());
- debug(9, "findPath(): searching search path folder %s", searchIn.c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findPath(): searching search path folder %s", searchIn.c_str());
result = resolvePartialPathWithFuzz(testPath, base, directory, exts);
if (!result.empty()) {
- debugN(9, "%s", recIndent());
- debug(9, "findPath(): resolved \"%s\" -> \"%s\"", testPath.c_str(), result.toString().c_str());
+ debugCN(1, kDebugPaths, "%s", recIndent());
+ debugC(1, kDebugPaths, "findPath(): resolved \"%s\" -> \"%s\"", testPath.c_str(), result.toString().c_str());
return result;
}
}
}
// Return empty path
- debug(9, "findPath(): failed to resolve \"%s\"", path.c_str());
+ debugC(1, kDebugPaths, "findPath(): failed to resolve \"%s\"", path.c_str());
return Common::Path();
}
Commit: dd129a48171fc2c535b9c9c1dc4a407b2cd55bbc
https://github.com/scummvm/scummvm/commit/dd129a48171fc2c535b9c9c1dc4a407b2cd55bbc
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-10-11T22:59:20+02:00
Commit Message:
DIRECTOR: Added '@/' as a legit root folder designation
Changed paths:
engines/director/util.cpp
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 5743b7aed77..64769a3c78e 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -447,7 +447,8 @@ const char *recIndent() {
bool isAbsolutePath(const Common::String &path) {
// Starts with Mac directory notation for the game root
if (path.hasPrefix(Common::String("@:")) ||
- path.hasPrefix(Common::String("@\\"))) {
+ path.hasPrefix(Common::String("@\\")) ||
+ path.hasPrefix(Common::String("@/"))) {
return true;
}
// Starts with a Windows drive letter
@@ -548,7 +549,8 @@ Common::String convertPath(const Common::String &path) {
if (path.hasPrefix("::")) { // Parent directory
idx = 2;
} else if (path.hasPrefix(Common::String("@:")) ||
- path.hasPrefix(Common::String("@\\"))) { // Root of the game
+ path.hasPrefix(Common::String("@\\")) ||
+ path.hasPrefix(Common::String("@/"))) { // Root of the game
idx = 2;
} else if (path.size() >= 3
&& Common::isAlpha(path[0])
Commit: 10c3329d0c220fdf319ece8c17a8520d39e37661
https://github.com/scummvm/scummvm/commit/10c3329d0c220fdf319ece8c17a8520d39e37661
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-10-11T22:59:20+02:00
Commit Message:
DIRECTOR: Added more path-related debug output
Changed paths:
engines/director/util.cpp
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 64769a3c78e..195a37c4fa9 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -633,6 +633,7 @@ Common::String convert83Path(const Common::String &path) {
Common::Path resolveFSPath(const Common::String &path, const Common::Path &base, bool directory) {
// Path is the raw input from Director. Scrub it to be a clean relative path.
Common::String converted = convertPath(path);
+ debugC(2, kDebugPaths, " convertPath(): '%s' => '%s'", path.c_str(), converted.c_str());
// Absolute path to the game directory
Common::Path gamePath = Common::Path(g_director->getGameDataDir()->getPath());
@@ -714,13 +715,13 @@ Common::Path resolvePathInner(const Common::String &path, const Common::Path &ba
// Check SearchMan
if (SearchMan.hasFile(newPath)) {
debugCN(1, kDebugPaths, "%s", recIndent());
- debugC(1, kDebugPaths, "resolvePath(): Found SearchMan match for %s -> %s", path.c_str(), newPath.toString().c_str());
+ debugC(1, kDebugPaths, "resolvePathInner(): Found SearchMan match for %s -> %s", path.c_str(), newPath.toString().c_str());
return newPath;
}
// Check MacResArchive
if (Common::MacResManager::exists(newPath)) {
debugCN(1, kDebugPaths, "%s", recIndent());
- debugC(1, kDebugPaths, "resolvePath(): Found MacResManager match for %s -> %s", path.c_str(), newPath.toString().c_str());
+ debugC(1, kDebugPaths, "resolvePathInner(): Found MacResManager match for %s -> %s", path.c_str(), newPath.toString().c_str());
return newPath;
}
} else {
@@ -749,7 +750,7 @@ Common::Path resolvePathInner(const Common::String &path, const Common::Path &ba
}
if (match) {
debugCN(1, kDebugPaths, "%s", recIndent());
- debugC(1, kDebugPaths, "resolvePath(): Found SearchMan match for %s -> %s", path.c_str(), testParent.toString().c_str());
+ debugC(1, kDebugPaths, "resolvePathInner(): Found SearchMan match for %s -> %s", path.c_str(), testParent.toString().c_str());
return testParent;
}
@@ -757,7 +758,7 @@ Common::Path resolvePathInner(const Common::String &path, const Common::Path &ba
}
debugCN(1, kDebugPaths, "%s", recIndent());
- debugC(1, kDebugPaths, "resolvePath(): No match found for %s", path.c_str());
+ debugC(1, kDebugPaths, "resolvePathInner(): No match found for %s", path.c_str());
return Common::Path();
}
@@ -779,6 +780,7 @@ Common::Path resolvePath(const Common::String &path, const Common::Path &base, b
Common::Path resolvePartialPath(const Common::String &path, const Common::Path &base, bool directory, const char **exts) {
Common::String converted = convertPath(path);
+ debugC(2, kDebugPaths, " convertPath(): '%s' => '%s'", path.c_str(), converted.c_str());
Common::Path result;
Common::StringArray baseTokens = base.splitComponents();
Commit: f24ce7d34e6e76e8cae1175f57a5d09bed6b7295
https://github.com/scummvm/scummvm/commit/f24ce7d34e6e76e8cae1175f57a5d09bed6b7295
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-10-11T22:59:20+02:00
Commit Message:
DIRECTOR: Treat '/' as a path separator for D5+
We consider and hope that by this time they went away from having
'/' in the file names. Thus, we convert it right away to the
current pathSeparator.
Fixes melements' attempt to load "@/DATA/INTRO/INTRO"
Changed paths:
engines/director/util.cpp
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 195a37c4fa9..9e9cec7ef9a 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -539,7 +539,8 @@ Common::String convertPath(const Common::String &path) {
if (path.empty())
return path;
- if (!path.contains(':') && !path.contains('\\') && !path.contains('@')) {
+ if (!path.contains(':') && !path.contains('\\') && !path.contains('@')
+ && (g_director->getVersion() >= 500 && !path.contains('/'))) {
return path;
}
@@ -562,7 +563,7 @@ Common::String convertPath(const Common::String &path) {
}
while (idx < path.size()) {
- if (path[idx] == ':' || path[idx] == '\\')
+ if (path[idx] == ':' || path[idx] == '\\' || (g_director->getVersion() >= 500 && path[idx] == '/'))
res += g_director->_dirSeparator;
else
res += path[idx];
Commit: a78571655eee9c1538a0d711967cf4c21159221b
https://github.com/scummvm/scummvm/commit/a78571655eee9c1538a0d711967cf4c21159221b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-10-11T23:02:18+02:00
Commit Message:
WINTERMUTE: Fix compilation
Changed paths:
engines/wintermute/detection_tables.h
diff --git a/engines/wintermute/detection_tables.h b/engines/wintermute/detection_tables.h
index ad7059e81e5..efc1bb7bf82 100644
--- a/engines/wintermute/detection_tables.h
+++ b/engines/wintermute/detection_tables.h
@@ -1934,7 +1934,7 @@ static const WMEGameDescription gameDescriptions[] = {
// Operacion: Bomba
WME_WINENTRY("operacionbomba", "",
- WME_ENTRY1s("data.dcp", "4f5168a95b5ca46889221c5e9dabe691", 4176238), Common::ES_ESP, WME_1_8_11),
+ WME_ENTRY1s("data.dcp", "4f5168a95b5ca46889221c5e9dabe691", 4176238), Common::ES_ESP, ADGF_NO_FLAGS, WME_1_8_11),
// Paintaria
WME_WINENTRY("paintaria", "",
More information about the Scummvm-git-logs
mailing list