Remove CBlobBigEndianReader

We can simply put ReadSwapped directly in IBlobReader.
This commit is contained in:
JosJuice
2017-05-19 21:23:00 +02:00
parent f32482b337
commit fcb2c5bd29
4 changed files with 27 additions and 39 deletions

View File

@ -88,13 +88,12 @@ std::unique_ptr<IVolume> CreateVolumeFromFilename(const std::string& filename)
std::unique_ptr<IBlobReader> reader(CreateBlobReader(filename));
if (reader == nullptr)
return nullptr;
CBlobBigEndianReader be_reader(*reader);
// Check for Wii
u32 wii_magic = 0;
be_reader.ReadSwapped(0x18, &wii_magic);
reader->ReadSwapped(0x18, &wii_magic);
u32 wii_container_magic = 0;
be_reader.ReadSwapped(0x60, &wii_container_magic);
reader->ReadSwapped(0x60, &wii_container_magic);
if (wii_magic == 0x5D1C9EA3 && wii_container_magic != 0)
return std::make_unique<CVolumeGC>(std::move(reader));
if (wii_magic == 0x5D1C9EA3 && wii_container_magic == 0)
@ -103,13 +102,13 @@ std::unique_ptr<IVolume> CreateVolumeFromFilename(const std::string& filename)
// Check for WAD
// 0x206962 for boot2 wads
u32 wad_magic = 0;
be_reader.ReadSwapped(0x02, &wad_magic);
reader->ReadSwapped(0x02, &wad_magic);
if (wad_magic == 0x00204973 || wad_magic == 0x00206962)
return std::make_unique<CVolumeWAD>(std::move(reader));
// Check for GC
u32 gc_magic = 0;
be_reader.ReadSwapped(0x1C, &gc_magic);
reader->ReadSwapped(0x1C, &gc_magic);
if (gc_magic == 0xC2339F3D)
return std::make_unique<CVolumeGC>(std::move(reader));