From 76e031cbe9f98050d402ea4ccc6350769b283a47 Mon Sep 17 00:00:00 2001 From: Liderate Date: Sat, 2 Mar 2024 19:16:38 -0500 Subject: [PATCH] Remove gameDependency for now. Keep original path for blacklisted files. --- src/BsaPacker.cpp | 4 ---- src/BsaPacker.h | 1 - src/HideLooseAssetService.cpp | 32 ++++++++++++++++---------------- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/src/BsaPacker.cpp b/src/BsaPacker.cpp index 781bfa6..c9d87d2 100644 --- a/src/BsaPacker.cpp +++ b/src/BsaPacker.cpp @@ -36,10 +36,6 @@ namespace BsaPacker return QStringLiteral("BSA Packer"); } - std::vector> Bsa_Packer::requirements() const { - return { Requirements::gameDependency({ "Morrowind", "Oblivion", "Fallout 3", "New Vegas", "Skyrim", "Skyrim Special Edition", "Skyrim VR", "Fallout 4", "Fallout 4 VR", "Starfield"}) }; - } - QString Bsa_Packer::author() const { return QStringLiteral("MattyFez"); diff --git a/src/BsaPacker.h b/src/BsaPacker.h index 0256720..a624586 100644 --- a/src/BsaPacker.h +++ b/src/BsaPacker.h @@ -20,7 +20,6 @@ namespace BsaPacker // IPlugin interface bool init(MOBase::IOrganizer* moInfo) override; [[nodiscard]] QString name() const override; - [[nodiscard]] std::vector> requirements() const override; [[nodiscard]] QString author() const override; [[nodiscard]] QString description() const override; [[nodiscard]] MOBase::VersionInfo version() const override; diff --git a/src/HideLooseAssetService.cpp b/src/HideLooseAssetService.cpp index a4c1604..8342e56 100644 --- a/src/HideLooseAssetService.cpp +++ b/src/HideLooseAssetService.cpp @@ -2,7 +2,6 @@ #include #include -#include #include #include @@ -29,29 +28,30 @@ namespace BsaPacker ext.prepend("*"); } - // Hide subdirectories const QString& absModDir = modDirectory.absolutePath(); for (const QString& subDir : modDirectory.entryList(QDir::Dirs | QDir::NoDotAndDotDot)) { + // Hide subdirectories const QString& absPath = absModDir + '/' + subDir; - QDir dir(absPath); - if (dir.dirName().endsWith(s_HiddenExt) || dir.isEmpty()) { + QDir originalDir(absPath); + if (originalDir.dirName().endsWith(s_HiddenExt) || originalDir.isEmpty()) { continue; } - if (!dir.rename(absPath, absPath + s_HiddenExt)) { - qWarning() << "Failed to hide directory " << absPath; + if (!originalDir.rename(originalDir.absolutePath(), originalDir.absolutePath() + s_HiddenExt)) { + qWarning() << "Failed to hide " << originalDir.absolutePath(); + continue; } - } - // Restore files with blacklisted extension to their original directories - QDir renamerDir(absModDir); - QDirIterator iterator(absModDir, blacklistExtensions, QDir::Files, QDirIterator::Subdirectories); - while (iterator.hasNext()) { - const QFileInfo& fileInfo(iterator.nextFileInfo()); - if (!renamerDir.mkpath(fileInfo.absolutePath().replace(s_HiddenExt, ""))) { - qWarning() << "Failed to make directory " << fileInfo.absolutePath().replace(s_HiddenExt, ""); - continue; + // Restore files with blacklisted extension to their original directories + QDir hiddenDir(originalDir.absolutePath() + s_HiddenExt); + QDirIterator iterator(hiddenDir.absolutePath(), blacklistExtensions, QDir::Files, QDirIterator::Subdirectories); + while (iterator.hasNext()) { + QString hiddenFilePath = iterator.next(); + QString originalFilePath = originalDir.absoluteFilePath(hiddenDir.relativeFilePath(hiddenFilePath)); + originalDir.mkpath(originalFilePath.left(originalFilePath.lastIndexOf("/"))); + if (!originalDir.rename(hiddenFilePath, originalFilePath)) { + qWarning() << "Failed to unhide " << hiddenFilePath; + } } - renamerDir.rename(fileInfo.absoluteFilePath(), fileInfo.absoluteFilePath().replace(s_HiddenExt, "")); } return true;