From 34c0b40cf783b149200fd6037ae97045c26e16ff Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Thu, 3 Oct 2024 02:44:33 -0500 Subject: [PATCH] Blueprint support (#162) --------- Co-authored-by: Jonathan Feenstra <26406078+JonathanFeenstra@users.noreply.github.com> --- src/game_features/gameplugins.h | 5 +++-- src/ipluginlist.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) 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)