From 480a57cf037a46f176128e6c94aa5616fcf704a3 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Tue, 17 Feb 2026 23:59:40 -0600 Subject: Fix Wine prefix deployment, INI handling, and data directory paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix data directory path to use ~/.var/app/com.fluorine.manager consistently (was ~/.local/share/fluorine in committed code) - Fix VFS helper path in fuseconnector.cpp to use fluorineDataDir() - Fix localAppFolder() to resolve Wine prefix AppData/Local on Linux instead of returning XDG ~/.local/share - Add localAppName() virtual method for correct AppData folder mapping (Enderal→"enderal", Nehrim→"Oblivion") - Fix mergeTweak() to use direct INI parser instead of QSettings which corrupts backslashes and URL-encodes spaces in keys - Make resolveWineDataDirName() more robust with existence checks and fallback chain (documentsDirectory → gameShortName → gameName) - Add comprehensive debug logging throughout Wine prefix deployment - Fix INI case handling: copy instead of symlink for case-mismatched INIs, ensure both proper-case and lowercase aliases exist - Remove native build script (Flatpak only) Co-Authored-By: Claude Opus 4.6 --- .../src/games/fallout4vr/fallout4vrdataarchives.cpp | 8 ++++---- libs/game_bethesda/src/games/fallout4vr/gamefallout4vr.cpp | 14 +++++++------- 2 files changed, 11 insertions(+), 11 deletions(-) (limited to 'libs/game_bethesda/src/games/fallout4vr') diff --git a/libs/game_bethesda/src/games/fallout4vr/fallout4vrdataarchives.cpp b/libs/game_bethesda/src/games/fallout4vr/fallout4vrdataarchives.cpp index 58a9a09..366724f 100644 --- a/libs/game_bethesda/src/games/fallout4vr/fallout4vrdataarchives.cpp +++ b/libs/game_bethesda/src/games/fallout4vr/fallout4vrdataarchives.cpp @@ -23,8 +23,8 @@ QStringList Fallout4VRDataArchives::archives(const MOBase::IProfile* profile) co QStringList result; QString iniFile = profile->localSettingsEnabled() - ? QDir(profile->absolutePath()).absoluteFilePath("fallout4.ini") - : localGameDirectory().absoluteFilePath("fallout4.ini"); + ? QDir(profile->absolutePath()).absoluteFilePath("Fallout4.ini") + : localGameDirectory().absoluteFilePath("Fallout4.ini"); result.append(getArchivesFromKey(iniFile, "SResourceArchiveList")); result.append(getArchivesFromKey(iniFile, "SResourceArchiveList2")); @@ -37,8 +37,8 @@ void Fallout4VRDataArchives::writeArchiveList(MOBase::IProfile* profile, QString list = before.join(", "); QString iniFile = profile->localSettingsEnabled() - ? QDir(profile->absolutePath()).absoluteFilePath("fallout4.ini") - : localGameDirectory().absoluteFilePath("fallout4.ini"); + ? QDir(profile->absolutePath()).absoluteFilePath("Fallout4.ini") + : localGameDirectory().absoluteFilePath("Fallout4.ini"); if (list.length() > 255) { int splitIdx = list.lastIndexOf(",", 256); setArchivesToKey(iniFile, "SResourceArchiveList", list.mid(0, splitIdx)); diff --git a/libs/game_bethesda/src/games/fallout4vr/gamefallout4vr.cpp b/libs/game_bethesda/src/games/fallout4vr/gamefallout4vr.cpp index bd2448b..852bf7d 100644 --- a/libs/game_bethesda/src/games/fallout4vr/gamefallout4vr.cpp +++ b/libs/game_bethesda/src/games/fallout4vr/gamefallout4vr.cpp @@ -36,7 +36,7 @@ bool GameFallout4VR::init(IOrganizer* moInfo) } registerFeature(std::make_shared(this)); - registerFeature(std::make_shared(this, "fallout4custom.ini")); + registerFeature(std::make_shared(this, "Fallout4Custom.ini")); registerFeature(std::make_shared(this)); registerFeature( std::make_shared(m_Organizer->gameFeatures())); @@ -112,14 +112,14 @@ void GameFallout4VR::initializeProfile(const QDir& path, ProfileSettings setting if (settings.testFlag(IPluginGame::CONFIGURATION)) { if (settings.testFlag(IPluginGame::PREFER_DEFAULTS) || - !QFileInfo(myGamesPath() + "/fallout4.ini").exists()) { - copyToProfile(gameDirectory().absolutePath(), path, "fallout4.ini"); + !QFileInfo(myGamesPath() + "/Fallout4.ini").exists()) { + copyToProfile(gameDirectory().absolutePath(), path, "Fallout4.ini"); } else { - copyToProfile(myGamesPath(), path, "fallout4.ini"); + copyToProfile(myGamesPath(), path, "Fallout4.ini"); } - copyToProfile(myGamesPath(), path, "fallout4prefs.ini"); - copyToProfile(myGamesPath(), path, "fallout4custom.ini"); + copyToProfile(myGamesPath(), path, "Fallout4Prefs.ini"); + copyToProfile(myGamesPath(), path, "Fallout4Custom.ini"); } } @@ -175,7 +175,7 @@ QString GameFallout4VR::gameNexusName() const QStringList GameFallout4VR::iniFiles() const { - return {"fallout4.ini", "fallout4custom.ini", "fallout4prefs.ini"}; + return {"Fallout4.ini", "Fallout4Custom.ini", "Fallout4Prefs.ini"}; } QStringList GameFallout4VR::DLCPlugins() const -- cgit v1.3.1