summaryrefslogtreecommitdiff
path: root/src/profile.cpp
diff options
context:
space:
mode:
authorLostDragonist <lost.dragonist@gmail.com>2019-03-09 20:47:10 -0600
committerLostDragonist <lost.dragonist@gmail.com>2019-03-09 20:47:10 -0600
commitd26c4e8ea2c2450b4abedf965803a1046cb55625 (patch)
tree2c66d9593ef3ae0a9516bce4fa38ec3f015d683a /src/profile.cpp
parentc1210714f801d69a31397a6254901a00407f6da4 (diff)
Fix conflict detection concerning overwrite
Diffstat (limited to 'src/profile.cpp')
-rw-r--r--src/profile.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/profile.cpp b/src/profile.cpp
index 79f7d59e..259f93c8 100644
--- a/src/profile.cpp
+++ b/src/profile.cpp
@@ -521,20 +521,13 @@ std::vector<std::tuple<QString, QString, int> > Profile::getActiveMods()
for (std::map<int, unsigned int>::const_iterator iter = m_ModIndexByPriority.begin(); iter != m_ModIndexByPriority.end(); iter++ ) {
if ((iter->second != UINT_MAX) && m_ModStatus[iter->second].m_Enabled) {
ModInfo::Ptr modInfo = ModInfo::getByIndex(iter->second);
- result.push_back(std::make_tuple(modInfo->internalName(), modInfo->absolutePath(), m_ModStatus[iter->second].m_Priority));
+ if (modInfo->hasFlag(ModInfo::FLAG_OVERWRITE))
+ result.push_back(std::make_tuple(modInfo->internalName(), modInfo->absolutePath(), INT_MAX));
+ else
+ result.push_back(std::make_tuple(modInfo->internalName(), modInfo->absolutePath(), m_ModStatus[iter->second].m_Priority));
}
}
- unsigned int overwriteIndex = ModInfo::findMod([](ModInfo::Ptr mod) -> bool {
- std::vector<ModInfo::EFlag> flags = mod->getFlags();
- return std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end(); });
-
- if (overwriteIndex != UINT_MAX) {
- ModInfo::Ptr overwriteInfo = ModInfo::getByIndex(overwriteIndex);
- result.push_back(std::make_tuple(overwriteInfo->name(), overwriteInfo->absolutePath(), UINT_MAX));
- } else {
- reportError(tr("Overwrite directory couldn't be parsed"));
- }
return result;
}