Refactor ProjectSetting overrides

* Overrides no longer happen for set/get.
* They must be checked with a new function: `ProjectSettings::get_setting_with_override()`.
* GLOBAL_DEF/GLOBAL_GET updated to use this

This change solves many problems:
* General confusion about getting the actual or overriden setting.
* Feature tags available after settings are loaded were being ignored, they are now considered.
* Hacks required for the Project Settings editor to work.

Fixes #64100. Fixes #64014. Fixes #61908.
This commit is contained in:
Juan Linietsky
2023-01-13 13:16:49 +01:00
parent 3c9bf4bc21
commit 6f0e210093
9 changed files with 65 additions and 37 deletions

View File

@@ -42,7 +42,7 @@
using namespace godot;
#define GLOBAL_GET(m_var) ProjectSettings::get_singleton()->get(m_var)
#define GLOBAL_GET(m_var) ProjectSettings::get_singleton()->get_setting_with_override(m_var)
#else
// Headers for building as built-in module.