aboutsummaryrefslogtreecommitdiff
path: root/libs/game_bethesda
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-11 19:04:11 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-11 19:04:11 -0600
commit8a10147bbb1fe6589c4205bcfd26d6d696512ced (patch)
tree66fe7403114e2d63fa48ceee14352bee4dbddae0 /libs/game_bethesda
parenta03455028d8b79a1196bffc2f80c2455c41db065 (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.cpp35
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() {}