-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Account for BSA asset override as sorting criterion #3
Comments
If it can be made to work for BA2s too, that would be great. |
I'm finally picking this up, as the changes to adding tie-break edges for loot/loot#1370 change the way that ties may be broken, and this shouldn't be a problem, except that LOOT is blind to the impact that might have on assets loaded through BSAs that get pulled into the game by plugins, so sorting cannot be stable with respect to that. Adding support for taking BSA conflicts into account won't necessarily avoid the tie-breaking causing changes, but at least those conflicts will be taken into account. The There also aren't many tests yet, and those that do exist use official game BSAs I've got installed, so the tests will fail in CI. I've manually verified sorting completes without errors logged for Skyrim SE, but haven't checked the impact of the new sorting logic. |
I've added support for BA2 archives and a bunch of tests. I still need to add tests for the sorting changes. Unfortunately I'm seeing unexpected duplicates across several of Fallout 4's BA2 archives: because BSAs/BA2s include hash values I'm checking for overlap using them rather than path strings, but BA2s use 32-bit hashes vs. BSA's 64-bit hashes so have a much greater chance of collision. However, I'm not sure if the duplicates I'm seeing are due to multiple BA2s containing the same file path or different file paths with hash collisions, I need to do more debugging... |
I switched to calculating 64-bit hashes for BA2 archives and those duplicates were still logged, so I think they must be due to multiple BA2s containing the same file path. I'll stick with the 64-bit hashes though, as some plugins load enough assets that a collision is more likely than not when using a 32-bit hash. I've also finished adding tests, so this is basically done - I'm only holding off merging because it potentially changes the outcome of LOOT's load order sorting, so I'm treating it as a breaking change. The changes now live in the |
Done as of bdd5f8d. |
Suggested by Lojack. If two non-conflicting plugins load BSAs that conflict, the BSAs' path lists could be compared to decide their load order so that the larger BSA loads first.
Moved from loot/loot#157.
The text was updated successfully, but these errors were encountered: