diff options
| author | Al <26797547+Al12rs@users.noreply.github.com> | 2020-11-03 05:48:51 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-03 05:48:51 -0800 |
| commit | a7d4f2a0c40d35d547e93994be3f92b6d43a0833 (patch) | |
| tree | 823e38d3f0af39be96a4a2b2d8264b7c851ed08b /src/modinfowithconflictinfo.cpp | |
| parent | 88475677d29a275fd9d25f452f58d3d745720124 (diff) | |
| parent | c5e3fb423fd144faa2db8f2bb156adba6c003d39 (diff) | |
Merge pull request #1276 from ModOrganizer2/alternatives_vector_refactor
Refactor of alternatives vector to use classes for readability.
Diffstat (limited to 'src/modinfowithconflictinfo.cpp')
| -rw-r--r-- | src/modinfowithconflictinfo.cpp | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp index 70f9b3f1..24c154e6 100644 --- a/src/modinfowithconflictinfo.cpp +++ b/src/modinfowithconflictinfo.cpp @@ -145,19 +145,18 @@ void ModInfoWithConflictInfo::doConflictCheck() const } auto alternatives = file->getAlternatives(); - if ((alternatives.size() == 0) || (alternatives.back().first == dataID)) { + if ((alternatives.size() == 0) || (alternatives.back().originID() == dataID)) { // no alternatives -> no conflict providesAnything = true; } else { // Get the archive data for the current mod - bool found = file->getOrigin() == origin.getID(); - std::pair<std::wstring, int> archiveData; - if (found) + DataArchiveOrigin archiveData; + if (file->getOrigin() == origin.getID()) archiveData = file->getArchive(); else { - for (auto alts : alternatives) { - if (alts.first == origin.getID()) { - archiveData = alts.second; + for (const auto& alt : alternatives) { + if (alt.originID() == origin.getID()) { + archiveData = alt.archive(); break; } } @@ -167,25 +166,27 @@ void ModInfoWithConflictInfo::doConflictCheck() const if (file->getOrigin() != origin.getID()) { FilesOrigin &altOrigin = (*m_DirectoryStructure)->getOriginByID(file->getOrigin()); unsigned int altIndex = ModInfo::getIndex(ToQString(altOrigin.getName())); - if (file->getArchive().first.size() == 0) - if (archiveData.first.size() == 0) + if (!file->isFromArchive()) { + if (!archiveData.isValid()) m_OverwrittenList.insert(altIndex); else m_ArchiveLooseOverwrittenList.insert(altIndex); - else - m_ArchiveOverwrittenList.insert(altIndex); + } + else { + m_ArchiveOverwrittenList.insert(altIndex); + } } else { providesAnything = true; } // Sort out the alternatives - for (auto altInfo : alternatives) { - if ((altInfo.first != dataID) && (altInfo.first != origin.getID())) { - FilesOrigin &altOrigin = (*m_DirectoryStructure)->getOriginByID(altInfo.first); + for (const auto& altInfo : alternatives) { + if ((altInfo.originID() != dataID) && (altInfo.originID() != origin.getID())) { + FilesOrigin &altOrigin = (*m_DirectoryStructure)->getOriginByID(altInfo.originID()); QString altOriginName = ToQString(altOrigin.getName()); unsigned int altIndex = ModInfo::getIndex(altOriginName); - if (altInfo.second.first.size() == 0) { - if (archiveData.first.size() == 0) { + if (!altInfo.isFromArchive()) { + if (!archiveData.isValid()) { if (origin.getPriority() > altOrigin.getPriority()) { m_OverwriteList.insert(altIndex); } else { @@ -195,12 +196,12 @@ void ModInfoWithConflictInfo::doConflictCheck() const m_ArchiveLooseOverwrittenList.insert(altIndex); } } else { - if (archiveData.first.size() == 0) { + if (!archiveData.isValid()) { m_ArchiveLooseOverwriteList.insert(altIndex); } else { - if (archiveData.second > altInfo.second.second) { + if (archiveData.order() > altInfo.archive().order()) { m_ArchiveOverwriteList.insert(altIndex); - } else if (archiveData.second < altInfo.second.second) { + } else if (archiveData.order() < altInfo.archive().order()) { m_ArchiveOverwrittenList.insert(altIndex); } } |
