diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2026-01-31 00:57:20 -0600 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2026-03-26 20:13:16 -0500 |
| commit | 6b7a9e6ac388706535bdfdd3465d8dc606674198 (patch) | |
| tree | 375bb02a9f420837b628b00e8799a912320723d4 /Source/Core/VideoCommon/GraphicsModSystem | |
| parent | 9cde551e29565b8e8e1c68ed60e9c22e388acc7b (diff) | |
VideoCommon: allow graphics mods to be added to sub folders
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem')
| -rw-r--r-- | Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp index e3cf5b9a10..c0fa1f82ca 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp @@ -10,6 +10,7 @@ #include <picojson.h> #include "Common/CommonPaths.h" +#include "Common/FileSearch.h" #include "Common/FileUtil.h" #include "Common/JsonUtil.h" #include "Common/Logging/Log.h" @@ -84,13 +85,22 @@ void GraphicsModGroupConfig::Load() const auto try_add_mod = [&known_paths, this](const std::string& dir, GraphicsModConfig::Source source) { - auto file = dir + DIR_SEP + "metadata.json"; - UnifyPathSeparators(file); - if (known_paths.contains(file)) - return; + const auto files = Common::DoFileSearch(dir, ".json", true); + for (const auto& file : files) + { + std::string basename; + SplitPath(file, nullptr, &basename, nullptr); + if (basename == "metadata") + { + auto file_copy = file; + UnifyPathSeparators(file_copy); + if (known_paths.contains(file_copy)) + return; - if (auto mod = GraphicsModConfig::Create(file, source)) - m_graphics_mods.push_back(std::move(*mod)); + if (auto mod = GraphicsModConfig::Create(file_copy, source)) + m_graphics_mods.push_back(std::move(*mod)); + } + } }; const std::set<std::string> graphics_mod_user_directories = |
