summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2024-01-31 20:17:26 +0100
committerGitHub <noreply@github.com>2024-01-31 20:17:26 +0100
commit18abf7c768c715e4399bb68aec5d623633a1427f (patch)
tree1947b47fa6c6ae502baa85804685902aed705083 /Source/Core/VideoCommon/GraphicsModSystem
parent202c10d7572da673b669e8b93d11d2b703829031 (diff)
parent40b050fe3710df4af6b38a338e8a9594714172ce (diff)
Merge pull request #12544 from lioncash/getmod
GraphicsModGroup: Allow heterogenous lookup for GetMod()
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp18
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h7
2 files changed, 11 insertions, 14 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp
index 9ce417e079..0873c09e91 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.cpp
@@ -7,6 +7,8 @@
#include <sstream>
#include <string>
+#include <picojson.h>
+
#include "Common/CommonPaths.h"
#include "Common/FileSearch.h"
#include "Common/FileUtil.h"
@@ -83,7 +85,7 @@ void GraphicsModGroupConfig::Load()
auto mod_full_path = graphics_mod->GetAbsolutePath();
known_paths.insert(std::move(mod_full_path));
- m_graphics_mods.push_back(*graphics_mod);
+ m_graphics_mods.push_back(std::move(*graphics_mod));
}
}
}
@@ -93,15 +95,11 @@ void GraphicsModGroupConfig::Load()
GraphicsModConfig::Source source) {
auto file = dir + DIR_SEP + "metadata.json";
UnifyPathSeparators(file);
- if (known_paths.find(file) != known_paths.end())
- {
+ if (known_paths.contains(file))
return;
- }
- const auto mod = GraphicsModConfig::Create(file, source);
- if (mod)
- {
- m_graphics_mods.push_back(*mod);
- }
+
+ if (auto mod = GraphicsModConfig::Create(file, source))
+ m_graphics_mods.push_back(std::move(*mod));
};
const std::set<std::string> graphics_mod_user_directories =
@@ -174,7 +172,7 @@ std::vector<GraphicsModConfig>& GraphicsModGroupConfig::GetMods()
return m_graphics_mods;
}
-GraphicsModConfig* GraphicsModGroupConfig::GetMod(const std::string& absolute_path) const
+GraphicsModConfig* GraphicsModGroupConfig::GetMod(std::string_view absolute_path) const
{
if (const auto iter = m_path_to_graphics_mod.find(absolute_path);
iter != m_path_to_graphics_mod.end())
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h
index 9614951e96..b2178db3f6 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsModGroup.h
@@ -5,10 +5,9 @@
#include <map>
#include <string>
+#include <string_view>
#include <vector>
-#include <picojson.h>
-
#include "Common/CommonTypes.h"
struct GraphicsModConfig;
@@ -34,7 +33,7 @@ public:
const std::vector<GraphicsModConfig>& GetMods() const;
std::vector<GraphicsModConfig>& GetMods();
- GraphicsModConfig* GetMod(const std::string& absolute_path) const;
+ GraphicsModConfig* GetMod(std::string_view absolute_path) const;
const std::string& GetGameID() const;
@@ -42,6 +41,6 @@ private:
std::string GetPath() const;
std::string m_game_id;
std::vector<GraphicsModConfig> m_graphics_mods;
- std::map<std::string, GraphicsModConfig*> m_path_to_graphics_mod;
+ std::map<std::string, GraphicsModConfig*, std::less<>> m_path_to_graphics_mod;
u32 m_change_count = 0;
};