diff --git a/src/game_features/gameplugins.h b/src/game_features/gameplugins.h index f6382490..3406d91b 100644 --- a/src/game_features/gameplugins.h +++ b/src/game_features/gameplugins.h @@ -15,8 +15,9 @@ class GamePlugins : public details::GameFeatureCRTP virtual void writePluginLists(const MOBase::IPluginList* pluginList) = 0; virtual void readPluginLists(MOBase::IPluginList* pluginList) = 0; virtual QStringList getLoadOrder() = 0; - virtual bool lightPluginsAreSupported() = 0; - virtual bool mediumPluginsAreSupported() = 0; + virtual bool lightPluginsAreSupported() { return false; } + virtual bool mediumPluginsAreSupported() { return false; } + virtual bool blueprintPluginsAreSupported() { return false; } }; } // namespace MOBase diff --git a/src/ipluginlist.h b/src/ipluginlist.h index 246209ba..28b13f2a 100644 --- a/src/ipluginlist.h +++ b/src/ipluginlist.h @@ -213,6 +213,16 @@ class IPluginList */ virtual bool isLightFlagged(const QString& name) const = 0; + /** + * @brief determine if a plugin is flagged as blueprint + * @param name filename of the plugin (without path but with file extension) + * @return true if the file is flagged as blueprint, false if it isn't OR if the file + * doesn't exist. + * @note this plugin flag was added in Starfield and signifies plugins that are + * hidden in the Creation Kit and removed from Plugins.txt when the game loads a save + */ + virtual bool isBlueprintFlagged(const QString& name) const = 0; + /** * @brief determine if a plugin has no records * @param name filename of the plugin (without path but with file extension)