diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/src/knowngames.h | 20 | ||||
| -rw-r--r-- | src/src/organizercore.cpp | 11 | ||||
| -rw-r--r-- | src/src/prefixsetuprunner.cpp | 3 |
3 files changed, 23 insertions, 11 deletions
diff --git a/src/src/knowngames.h b/src/src/knowngames.h index a29e5dc..42679b7 100644 --- a/src/src/knowngames.h +++ b/src/src/knowngames.h @@ -29,35 +29,35 @@ inline constexpr KnownGame KNOWN_GAMES[] = { R"(Software\SureAI\Enderal SE)", "installed path", "Enderal Special Edition"}, {"Fallout 3", "22300", "1454315831", "adeae8bbfc94427db57c7dfecce3f1d4", "Fallout3", "Fallout3", nullptr, - R"(Software\Bethesda Softworks\Fallout3)", "Installed Path", "Fallout 3"}, + R"(Software\Bethesda Softworks\Fallout3)", "installed path", "Fallout 3"}, {"Fallout 4", "377160", "1998527297", "61d52ce4d09d41e48800c22784d13ae8", "Fallout4", "Fallout4", nullptr, - R"(Software\Bethesda Softworks\Fallout4)", "Installed Path", "Fallout 4"}, + R"(Software\Bethesda Softworks\Fallout4)", "installed path", "Fallout 4"}, {"Fallout 4 VR", "611660", nullptr, nullptr, "Fallout4VR", nullptr, nullptr, - R"(Software\Bethesda Softworks\Fallout 4 VR)", "Installed Path", "Fallout 4 VR"}, + R"(Software\Bethesda Softworks\Fallout 4 VR)", "installed path", "Fallout 4 VR"}, {"Fallout New Vegas", "22380", "1454587428", "5daeb974a22a435988892319b3a4f476", "FalloutNV", "FalloutNV", nullptr, - R"(Software\Bethesda Softworks\FalloutNV)", "Installed Path", "Fallout New Vegas"}, + R"(Software\Bethesda Softworks\FalloutNV)", "installed path", "Fallout New Vegas"}, {"Morrowind", "22320", "1440163901", nullptr, "Morrowind", nullptr, nullptr, - R"(Software\Bethesda Softworks\Morrowind)", "Installed Path", "Morrowind"}, + R"(Software\Bethesda Softworks\Morrowind)", "installed path", "Morrowind"}, {"Oblivion", "22330", "1458058109", nullptr, "Oblivion", "Oblivion", nullptr, - R"(Software\Bethesda Softworks\Oblivion)", "Installed Path", "Oblivion"}, + R"(Software\Bethesda Softworks\Oblivion)", "installed path", "Oblivion"}, {"Skyrim", "72850", nullptr, nullptr, "Skyrim", "Skyrim", nullptr, - R"(Software\Bethesda Softworks\Skyrim)", "Installed Path", "Skyrim"}, + R"(Software\Bethesda Softworks\Skyrim)", "installed path", "Skyrim"}, {"Skyrim Special Edition", "489830", "1711230643", "ac82db5035584c7f8a2c548d98c86b2c", "Skyrim Special Edition", "Skyrim Special Edition", nullptr, - R"(Software\Bethesda Softworks\Skyrim Special Edition)", "Installed Path", + R"(Software\Bethesda Softworks\Skyrim Special Edition)", "installed path", "Skyrim Special Edition"}, {"Skyrim VR", "611670", nullptr, nullptr, "Skyrim VR", nullptr, nullptr, - R"(Software\Bethesda Softworks\Skyrim VR)", "Installed Path", "Skyrim VR"}, + R"(Software\Bethesda Softworks\Skyrim VR)", "installed path", "Skyrim VR"}, {"Starfield", "1716740", nullptr, nullptr, "Starfield", nullptr, nullptr, - R"(Software\Bethesda Softworks\Starfield)", "Installed Path", "Starfield"}, + R"(Software\Bethesda Softworks\Starfield)", "installed path", "Starfield"}, // CD Projekt RED Games {"The Witcher 3", "292030", "1495134320", nullptr, "The Witcher 3", nullptr, nullptr, diff --git a/src/src/organizercore.cpp b/src/src/organizercore.cpp index 330eeae..701e169 100644 --- a/src/src/organizercore.cpp +++ b/src/src/organizercore.cpp @@ -2316,8 +2316,17 @@ bool OrganizerCore::checkGameRegistryKey() registryPath = prefix.readHklmValue(wow64Key, valueName);
}
+ // Normalize trailing separators before comparing — Steam writes paths with
+ // a trailing backslash, so the registry value may differ only in that.
+ auto stripTrailingSep = [](QString s) {
+ while (s.endsWith('\\') || s.endsWith('/'))
+ s.chop(1);
+ return s;
+ };
+
if (registryPath.isEmpty() ||
- registryPath.compare(winePath, Qt::CaseInsensitive) != 0) {
+ stripTrailingSep(registryPath).compare(stripTrailingSep(winePath),
+ Qt::CaseInsensitive) != 0) {
const QString displayRegPath = registryPath.isEmpty()
? tr("<not set>") : registryPath;
diff --git a/src/src/prefixsetuprunner.cpp b/src/src/prefixsetuprunner.cpp index 81824e1..74d59bc 100644 --- a/src/src/prefixsetuprunner.cpp +++ b/src/src/prefixsetuprunner.cpp @@ -1306,7 +1306,10 @@ bool PrefixSetupRunner::stepGameDetection() const QString& rVal = game.registry_value; // Convert Linux path to Wine Z: drive path with escaped backslashes. + // Trailing backslash required — game launchers expect it (matches Steam's format). QString winePath = "Z:" + QString(installPath).replace('/', "\\\\"); + if (!winePath.endsWith("\\\\")) + winePath += "\\\\"; regContent += QStringLiteral( "[HKEY_LOCAL_MACHINE\\%1]\n\"%2\"=\"%3\"\n\n" |
