diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-04-25 20:27:53 -0500 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-04-25 20:27:53 -0500 |
| commit | d06dd9bf82040ad67a6f12fb92fb411770d63f28 (patch) | |
| tree | 1bff8d00aea8a9b4a9eda3939c3187ee6935777d /libs/uibase | |
| parent | 5a506edb574455ef111d48177497279394e18282 (diff) | |
Detect native-Linux Stardew Valley, default executables to no-Proton
Add IPluginGame::isNativeLinux() (virtual, default false) so a plugin
can advertise that the discovered installation is a native Linux build.
Bound through the Python plugin trampoline so basic_games subclasses can
override it.
Stardew Valley plugin: when the install dir contains the StardewValley
launcher script and no Stardew Valley.exe, report isNativeLinux=true and
return Linux-side binary names (StardewValley, StardewModdingAPI). Also
fix GameDataPath to "Mods" — Linux ships the SMAPI mods dir with a
capital M.
ExecutablesList::getPluginExecutables: skip the UseProton flag when the
plugin reports native Linux, so the spawn path falls into launchDirect()
and the game runs without a Wine prefix.
Diffstat (limited to 'libs/uibase')
| -rw-r--r-- | libs/uibase/include/uibase/iplugingame.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libs/uibase/include/uibase/iplugingame.h b/libs/uibase/include/uibase/iplugingame.h index 0fa2508..93ee09f 100644 --- a/libs/uibase/include/uibase/iplugingame.h +++ b/libs/uibase/include/uibase/iplugingame.h @@ -145,6 +145,15 @@ public: /** * this function may be called before init() * + * @return true if the discovered installation is a native Linux build that + * should be launched directly without Proton/Wine. Default false: + * Linux ports of MO2 historically run every game under Proton. + */ + virtual bool isNativeLinux() const { return false; } + + /** + * this function may be called before init() + * * @return an icon for this game */ virtual QIcon gameIcon() const = 0; |
