summaryrefslogtreecommitdiff
path: root/src/modinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modinfo.cpp')
-rw-r--r--src/modinfo.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index 7ae41b02..905341b0 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -144,14 +144,22 @@ std::vector<ModInfo::Ptr> ModInfo::getByModID(QString game, int modID)
{
QMutexLocker locker(&s_Mutex);
- auto iter = s_ModsByModID.find(std::pair<QString, int>(game, modID));
- if (iter == s_ModsByModID.end()) {
+ std::vector<unsigned int> match;
+ for (auto iter : s_ModsByModID) {
+ if (iter.first.second == modID) {
+ if (iter.first.first.compare(game, Qt::CaseInsensitive) == 0) {
+ match = iter.second;
+ break;
+ }
+ }
+ }
+ if (match.empty()) {
return std::vector<ModInfo::Ptr>();
}
std::vector<ModInfo::Ptr> result;
- for (auto idxIter = iter->second.begin(); idxIter != iter->second.end(); ++idxIter) {
- result.push_back(getByIndex(*idxIter));
+ for (auto iter : match) {
+ result.push_back(getByIndex(iter));
}
return result;