diff options
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/DiscIO/DirectoryBlob.cpp | 5 | ||||
| -rw-r--r-- | Source/Core/DiscIO/DirectoryBlob.h | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/Source/Core/DiscIO/DirectoryBlob.cpp b/Source/Core/DiscIO/DirectoryBlob.cpp index c86b0396a2..356416b076 100644 --- a/Source/Core/DiscIO/DirectoryBlob.cpp +++ b/Source/Core/DiscIO/DirectoryBlob.cpp @@ -132,6 +132,11 @@ bool DiscContent::Read(u64* offset, u64* length, u8** buffer) const return false; } } + else if (std::holds_alternative<ContentFixedByte>(m_content_source)) + { + const ContentFixedByte& source = std::get<ContentFixedByte>(m_content_source); + std::fill_n(*buffer, bytes_to_read, source.m_byte); + } else { PanicAlertFmt("DirectoryBlob: Invalid content source in DiscContent."); diff --git a/Source/Core/DiscIO/DirectoryBlob.h b/Source/Core/DiscIO/DirectoryBlob.h index e942c14a94..5ab03137e5 100644 --- a/Source/Core/DiscIO/DirectoryBlob.h +++ b/Source/Core/DiscIO/DirectoryBlob.h @@ -71,10 +71,18 @@ struct ContentVolume Partition m_partition; }; +// Content chunk representing a run of identical bytes. +// Useful for padding between chunks within a file. +struct ContentFixedByte +{ + u8 m_byte; +}; + using ContentSource = std::variant<ContentFile, // File const u8*, // Memory ContentPartition, // Partition - ContentVolume // Volume + ContentVolume, // Volume + ContentFixedByte // Fixed value padding >; class DiscContent |
