This does a few things:
- Non-visual replays now automatically try to load the replay mods. This removes the annoyance that -mod=public usually had to be passed.
- MountMods is no longer called in InitVfs, but later, making it possible to load the game in one pass & simplifying things considerably.
- Made possible by rP25107
- Explicitly ignore duplicates when loading mods (not sure how well that worked before)
- Interface cleanup: failed mods and incompatible mods were redundant, only incompatible mods is kept.
- Interface cleanup: AreModsCompatiblebecomes CheckForIncompatibleMods, which becomes a private pure function, simplifying the mutable logic.
- Interface cleanup: CheckAndEnableMods is just EnableMods, which explicitly updates loaded & incompatible mods.
- CacheEnabledModVersions becomes private and is called on behalf of the user, removing the need to be careful about updating that (refs rP21823)
Overall, the logic around mounting & enabled mods should be easier to understand.
Later diffs will:
- Rename m_ModsLoaded to m_EnabledMods (didn't do it here to hopefully help the diffing tool)
- D3968