diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-17 23:59:40 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-17 23:59:48 -0600 |
| commit | 480a57cf037a46f176128e6c94aa5616fcf704a3 (patch) | |
| tree | 35be94099e2669f518c623acdf8fe23ee82e55a8 /libs/game_bethesda/src/games/fallout3 | |
| parent | 91e1d7f9f03ab3fd77cee94c1eac2abf89254e50 (diff) | |
Fix Wine prefix deployment, INI handling, and data directory paths
- 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 <noreply@anthropic.com>
Diffstat (limited to 'libs/game_bethesda/src/games/fallout3')
3 files changed, 12 insertions, 12 deletions
diff --git a/libs/game_bethesda/src/games/fallout3/fallout3bsainvalidation.cpp b/libs/game_bethesda/src/games/fallout3/fallout3bsainvalidation.cpp index ce981fb..43c8733 100644 --- a/libs/game_bethesda/src/games/fallout3/fallout3bsainvalidation.cpp +++ b/libs/game_bethesda/src/games/fallout3/fallout3bsainvalidation.cpp @@ -2,7 +2,7 @@ Fallout3BSAInvalidation::Fallout3BSAInvalidation(MOBase::DataArchives* dataArchives, MOBase::IPluginGame const* game) - : GamebryoBSAInvalidation(dataArchives, "fallout.ini", game) + : GamebryoBSAInvalidation(dataArchives, "Fallout.ini", game) {} QString Fallout3BSAInvalidation::invalidationBSAName() const diff --git a/libs/game_bethesda/src/games/fallout3/fallout3dataarchives.cpp b/libs/game_bethesda/src/games/fallout3/fallout3dataarchives.cpp index ed6627b..167cce5 100644 --- a/libs/game_bethesda/src/games/fallout3/fallout3dataarchives.cpp +++ b/libs/game_bethesda/src/games/fallout3/fallout3dataarchives.cpp @@ -14,8 +14,8 @@ QStringList Fallout3DataArchives::archives(const MOBase::IProfile* profile) cons QStringList result; QString iniFile = profile->localSettingsEnabled() - ? QDir(profile->absolutePath()).absoluteFilePath("fallout.ini") - : localGameDirectory().absoluteFilePath("fallout.ini"); + ? QDir(profile->absolutePath()).absoluteFilePath("Fallout.ini") + : localGameDirectory().absoluteFilePath("Fallout.ini"); result.append(getArchivesFromKey(iniFile, "SArchiveList")); return result; @@ -27,7 +27,7 @@ void Fallout3DataArchives::writeArchiveList(MOBase::IProfile* profile, QString list = before.join(", "); QString iniFile = profile->localSettingsEnabled() - ? QDir(profile->absolutePath()).absoluteFilePath("fallout.ini") - : localGameDirectory().absoluteFilePath("fallout.ini"); + ? QDir(profile->absolutePath()).absoluteFilePath("Fallout.ini") + : localGameDirectory().absoluteFilePath("Fallout.ini"); setArchivesToKey(iniFile, "SArchiveList", list); } diff --git a/libs/game_bethesda/src/games/fallout3/gamefallout3.cpp b/libs/game_bethesda/src/games/fallout3/gamefallout3.cpp index f2f4562..75e1ea3 100644 --- a/libs/game_bethesda/src/games/fallout3/gamefallout3.cpp +++ b/libs/game_bethesda/src/games/fallout3/gamefallout3.cpp @@ -40,7 +40,7 @@ bool GameFallout3::init(IOrganizer* moInfo) registerFeature(dataArchives); registerFeature(std::make_shared<Fallout3BSAInvalidation>(dataArchives.get(), this)); registerFeature(std::make_shared<GamebryoSaveGameInfo>(this)); - registerFeature(std::make_shared<GamebryoLocalSavegames>(this, "fallout.ini")); + registerFeature(std::make_shared<GamebryoLocalSavegames>(this, "Fallout.ini")); registerFeature(std::make_shared<Fallout3ModDataChecker>(this)); registerFeature( std::make_shared<Fallout3ModDataContent>(m_Organizer->gameFeatures())); @@ -167,14 +167,14 @@ void GameFallout3::initializeProfile(const QDir& path, ProfileSettings settings) if (settings.testFlag(IPluginGame::CONFIGURATION)) { if (settings.testFlag(IPluginGame::PREFER_DEFAULTS) || - !QFileInfo(myGamesPath(), "fallout.ini").exists()) { - copyToProfile(gameDirectory().absolutePath(), path, "fallout_default.ini", - "fallout.ini"); + !QFileInfo(myGamesPath(), "Fallout.ini").exists()) { + copyToProfile(gameDirectory().absolutePath(), path, "Fallout_default.ini", + "Fallout.ini"); } else { - copyToProfile(myGamesPath(), path, "fallout.ini"); + copyToProfile(myGamesPath(), path, "Fallout.ini"); } - copyToProfile(myGamesPath(), path, "falloutprefs.ini"); + copyToProfile(myGamesPath(), path, "FalloutPrefs.ini"); copyToProfile(myGamesPath(), path, "FalloutCustom.ini"); copyToProfile(myGamesPath(), path, "custom.ini"); copyToProfile(myGamesPath(), path, "GECKCustom.ini"); @@ -246,7 +246,7 @@ QString GameFallout3::gameNexusName() const QStringList GameFallout3::iniFiles() const { - return {"fallout.ini", "falloutprefs.ini", "FalloutCustom.ini", "GECKCustom.ini", + return {"Fallout.ini", "FalloutPrefs.ini", "FalloutCustom.ini", "GECKCustom.ini", "GECKPrefs.ini"}; } |
