See rP15677
When a .zip file is encountered by the VFS population, it reads the info for all files in the archives. This is quite slow for the public archive (400-500ms on my computer), which means calling GetEngineInfo() repeatedly is impossible.
The solution is to open the mod.json file next to the archive directly (with a fallback to using the VFS as before if it's not found).
In general, this would work nicely:
- modders wouldn't use archives when developping
- The installer was changed to copy mod.json
- we control releases and bundle the .json
The only breaking change is for users that would expect their .zip to work when dropped in their mod folder, but I would expect that to be rare.
TODO: write the mod.json if possible when it's not found.
We might want to partially revert rP21823 after this.