- edited description
I've been able to extract every file by following these rules:
- Open Patch\patch.index first
- Follow rules outlined below to find other index files and open them
- Merge all directories in all index files
When attempting to locate a file:
- for {indexname}.index, first attempt to locate a file {indexname}\path\to\file. If the file exists, compute the SHA2 hash of the file, if it matches, use this file.
- check if Patch{indexname}.archive exists, if it does, attempt to locate the file in the .archive. If found, use this file.
- locate file in Patch\CoreData.archive
When following these rules in C#, I can open 100% of all files listed in any .index. The .index files in Patch.index are located in, well, patch\, and ClientData/ClientData64.index are also located the same. Not sure if the game will load unpacked files like this, but it seems logical since that's how Patch, Bootstrap, and ClientData(64) work.