Commit Graph
31 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5.5 729047d449 Config: Make the setting tables constexpr
SETTING now takes offsets with offsetof and passes them along with the
setting's type, instead of the block and member pointers, and the
ConfigSetting constructors are constexpr. So the tables are built at compile
time, and later per-setting metadata can be checked by the compiler too.

Defaults that weren't constants had to change:
- AutoFrameSkip called IsVREnabled() during static initialization, before VR
  is set up. It's now a default callback, evaluated when the config is
  loaded or reset, which can turn it on by default on VR devices.
- DisplayRefreshRate read g_Config's own initial value, which is 60.

Path defaults now share the string member of the default union.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-22 15:34:47 +02:00
Henrik Rydgård 14111097da Claude found this code buggy, and it's not used, so delete it. 2026-08-31 16:37:55 +02:00
Henrik Rydgård 51c3058cf6 Replace "ForceFullScreen" with a way to prevent specific settings from being saved. 2026-02-02 09:25:49 +01:00
Henrik Rydgård 38ebb9d729 Set a few defaults automatically as a proof-of-concept (to reduce duplication)
See #18888
2026-01-05 19:03:43 +01:00
Henrik Rydgård b71ee0ba89 Fix some bugs around game-specific config load/save (#21033) 2025-11-24 14:05:23 +01:00
Henrik Rydgård 063c7d4f7e Get separate touch screen config for portrait working 2025-11-05 21:01:37 +01:00
Henrik Rydgård 1246b2d131 Correct handling of fallbacks and defaulting 2025-11-05 14:13:11 +01:00
Henrik Rydgård 2b863aafe1 Prepare for the new defaulting mechanism, IniFile cleanup 2025-11-05 12:49:52 +01:00
Henrik Rydgård 2651a3a241 Add base struct ConfigBlock 2025-11-05 12:49:52 +01:00
Henrik Rydgård 4467357e09 Add "fallback sections" to config reading, so we can "upgrade" settings 2025-11-05 12:49:51 +01:00
Henrik Rydgård 67010ff2af Split the display layout config between landscape and portrait orientations 2025-11-05 12:49:51 +01:00
Henrik Rydgård 14ddad5ce3 Change how defaults work in the inifile reader (more flexible this way) 2025-10-31 21:57:52 +01:00
Henrik Rydgård c98b7591d3 Improve the overload resolution in IniFile 2025-10-31 15:43:52 +01:00
Henrik Rydgård 5a1ed5a53b Remove constexpr from ConfigSetting constructors
We can't take full advantage of it until we start requiring C++20
anyway.

Also remove the CfgFlags defaults while at it.

Fixes #20938
2025-10-31 10:11:25 +01:00
Henrik Rydgård c30df3084c Access config setting data by owner pointer and offset, instead of by direct pointer 2025-10-29 17:23:27 +01:00
Henrik Rydgård 0626d3266d Compute offsets when initializing ConfigSettings 2025-10-29 17:06:43 +01:00
Henrik Rydgård 60aed95e7b More config refactor 2025-10-29 15:49:43 +01:00
Henrik Rydgård 7578a1935b More config refactor 2025-10-29 15:41:41 +01:00
Henrik Rydgård a26529fd03 Prepare to change the representation of config settings 2025-10-29 15:07:51 +01:00
Henrik Rydgård 461f8586b6 Use config defaults in the headless binary.
Fixes #19332
2025-09-24 11:56:51 -06:00
Henrik Rydgård 60608b2b39 Allow customizing the proAdhoc server list by editing the ini 2025-08-15 16:35:25 +02:00
Henrik Rydgård 01b06b76c9 Infrastructure username handling: Add separate username, pick Nickname as default if valid. 2025-01-07 17:43:02 +01:00
Henrik Rydgård 4d6905672e Bunch more linting 2024-10-10 11:57:10 +02:00
Giovanni Cocco 931eafd565 Keep only the LUT addition 2024-09-26 19:15:17 +02:00
Giovanni Cocco bff850dadd per game settings UI PoC 2024-08-06 14:50:23 +02:00
Henrik Rydgård 88a209a342 Move the report bool into the flags field 2023-04-08 09:22:02 +02:00
Henrik Rydgård d077a75aa4 Merge "save" and "perGame" into a flags field 2023-04-08 09:22:02 +02:00
Henrik Rydgård b84f723a7f Make the save and per-game flags non-optional 2023-04-08 09:22:02 +02:00
Henrik Rydgård b3d85ae89a Prepare for settings move 2023-04-08 09:22:02 +02:00
Henrik Rydgård 6ac45ddba1 Extract the ConfigSetting implementation into its own file. 2023-04-08 09:22:02 +02:00
Henrik Rydgård 5a1e9ed8f1 Add ConfigSettings.cpp/h 2023-04-08 09:22:02 +02:00