aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/plugin_python/src/mobase/wrappers/pyplugins.cpp1
-rw-r--r--libs/plugin_python/src/mobase/wrappers/pyplugins.h4
-rw-r--r--libs/uibase/include/uibase/iplugingame.h13
3 files changed, 18 insertions, 0 deletions
diff --git a/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp b/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp
index c744c7b..6f24438 100644
--- a/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp
+++ b/libs/plugin_python/src/mobase/wrappers/pyplugins.cpp
@@ -53,6 +53,7 @@ namespace mo2::python {
.def("listSaves", &IPluginGame::listSaves, "folder"_a)
.def("isInstalled", &IPluginGame::isInstalled)
.def("isNativeLinux", &IPluginGame::isNativeLinux)
+ .def("usesVFS", &IPluginGame::usesVFS)
.def("gameIcon", &IPluginGame::gameIcon)
.def("gameDirectory", &IPluginGame::gameDirectory)
.def("dataDirectory", &IPluginGame::dataDirectory)
diff --git a/libs/plugin_python/src/mobase/wrappers/pyplugins.h b/libs/plugin_python/src/mobase/wrappers/pyplugins.h
index 1480690..cd33e96 100644
--- a/libs/plugin_python/src/mobase/wrappers/pyplugins.h
+++ b/libs/plugin_python/src/mobase/wrappers/pyplugins.h
@@ -434,6 +434,10 @@ namespace mo2::python {
{
PYBIND11_OVERRIDE(bool, IPluginGame, isNativeLinux, );
}
+ bool usesVFS() const override
+ {
+ PYBIND11_OVERRIDE(bool, IPluginGame, usesVFS, );
+ }
QIcon gameIcon() const override
{
PYBIND11_OVERRIDE_PURE(QIcon, IPluginGame, gameIcon, );
diff --git a/libs/uibase/include/uibase/iplugingame.h b/libs/uibase/include/uibase/iplugingame.h
index c7760f1..86ed7b0 100644
--- a/libs/uibase/include/uibase/iplugingame.h
+++ b/libs/uibase/include/uibase/iplugingame.h
@@ -154,6 +154,19 @@ public:
/**
* this function may be called before init()
*
+ * @return true if Fluorine should mount its FUSE VFS over the game's data
+ * directory for this game (the default). Return false for games that
+ * manage their own virtual file system — e.g. OpenMW, which reads mods
+ * from data= entries in openmw.cfg — so Fluorine skips the mount
+ * entirely and lets the engine resolve its own load order. This is
+ * distinct from isNativeLinux(): a native Linux game (e.g. Stardew
+ * Valley) can still rely on the VFS to expose its mods.
+ */
+ virtual bool usesVFS() const { return true; }
+
+ /**
+ * this function may be called before init()
+ *
* @return an icon for this game
*/
virtual QIcon gameIcon() const = 0;