summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/VolumeWad.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-06-04 10:33:14 +0200
committerJosJuice <josjuice@gmail.com>2017-06-05 13:26:51 +0200
commitc3fa0d6edf0ed65acdf789debed57cd4aa7955ba (patch)
treef8f42f79831b513161902d819a945d60368f7499 /Source/Core/DiscIO/VolumeWad.cpp
parente23cfc29654ece853309454a7a37306cc696af19 (diff)
DiscIO: Use std::optional in Volume and Blob
Diffstat (limited to 'Source/Core/DiscIO/VolumeWad.cpp')
-rw-r--r--Source/Core/DiscIO/VolumeWad.cpp20
1 files changed, 9 insertions, 11 deletions
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 <locale>
#include <map>
#include <memory>
+#include <optional>
#include <string>
#include <utility>
#include <vector>
@@ -29,11 +30,11 @@ CVolumeWAD::CVolumeWAD(std::unique_ptr<IBlobReader> 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<u32>(0x00).value_or(0);
+ m_cert_size = m_reader->ReadSwapped<u32>(0x08).value_or(0);
+ m_tick_size = m_reader->ReadSwapped<u32>(0x10).value_or(0);
+ m_tmd_size = m_reader->ReadSwapped<u32>(0x14).value_or(0);
+ m_data_size = m_reader->ReadSwapped<u32>(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<u64> CVolumeWAD::GetTitleID(const Partition& partition) const
{
- u64 title_id;
- if (!ReadSwapped(m_offset + 0x01DC, &title_id, partition))
- return {};
- return title_id;
+ return ReadSwapped<u64>(m_offset + 0x01DC, partition);
}
-u16 CVolumeWAD::GetRevision(const Partition& partition) const
+std::optional<u16> CVolumeWAD::GetRevision(const Partition& partition) const
{
if (!m_tmd.IsValid())
- return 0;
+ return {};
return m_tmd.GetTitleVersion();
}