Skip to content

Commit 475cbe2

Browse files
committed
More changes to deal with secondary data directories
1 parent 944ab50 commit 475cbe2

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/modinfowithconflictinfo.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,15 @@ ModInfoWithConflictInfo::Conflicts ModInfoWithConflictInfo::doConflictCheck() co
9999
bool providesAnything = false;
100100
bool hasHiddenFiles = false;
101101

102-
int dataID = 0;
102+
QList<int> dataIDs;
103103
if (m_Core.directoryStructure()->originExists(L"data")) {
104-
dataID = m_Core.directoryStructure()->getOriginByName(L"data").getID();
104+
dataIDs.append(m_Core.directoryStructure()->getOriginByName(L"data").getID());
105+
}
106+
for (auto origin : m_Core.managedGame()->secondaryDataDirectories().keys()) {
107+
if (m_Core.directoryStructure()->originExists(origin.toStdWString())) {
108+
dataIDs.append(
109+
m_Core.directoryStructure()->getOriginByName(origin.toStdWString()).getID());
110+
}
105111
}
106112

107113
std::wstring name = ToWString(this->name());
@@ -145,7 +151,8 @@ ModInfoWithConflictInfo::Conflicts ModInfoWithConflictInfo::doConflictCheck() co
145151
}
146152

147153
auto alternatives = file->getAlternatives();
148-
if ((alternatives.size() == 0) || (alternatives.back().originID() == dataID)) {
154+
if ((alternatives.size() == 0) ||
155+
dataIDs.contains(alternatives.back().originID())) {
149156
// no alternatives -> no conflict
150157
providesAnything = true;
151158
} else {
@@ -181,7 +188,7 @@ ModInfoWithConflictInfo::Conflicts ModInfoWithConflictInfo::doConflictCheck() co
181188

182189
// Sort out the alternatives
183190
for (const auto& altInfo : alternatives) {
184-
if ((altInfo.originID() != dataID) &&
191+
if ((!dataIDs.contains(altInfo.originID())) &&
185192
(altInfo.originID() != origin.getID())) {
186193
FilesOrigin& altOrigin =
187194
m_Core.directoryStructure()->getOriginByID(altInfo.originID());

0 commit comments

Comments
 (0)