aboutsummaryrefslogtreecommitdiff
path: root/libs/game_bethesda/src/games/fallout3
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-17 23:59:40 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-17 23:59:48 -0600
commit480a57cf037a46f176128e6c94aa5616fcf704a3 (patch)
tree35be94099e2669f518c623acdf8fe23ee82e55a8 /libs/game_bethesda/src/games/fallout3
parent91e1d7f9f03ab3fd77cee94c1eac2abf89254e50 (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')
-rw-r--r--libs/game_bethesda/src/games/fallout3/fallout3bsainvalidation.cpp2
-rw-r--r--libs/game_bethesda/src/games/fallout3/fallout3dataarchives.cpp8
-rw-r--r--libs/game_bethesda/src/games/fallout3/gamefallout3.cpp14
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"};
}