diff options
| author | comex <comexk@gmail.com> | 2015-06-02 18:38:19 -0400 |
|---|---|---|
| committer | comex <comexk@gmail.com> | 2015-06-02 18:38:19 -0400 |
| commit | a3b3f0522bce40ed6613ab97c1a64fe825b4ed66 (patch) | |
| tree | f46f75d4960816c8c8905e2294130ac36d5bb11b /Source/Core/DiscIO/VolumeDirectory.cpp | |
| parent | 2b5945ae07dbbf46e6e38d2524bf2112ef2b6324 (diff) | |
| parent | 45b07cbdcd97f2015dca5873c7949e9991ce23d4 (diff) | |
Merge pull request #1556 from comex/project-moration
Rudimentary version of Wii IPC determinism. Ported from my old udpnet branch.
Diffstat (limited to 'Source/Core/DiscIO/VolumeDirectory.cpp')
| -rw-r--r-- | Source/Core/DiscIO/VolumeDirectory.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/Source/Core/DiscIO/VolumeDirectory.cpp b/Source/Core/DiscIO/VolumeDirectory.cpp index fb60dd1535..b7fe30aed5 100644 --- a/Source/Core/DiscIO/VolumeDirectory.cpp +++ b/Source/Core/DiscIO/VolumeDirectory.cpp @@ -339,7 +339,7 @@ void CVolumeDirectory::BuildFST() File::FSTEntry rootEntry; // read data from physical disk to rootEntry - u32 totalEntries = AddDirectoryEntries(m_rootDirectory, rootEntry) + 1; + u64 totalEntries = AddDirectoryEntries(m_rootDirectory, rootEntry) + 1; m_fstNameOffset = totalEntries * ENTRY_SIZE; // offset in FST nameTable m_FSTData.resize(m_fstNameOffset + m_totalNameSize); @@ -423,7 +423,7 @@ void CVolumeDirectory::Write32(u32 data, u32 offset, std::vector<u8>* const buff (*buffer)[offset] = (data) & 0xff; } -void CVolumeDirectory::WriteEntryData(u32& entryOffset, u8 type, u32 nameOffset, u64 dataOffset, u32 length) +void CVolumeDirectory::WriteEntryData(u32& entryOffset, u8 type, u32 nameOffset, u64 dataOffset, u64 length) { m_FSTData[entryOffset++] = type; @@ -451,7 +451,7 @@ void CVolumeDirectory::WriteEntry(const File::FSTEntry& entry, u32& fstOffset, u { u32 myOffset = fstOffset; u32 myEntryNum = myOffset / ENTRY_SIZE; - WriteEntryData(fstOffset, DIRECTORY_ENTRY, nameOffset, parentEntryNum, (u32)(myEntryNum + entry.size + 1)); + WriteEntryData(fstOffset, DIRECTORY_ENTRY, nameOffset, parentEntryNum, myEntryNum + entry.size + 1); WriteEntryName(nameOffset, entry.virtualName); for (const auto& child : entry.children) @@ -462,7 +462,7 @@ void CVolumeDirectory::WriteEntry(const File::FSTEntry& entry, u32& fstOffset, u else { // put entry in FST - WriteEntryData(fstOffset, FILE_ENTRY, nameOffset, dataOffset, (u32)entry.size); + WriteEntryData(fstOffset, FILE_ENTRY, nameOffset, dataOffset, entry.size); WriteEntryName(nameOffset, entry.virtualName); // write entry to virtual disk @@ -490,11 +490,11 @@ static u32 ComputeNameSize(const File::FSTEntry& parentEntry) return nameSize; } -u32 CVolumeDirectory::AddDirectoryEntries(const std::string& _Directory, File::FSTEntry& parentEntry) +u64 CVolumeDirectory::AddDirectoryEntries(const std::string& _Directory, File::FSTEntry& parentEntry) { - u32 foundEntries = ScanDirectoryTree(_Directory, parentEntry); + parentEntry = File::ScanDirectoryTree(_Directory, true); m_totalNameSize += ComputeNameSize(parentEntry); - return foundEntries; + return parentEntry.size; } } // namespace |
