From c3fa0d6edf0ed65acdf789debed57cd4aa7955ba Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 4 Jun 2017 10:33:14 +0200 Subject: DiscIO: Use std::optional in Volume and Blob --- Source/Core/DiscIO/VolumeWad.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) (limited to 'Source/Core/DiscIO/VolumeWad.cpp') diff --git a/Source/Core/DiscIO/VolumeWad.cpp b/Source/Core/DiscIO/VolumeWad.cpp index d26e6c7678..0af9e7b60f 100644 --- a/Source/Core/DiscIO/VolumeWad.cpp +++ b/Source/Core/DiscIO/VolumeWad.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -29,11 +30,11 @@ CVolumeWAD::CVolumeWAD(std::unique_ptr reader) : m_reader(std::move _assert_(m_reader); // Source: http://wiibrew.org/wiki/WAD_files - m_reader->ReadSwapped(0x00, &m_hdr_size); - m_reader->ReadSwapped(0x08, &m_cert_size); - m_reader->ReadSwapped(0x10, &m_tick_size); - m_reader->ReadSwapped(0x14, &m_tmd_size); - m_reader->ReadSwapped(0x18, &m_data_size); + m_hdr_size = m_reader->ReadSwapped(0x00).value_or(0); + m_cert_size = m_reader->ReadSwapped(0x08).value_or(0); + m_tick_size = m_reader->ReadSwapped(0x10).value_or(0); + m_tmd_size = m_reader->ReadSwapped(0x14).value_or(0); + m_data_size = m_reader->ReadSwapped(0x18).value_or(0); m_offset = Common::AlignUp(m_hdr_size, 0x40) + Common::AlignUp(m_cert_size, 0x40); m_tmd_offset = Common::AlignUp(m_hdr_size, 0x40) + Common::AlignUp(m_cert_size, 0x40) + @@ -109,16 +110,13 @@ std::string CVolumeWAD::GetMakerID(const Partition& partition) const std::optional CVolumeWAD::GetTitleID(const Partition& partition) const { - u64 title_id; - if (!ReadSwapped(m_offset + 0x01DC, &title_id, partition)) - return {}; - return title_id; + return ReadSwapped(m_offset + 0x01DC, partition); } -u16 CVolumeWAD::GetRevision(const Partition& partition) const +std::optional CVolumeWAD::GetRevision(const Partition& partition) const { if (!m_tmd.IsValid()) - return 0; + return {}; return m_tmd.GetTitleVersion(); } -- cgit v1.2.3