Add mod selection mod.
Includes some contributions by rada and sanderd17.
See discussion in rP20552.
Mostly raising a concern for the missing documentation which should be fixed in a separate patch.
Misses defining documentation.
example inside an example
A minority of developers will comprehend this.
Contains all mods that are available and not enabled, especially not the ones returned by GetAvailableMods.
Does not return all existing mods
So write a ticket
Only one copy of the ternary and sort call needed.
Dark gray on dark gray background
These properties are mandatory
Someone should have informed mod developers that they may not used version comparison operators in the name field.
But this field may only be used with dependency checks if different mods may use the same identifier to denote the same set of implemented features. (That hypothetical use case might make more sense with a special field however, so that a mod can state that it implements different features that can be tested against).
Thanks for giving the user an easy way to enable and disable mods!
Thanks for cleaning this up, breaking parts of it, not caring about invalidating possibly not obvious parts of the design instead of figuring out or even just asking to clarify that, then being smug about having done so. Have fun mainta^W breaking this more.
So we should open a ticket for every TODO in the whole codebase? Really?
This doesn't work as expected.
Because neither this nor enableMod update the user config, the mod page after the restart only displays the list of mods enabled in the user.cfg, not the list of mods that are currently actually enabled. It should display the same list before and after the restart, just that the mods have been actually enabled after the restart.
Described in #4881.
<Insert guilt flamewar here>
(The restarting is done without restarting the process but just restarting the main loop in main.cpp which calls CONFIG_Init in source/ps/GameSetup/Config.cpp which reloads the user.cfg, so might not be a cakewalk to fix)
Enabling a mod when a filter is active does not remove the mod from the list of unenabled mods, thus misleads the user into believing the mod is not activated. Then after some multiple clicks on enabling it will trigger a debug breakpoint in the engine complaining about OOB access.