This feature would automatically launch a modal configuration window (in-engine, of course) in these three cases:
The user first started the game and doesn't have a configuration file yet. This window would contain the most important settings on one screen:
[ ] Window / scaling / fullscreen (#7)
[ ] Volume (#1)
[ ] Language (#6 )
[ ] MIDI device and mode (#10)
On later runs, some of the original configuration options might fail validation for multiple reasons: Display or MIDI devices may have changed, or the user might have tried to hack the configuration file in a hex editor and ended up with invalid values. In this case, the window could summarize all failed options with their intended value from the configuration file and the value they were reset to, and also provide the option to change them right from the same window.\
(Previously, such an error would have re-locked the Extra Stage (#30), but I removed this behavior in f00f90d73eeb93f305ad9d2637ec2a479271bde8.)
The new config file versioning system implemented in #34 has to support old existing config files that don't yet contain any of the options that new builds might have added. The window would show all of these new options as a kind of "what's new" screen.
These three features are similar in upfront refactoring cost they require, so it makes sense to cover them within one big issue.
This feature would automatically launch a modal configuration window (in-engine, of course) in these three cases:
The user first started the game and doesn't have a configuration file yet. This window would contain the most important settings on one screen:
On later runs, some of the original configuration options might fail validation for multiple reasons: Display or MIDI devices may have changed, or the user might have tried to hack the configuration file in a hex editor and ended up with invalid values. In this case, the window could summarize all failed options with their intended value from the configuration file and the value they were reset to, and also provide the option to change them right from the same window.\ (Previously, such an error would have re-locked the Extra Stage (#30), but I removed this behavior in f00f90d73eeb93f305ad9d2637ec2a479271bde8.)
The new config file versioning system implemented in #34 has to support old existing config files that don't yet contain any of the options that new builds might have added. The window would show all of these new options as a kind of "what's new" screen.
These three features are similar in upfront refactoring cost they require, so it makes sense to cover them within one big issue.