[Scummvm-cvs-logs] scummvm branch-1-8 -> 2cb1a23628a5aecd53715f7bede5297d39e7639b
eriktorbjorn
eriktorbjorn at telia.com
Wed Mar 9 21:28:36 CET 2016
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:
2cb1a23628 SCUMM: Fix detection of Maniac Mansion from within DoTT
Commit: 2cb1a23628a5aecd53715f7bede5297d39e7639b
https://github.com/scummvm/scummvm/commit/2cb1a23628a5aecd53715f7bede5297d39e7639b
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2016-03-09T21:27:44+01:00
Commit Message:
SCUMM: Fix detection of Maniac Mansion from within DoTT
It turns out that in some versions of ScummVM, paths end with a
directory separator, while in others they don't. This should handle
both cases, I hope. (It's a bit tricky for me to test.)
Changed paths:
NEWS
engines/scumm/scumm.cpp
diff --git a/NEWS b/NEWS
index cdae78c..d68cb89 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,11 @@
For a more comprehensive changelog of the latest experimental code, see:
https://github.com/scummvm/scummvm/commits/
+1.8.1 (XXXX-XX-XX)
+ SCUMM:
+ - Fixed detection of Maniac Mansion from Day of the Tentacle in the Windows
+ version of ScummVM.
+
1.8.0 (2016-03-04)
New Games:
- Added support for Rex Nebular and the Cosmic Gender Bender.
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 24d676a..8d6214c 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -2608,13 +2608,31 @@ bool ScummEngine::startManiac() {
Common::ConfigManager::DomainMap::iterator iter = ConfMan.beginGameDomains();
for (; iter != ConfMan.endGameDomains(); ++iter) {
Common::ConfigManager::Domain &dom = iter->_value;
- Common::String path = dom.getVal("path");
+ Common::String path1 = dom.getVal("path");
- if (path.hasPrefix(currentPath)) {
- path.erase(0, currentPath.size() + 1);
- if (path.equalsIgnoreCase("maniac")) {
- maniacTarget = iter->_key;
- break;
+ if (path1.hasPrefix(currentPath)) {
+ // In some ports (e.g. Windows), the "path" will end with a
+ // path separator. In others (e.g. Linux), it won't. And
+ // we have no way of knowing exactly what the separator
+ // is. The technical term for this is "annoying".
+
+ path1.erase(0, currentPath.size());
+
+ if (!path1.empty()) {
+ // If we've found the path we're looking for, all that
+ // remains now is the "maniac" part of it. If paths end
+ // with a separator, we'll have "maniac" followed by a
+ // separator. If they don't, we'll have a separator
+ // followed by "maniac".
+ Common::String path2 = path1;
+
+ path1.erase(0, 1);
+ path2.deleteLastChar();
+
+ if (path1.equalsIgnoreCase("maniac") || path2.equalsIgnoreCase("maniac")) {
+ maniacTarget = iter->_key;
+ break;
+ }
}
}
}
More information about the Scummvm-git-logs
mailing list