The vsync may immediately fallback to another option after change from
the user so the UI should reflect that.
Todo: show a popup in UI informing the user why their desired vsync
option couldn't be set. Right now the error message is visible only from
the logs.
It's just listing directories of a mod for now, but should give some
idea what the mod changes.
Also moved some functionality from pathman to modman.
Mods added with the `-mod` parameter are now managed by modman.
The arrow buttons are smaller and the up button is now above the down
button. What is more, the width of the back button is now the same as
in other places.
Moved list of mods logic to a new CModManager class.
The list of enabled mods is now managed by a flag instead of directory
names of mods.
Mods are now disabled by default.
Also general cleanup, fixing issues from the code review in
https://github.com/colobot/colobot/pull/1191 and fixing linter issues.
Regression: the state of enabled/disabled mods is now not persistent.
The plan is to use some kind of config file for this.
Mute/unmute option when game windowis in background relies on settings
being updates. This happens when users leaves Options screen. This
commit adds saving audio settings on each change.
This is a fix for #1315
Now VSync list is aligned for same height as resolution list from the bottom, as it's very hard to align them from top on different screen resolutions.
-Wmissing-declarations enforces that every function (except for static
functions) must be declared separately before it's defined. This
essentially enforces that every function must be either static, or
declared in a header elsewhere.
This helps the optimizer, as it can do a better job of inlining if it
knows that a function won't be used outside of a given file. It also
helps -Wunused-function (which is enabled by -Wall) find more unused
functions.
Note that Clang spells this option -Wmissing-prototypes, which
confusingly is the name of a related but different warning option under
GCC.