From 05aa96d20ca726908a7d8b1943f86f0c4e11bf18 Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Wed, 17 Jun 2026 01:46:09 -0500 Subject: Prepare Nexus-safe release cleanup --- .../patchwizard/lib/PatchFinder.cpp | 85 ---------------------- 1 file changed, 85 deletions(-) delete mode 100644 libs/installer_fomod_plus/patchwizard/lib/PatchFinder.cpp (limited to 'libs/installer_fomod_plus/patchwizard/lib/PatchFinder.cpp') diff --git a/libs/installer_fomod_plus/patchwizard/lib/PatchFinder.cpp b/libs/installer_fomod_plus/patchwizard/lib/PatchFinder.cpp deleted file mode 100644 index 855fe2b..0000000 --- a/libs/installer_fomod_plus/patchwizard/lib/PatchFinder.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include "PatchFinder.h" - -std::vector PatchFinder::getAvailablePatchesForMod(const MOBase::IModInterface* mod) -{ - std::vector available_patches = {}; - - // Verify that the mod has plugins in some shape or form. - if (const auto it = m_installedPlugins.find(mod); it == m_installedPlugins.end()) { - return available_patches; - } - - // Look through the database - for (const auto& fomodDbEntries = mFomodDb->getEntries(); const auto& entry : fomodDbEntries) { - for (const auto& option : entry->getOptions()) { - // Skip options that are already selected/installed - if (option.selectionState == SelectionState::Selected) { - continue; - } - - // Extract just the filename from the path (handle both / and \) - const auto fileName = option.fileName.substr(option.fileName.find_last_of("/\\") + 1); - - // Skip if already installed in the modlist - if (m_installedPluginsCacheSet.contains(fileName)) { - continue; - } - - // Technically without this check, we're doing a lookup for the entire modlist, which actually - // kinda works, but isn't the intention of this function. Might want to consider reworking - // it to map to mod names with one pass of the DB instead of a DB pass per mod. - if (!std::ranges::any_of(option.masters, [&mod](const std::string& master) { - return master == mod->name().toStdString(); - })) { - continue; - } - - // If we have all of this patch's masters in our modlist, and it's not installed, add it to the results. - if (std::ranges::all_of(option.masters, [this](const std::string& master) { - return m_installedPluginsCacheSet.contains(master); - })) { - AvailablePatch patch{ - option, - entry->getDisplayName(), - mod->name().toStdString(), - false, // not installed - false, // not hidden - option.selectionState == SelectionState::Deselected // userDeselected - }; - available_patches.push_back(patch); - } - } - } - - return available_patches; -} - -std::vector PatchFinder::getAvailablePatchesForModList() -{ - std::vector available_patches = {}; - for (const auto& modName : m_organizer->modList()->allMods()) { - const auto mod = m_organizer->modList()->getMod(modName); - if (mod == nullptr) { - continue; - } - for (const auto& available_patch : getAvailablePatchesForMod(mod)) { - available_patches.emplace_back(available_patch); - } - } - - return available_patches; -} - -void PatchFinder::populateInstalledPlugins() -{ - for (const auto& modName : m_organizer->modList()->allMods()) { - const auto mod = m_organizer->modList()->getMod(modName); - const auto mod_tree = mod->fileTree(); - for (auto it = mod_tree->begin(); it != mod_tree->end(); ++it) { - if ((*it)->isFile() && isPluginFile((*it)->name())) { - m_installedPlugins[mod].emplace_back((*it)->name().toStdString()); - m_installedPluginsCacheSet.insert((*it)->name().toStdString()); - } - } - } -} \ No newline at end of file -- cgit v1.3.1