From 3805c4967f00ccfc15ed2b5f84d3142786e3da32 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Sun, 29 Jun 2014 14:22:06 -0500 Subject: Fix ISO Directory extraction. --- Source/Core/DiscIO/FileSystemGCWii.cpp | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) (limited to 'Source/Core/DiscIO/FileSystemGCWii.cpp') diff --git a/Source/Core/DiscIO/FileSystemGCWii.cpp b/Source/Core/DiscIO/FileSystemGCWii.cpp index a264eb0ffb..ff32a4015f 100644 --- a/Source/Core/DiscIO/FileSystemGCWii.cpp +++ b/Source/Core/DiscIO/FileSystemGCWii.cpp @@ -307,28 +307,20 @@ size_t CFileSystemGCWii::BuildFilenames(const size_t _FirstIndex, const size_t _ while (CurrentIndex < _LastIndex) { - SFileInfo *rFileInfo = &m_FileInfoVector[CurrentIndex]; - u64 uOffset = _NameTableOffset + (rFileInfo->m_NameOffset & 0xFFFFFF); - std::string filename = GetStringFromOffset(uOffset); + SFileInfo& rFileInfo = m_FileInfoVector[CurrentIndex]; + u64 const uOffset = _NameTableOffset + (rFileInfo.m_NameOffset & 0xFFFFFF); + + rFileInfo.m_FullPath = _szDirectory + GetStringFromOffset(uOffset); // check next index - if (rFileInfo->IsDirectory()) + if (rFileInfo.IsDirectory()) { - if (_szDirectory.empty()) - rFileInfo->m_FullPath += StringFromFormat("%s/", filename.c_str()); - else - rFileInfo->m_FullPath += StringFromFormat("%s%s/", _szDirectory.c_str(), filename.c_str()); - - CurrentIndex = BuildFilenames(CurrentIndex + 1, (size_t) rFileInfo->m_FileSize, rFileInfo->m_FullPath, _NameTableOffset); + rFileInfo.m_FullPath += '/'; + CurrentIndex = BuildFilenames(CurrentIndex + 1, (size_t) rFileInfo.m_FileSize, rFileInfo.m_FullPath, _NameTableOffset); } - else // This is a filename + else { - if (_szDirectory.empty()) - rFileInfo->m_FullPath += filename; - else - rFileInfo->m_FullPath += StringFromFormat("%s%s", _szDirectory.c_str(), filename.c_str()); - - CurrentIndex++; + ++CurrentIndex; } } -- cgit v1.2.3