diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-11 19:04:11 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-11 19:04:11 -0600 |
| commit | 8a10147bbb1fe6589c4205bcfd26d6d696512ced (patch) | |
| tree | 66fe7403114e2d63fa48ceee14352bee4dbddae0 /libs/game_bethesda | |
| parent | a03455028d8b79a1196bffc2f80c2455c41db065 (diff) | |
Add Root Builder plugin, Linux game detection, and OMOD installer fix
- New native Root Builder plugin (src/plugins/rootbuilder.py) with copy
and symlink deploy modes, auto-deploy hooks, backup/restore, and
third-party conflict detection that moves incompatible plugins to
DisabledPlugins/. In link mode, .exe/.dll are always copied to avoid
Wine/Proton path resolution issues with symlinked executables.
- Fix basic_games detection on Linux: steam_utils now checks native
Steam paths (~/.local/share/Steam, Flatpak, Snap), epic_utils uses
correct Linux Heroic config paths, gog_utils falls back to Heroic
GOG installed.json when Windows registry is unavailable.
- Fix OMOD installer crash: isArchiveSupported now handles both IFileTree
(from mod list refresh) and string (from install check) arguments.
- Add flatpak manifest step to copy source-tree Python plugins
(src/plugins/*.py) into the build output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'libs/game_bethesda')
| -rw-r--r-- | libs/game_bethesda/src/gamebryo/gamegamebryo.cpp | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/libs/game_bethesda/src/gamebryo/gamegamebryo.cpp b/libs/game_bethesda/src/gamebryo/gamegamebryo.cpp index ac9fe22..bcb29f2 100644 --- a/libs/game_bethesda/src/gamebryo/gamegamebryo.cpp +++ b/libs/game_bethesda/src/gamebryo/gamegamebryo.cpp @@ -1,5 +1,7 @@ #include "gamegamebryo.h" +#include <uibase/filesystemutilities.h> + #include "bsainvalidation.h" #include "dataarchives.h" #include "gamebryomoddatacontent.h" @@ -44,37 +46,8 @@ #include <string> #include <vector> -// Case-insensitive file path resolution for Linux. -// On Windows (case-insensitive FS), just returns the input path. -// On Linux, if the exact path doesn't exist, searches the parent directory -// for a file matching the name case-insensitively. -static QString resolveFileCaseInsensitive(const QString& filePath) -{ -#ifdef _WIN32 - return filePath; -#else - if (QFileInfo::exists(filePath)) { - return filePath; - } - - QFileInfo info(filePath); - QDir dir(info.path()); - if (!dir.exists()) { - return filePath; - } - - const QString target = info.fileName(); - const QStringList entries = - dir.entryList(QDir::Files | QDir::Hidden | QDir::System); - for (const QString& entry : entries) { - if (entry.compare(target, Qt::CaseInsensitive) == 0) { - return dir.absoluteFilePath(entry); - } - } - - return filePath; -#endif -} +// Local resolveFileCaseInsensitive moved to MOBase::resolveFileCaseInsensitive +using MOBase::resolveFileCaseInsensitive; GameGamebryo::GameGamebryo() {} |
