diff options
Diffstat (limited to 'src/shared/fileregisterfwd.h')
| -rw-r--r-- | src/shared/fileregisterfwd.h | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/shared/fileregisterfwd.h b/src/shared/fileregisterfwd.h index 720e6e30..a3cf8132 100644 --- a/src/shared/fileregisterfwd.h +++ b/src/shared/fileregisterfwd.h @@ -42,15 +42,36 @@ using OriginID = int; constexpr FileIndex InvalidFileIndex = UINT_MAX; constexpr OriginID InvalidOriginID = -1; - -// a vector of {originId, {archiveName, order}} -// -// if a file is in an archive, archiveName is the name of the bsa and order +// if a file is in an archive, name is the name of the bsa and order // is the order of the associated plugin in the plugins list -// // is a file is not in an archive, archiveName is empty and order is usually // -1 -using AlternativesVector = std::vector<std::pair<OriginID, std::pair<std::wstring, int>>>; +struct DataArchiveOrigin +{ + std::wstring name = L""; + int order = -1; + + bool isValid() const { + return name.size() > 0; + } + + DataArchiveOrigin(std::wstring pname, int porder) + : name(pname), order(porder) {} + + DataArchiveOrigin() {} +}; + +struct FileAlternative +{ + OriginID originID = -1; + DataArchiveOrigin archive; + + bool isFromArchive() const { + return archive.isValid(); + } +}; + +using AlternativesVector = std::vector<FileAlternative>; struct DirectoryStats { |
