aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys/partition_filesystem.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-10-14 10:29:10 -0400
committerGitHub <noreply@github.com>2019-10-14 10:29:10 -0400
commitd3f4d79642c257ed856b02ea1f63f2fd8115dc1e (patch)
tree340266cd6e90446a051d023409ffe1ded832812b /src/core/file_sys/partition_filesystem.cpp
parent5449d0af8c76d261047f4e9074a21198f1cbf88d (diff)
parentfd66788be46a2d13b3d55c9f8f55928f236a1fa9 (diff)
Merge pull request #2930 from DarkLordZach/gamecard-partitions
file_sys: Add code to access raw gamecard partitions and lazily load them
Diffstat (limited to 'src/core/file_sys/partition_filesystem.cpp')
-rw-r--r--src/core/file_sys/partition_filesystem.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/file_sys/partition_filesystem.cpp b/src/core/file_sys/partition_filesystem.cpp
index a5259a593a..846986736c 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.insert_or_assign(name, content_offset + entry.offset);
+ sizes.insert_or_assign(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;
}