aboutsummaryrefslogtreecommitdiff
path: root/libs/basic_games_native/src/basicgameplugin.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix looksValid() for games with nested data directories (e.g. Oblivion ↵SulfurNitride2026-03-161-1/+20
| | | | | | | | | | | | | | | Remastered) Some UE5 games have their binary nested under a subdirectory of the Steam installdir even though the appmanifest points one level up. looksValid() was checking only for the binary at the game root, causing "does not seem to contain a game Mod Organizer can manage" when manually browsing. Add a fallback: if the binary isn't found at root, resolve the game's %GAME_PATH%-based dataDirectory and check if that path exists. The data path is unique enough to positively identify the game directory. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Replace wrestool with native Rust PE icon extraction (pelite)SulfurNitride2026-03-121-1/+3
| | | | | | | | | | | | | | | | | - Add icons.rs to nak crate: parses PE resource sections, extracts RT_GROUP_ICON/RT_ICON and builds ICO files in memory - Expose nak_extract_exe_icon() FFI for C++ consumption - Update iconForExecutable() to use Rust FFI instead of shelling out to wrestool; reads all ICO entries for correct color depth - Fix BasicGamePlugin::gameIcon() to call iconForExecutable() (was returning empty QIcon, causing placeholder icons for BG3/Cyberpunk) - Move app icon setup: setDesktopFileName + setWindowIcon to MOApplication constructor (fixes Wayland taskbar/decoration icon) - Move data/com.fluorine.* to data/icons/, install to XDG paths at launch for Wayland compositor icon resolution - Remove icoutils dependency from Docker image and build output Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Replace Python plugins with native C++ .so, remove bundled Python (~95MB)SulfurNitride2026-03-121-0/+380
- Add native plugins: form43_checker, script_extender_checker, preview_dds, basic_games (75 game defs via IPluginProxy pattern with Steam/GOG detection) - Remove portable Python from Dockerfile and build-inner.sh - Add Python settings tab with venv support (system python3 + PyQt6) - Skip loading plugin_python.so when Python disabled (default: off) - Update pythonrunner.cpp to use venv at ~/.local/share/fluorine/python-venv/ - Preserve real file permissions in FUSE VFS (fixes native executable +x bits) - Add FUSE_SET_ATTR_MODE handler so chmod works through VFS - Fix desktop shortcut Exec= to use fluorine-manager launcher, not bare binary Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>