aboutsummaryrefslogtreecommitdiff
path: root/src/src/vfs/trackedwrites.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/src/vfs/trackedwrites.h')
-rw-r--r--src/src/vfs/trackedwrites.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/src/vfs/trackedwrites.h b/src/src/vfs/trackedwrites.h
index a8ebe08..6f414ec 100644
--- a/src/src/vfs/trackedwrites.h
+++ b/src/src/vfs/trackedwrites.h
@@ -21,6 +21,21 @@
class TrackedWrites
{
public:
+ enum class DuplicateState
+ {
+ Identical,
+ Different,
+ };
+
+ struct DuplicateEntry
+ {
+ std::string relative_path;
+ std::string overwrite_path;
+ std::string mod_name;
+ std::string mod_path;
+ DuplicateState state;
+ };
+
TrackedWrites() = default;
// Load tracking data from a JSON file.
@@ -66,6 +81,13 @@ public:
const std::string& overwrite_dir,
const std::vector<std::pair<std::string, std::string>>& mods);
+ // Read-only duplicate review: for every file in overwrite, check whether the
+ // same relative path exists in any enabled mod. The highest-priority match
+ // wins. No mutation is performed.
+ std::vector<DuplicateEntry> scanOverwriteDuplicates(
+ const std::string& overwrite_dir,
+ const std::vector<std::pair<std::string, std::string>>& mods) const;
+
// Get all tracked mappings (for debugging / inspection).
std::unordered_map<std::string, std::string> allMappings() const;