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/enderal/gameenderal.cpp | |
| 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/enderal/gameenderal.cpp')
| -rw-r--r-- | libs/game_bethesda/src/games/enderal/gameenderal.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/libs/game_bethesda/src/games/enderal/gameenderal.cpp b/libs/game_bethesda/src/games/enderal/gameenderal.cpp index fb4e1d7..959d545 100644 --- a/libs/game_bethesda/src/games/enderal/gameenderal.cpp +++ b/libs/game_bethesda/src/games/enderal/gameenderal.cpp @@ -51,7 +51,7 @@ bool GameEnderal::init(IOrganizer* moInfo) registerFeature(dataArchives); registerFeature(std::make_shared<EnderalBSAInvalidation>(dataArchives.get(), this)); registerFeature(std::make_shared<GamebryoSaveGameInfo>(this)); - registerFeature(std::make_shared<EnderalLocalSavegames>(this, "enderal.ini")); + registerFeature(std::make_shared<EnderalLocalSavegames>(this, "Enderal.ini")); registerFeature(std::make_shared<EnderalModDataChecker>(this)); registerFeature(std::make_shared<EnderalModDataContent>(moInfo->gameFeatures())); registerFeature(std::make_shared<EnderalGamePlugins>(moInfo)); @@ -126,16 +126,16 @@ void GameEnderal::initializeProfile(const QDir& path, ProfileSettings settings) if (settings.testFlag(IPluginGame::CONFIGURATION)) { if (settings.testFlag(IPluginGame::PREFER_DEFAULTS) || - !QFileInfo(myGamesPath() + "/enderal.ini").exists()) { + !QFileInfo(myGamesPath() + "/Enderal.ini").exists()) { // there is no default ini, actually they are going to put them in for us! - copyToProfile(gameDirectory().absolutePath(), path, "enderal_default.ini", - "enderal.ini"); - copyToProfile(gameDirectory().absolutePath(), path, "enderalprefs_default.ini", - "enderalprefs.ini"); + copyToProfile(gameDirectory().absolutePath(), path, "Enderal_default.ini", + "Enderal.ini"); + copyToProfile(gameDirectory().absolutePath(), path, "EnderalPrefs_default.ini", + "EnderalPrefs.ini"); } else { - copyToProfile(myGamesPath(), path, "enderal.ini"); - copyToProfile(myGamesPath(), path, "enderalprefs.ini"); + copyToProfile(myGamesPath(), path, "Enderal.ini"); + copyToProfile(myGamesPath(), path, "EnderalPrefs.ini"); } } } @@ -193,6 +193,12 @@ QString GameEnderal::gameShortName() const return "Enderal"; } +QString GameEnderal::localAppName() const +{ + // Enderal uses lowercase "enderal" in AppData/Local + return "enderal"; +} + QString GameEnderal::gameNexusName() const { return "enderal"; @@ -215,7 +221,7 @@ QStringList GameEnderal::validShortNames() const QStringList GameEnderal::iniFiles() const { - return {"enderal.ini", "enderalprefs.ini"}; + return {"Enderal.ini", "EnderalPrefs.ini"}; } QStringList GameEnderal::DLCPlugins() const |
