summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/DirectoryBlob.cpp
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2021-09-22 02:57:31 +0200
committerAdmiral H. Curtiss <pikachu025@gmail.com>2021-10-23 16:51:45 +0200
commitf8611f71395f0dc469582c8cdfce7c601c635b00 (patch)
treec5f217be0f0215a94ad90261de456127c1f201d8 /Source/Core/DiscIO/DirectoryBlob.cpp
parentb7a9cc37b1872dbd8e5f2ca8e3f715e546798433 (diff)
DiscIO/DirectoryBlob: Add a content source that reads data from a DiscIO::Volume.
Diffstat (limited to 'Source/Core/DiscIO/DirectoryBlob.cpp')
-rw-r--r--Source/Core/DiscIO/DirectoryBlob.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp
index e76fa7ad27..c86b0396a2 100644
--- a/Source/Core/DiscIO/DirectoryBlob.cpp
+++ b/Source/Core/DiscIO/DirectoryBlob.cpp
@@ -123,6 +123,15 @@ bool DiscContent::Read(u64* offset, u64* length, u8** buffer) const
return false;
}
}
+ else if (std::holds_alternative<ContentVolume>(m_content_source))
+ {
+ const auto& source = std::get<ContentVolume>(m_content_source);
+ if (!source.m_volume->Read(source.m_offset + offset_in_content, bytes_to_read, *buffer,
+ source.m_partition))
+ {
+ return false;
+ }
+ }
else
{
PanicAlertFmt("DirectoryBlob: Invalid content source in DiscContent.");