diff options
| author | XTra.KrazzY <XTra.KrazzY@gmail.com> | 2009-06-06 14:33:52 +0000 |
|---|---|---|
| committer | XTra.KrazzY <XTra.KrazzY@gmail.com> | 2009-06-06 14:33:52 +0000 |
| commit | f004fb17d4567c05844a40afb33ab9e9bae5b241 (patch) | |
| tree | 932c703ed285228db1c49c6f785a3bf7e5ae6522 /Source/Core/DiscIO/Src/FileHandlerARC.cpp | |
| parent | a8dafb8dc55fef775331a132818a314ae768e153 (diff) | |
Incomplete work on extracting banners from Wii images without savefiles. Please finish my work.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3336 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DiscIO/Src/FileHandlerARC.cpp')
| -rw-r--r-- | Source/Core/DiscIO/Src/FileHandlerARC.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/Source/Core/DiscIO/Src/FileHandlerARC.cpp b/Source/Core/DiscIO/Src/FileHandlerARC.cpp index d6b5374cc8..71bd32bf08 100644 --- a/Source/Core/DiscIO/Src/FileHandlerARC.cpp +++ b/Source/Core/DiscIO/Src/FileHandlerARC.cpp @@ -43,6 +43,22 @@ CARCFile::CARCFile(const std::string& _rFilename) } } +CARCFile::CARCFile(const std::string& _rFilename, u32 offset) + : m_pBuffer(NULL) + , m_Initialized(false) +{ + DiscIO::IBlobReader* pReader = DiscIO::CreateBlobReader(_rFilename.c_str()); + if (pReader != NULL) + { + u64 FileSize = pReader->GetDataSize() - offset; + m_pBuffer = new u8[(u32)FileSize]; + pReader->Read(offset, FileSize, m_pBuffer); + delete pReader; + + m_Initialized = ParseBuffer(); + } +} + CARCFile::CARCFile(const u8* _pBuffer, size_t _BufferSize) : m_pBuffer(NULL) , m_Initialized(false) @@ -156,9 +172,7 @@ CARCFile::ParseBuffer() u32 ID = Common::swap32(*(u32*)(m_pBuffer)); if (ID != ARC_ID) - { - return(false); - } + return false; // read header u32 FSTOffset = Common::swap32(*(u32*)(m_pBuffer + 0x4)); |
