summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/file_sys/partition_filesystem.cpp11
-rw-r--r--src/core/file_sys/partition_filesystem.h6
2 files changed, 17 insertions, 0 deletions
diff --git a/src/core/file_sys/partition_filesystem.cpp b/src/core/file_sys/partition_filesystem.cpp
index a5259a593..932409d79 100644
--- a/src/core/file_sys/partition_filesystem.cpp
+++ b/src/core/file_sys/partition_filesystem.cpp
@@ -65,6 +65,9 @@ PartitionFilesystem::PartitionFilesystem(std::shared_ptr<VfsFile> file) {
std::string name(
reinterpret_cast<const char*>(&file_data[strtab_offset + entry.strtab_offset]));
+ offsets[name] = content_offset + entry.offset;
+ sizes[name] = entry.size;
+
pfs_files.emplace_back(std::make_shared<OffsetVfsFile>(
file, entry.size, content_offset + entry.offset, std::move(name)));
}
@@ -78,6 +81,14 @@ Loader::ResultStatus PartitionFilesystem::GetStatus() const {
return status;
}
+std::map<std::string, u64> PartitionFilesystem::GetFileOffsets() const {
+ return offsets;
+}
+
+std::map<std::string, u64> PartitionFilesystem::GetFileSizes() const {
+ return sizes;
+}
+
std::vector<std::shared_ptr<VfsFile>> PartitionFilesystem::GetFiles() const {
return pfs_files;
}
diff --git a/src/core/file_sys/partition_filesystem.h b/src/core/file_sys/partition_filesystem.h
index 248fdfdeb..279193b19 100644
--- a/src/core/file_sys/partition_filesystem.h
+++ b/src/core/file_sys/partition_filesystem.h
@@ -29,6 +29,9 @@ public:
Loader::ResultStatus GetStatus() const;
+ std::map<std::string, u64> GetFileOffsets() const;
+ std::map<std::string, u64> GetFileSizes() const;
+
std::vector<std::shared_ptr<VfsFile>> GetFiles() const override;
std::vector<std::shared_ptr<VfsDirectory>> GetSubdirectories() const override;
std::string GetName() const override;
@@ -80,6 +83,9 @@ private:
bool is_hfs = false;
std::size_t content_offset = 0;
+ std::map<std::string, u64> offsets;
+ std::map<std::string, u64> sizes;
+
std::vector<VirtualFile> pfs_files;
};