diff options
| -rw-r--r-- | core/project_settings.cpp | 15 | ||||
| -rw-r--r-- | core/project_settings.h | 2 | ||||
| -rw-r--r-- | doc/classes/ProjectSettings.xml | 3 | 
3 files changed, 19 insertions, 1 deletions
diff --git a/core/project_settings.cpp b/core/project_settings.cpp index 407bb78375..031ac06063 100644 --- a/core/project_settings.cpp +++ b/core/project_settings.cpp @@ -307,7 +307,7 @@ void ProjectSettings::_convert_to_last_version() {   *    If a project file is found, load it or fail.   *    If nothing was found, error out.   */ -Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bool p_upwards) { +Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, bool p_upwards) {  	// If looking for files in a network client, use it directly @@ -450,6 +450,18 @@ Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bo  	return OK;  } +Error ProjectSettings::setup(const String &p_path, const String &p_main_pack, bool p_upwards) { +	Error err = _setup(p_path, p_main_pack, p_upwards); +	if (err == OK) { +		String custom_settings = GLOBAL_DEF("application/config/project_settings_override", ""); +		if (custom_settings != "") { +			_load_settings_text(custom_settings); +		} +	} + +	return err; +} +  bool ProjectSettings::has_setting(String p_var) const {  	_THREAD_SAFE_METHOD_ @@ -995,6 +1007,7 @@ ProjectSettings::ProjectSettings() {  	GLOBAL_DEF("application/run/disable_stderr", false);  	GLOBAL_DEF("application/config/use_custom_user_dir", false);  	GLOBAL_DEF("application/config/custom_user_dir_name", ""); +	GLOBAL_DEF("application/config/project_settings_override", "");  	action = Dictionary();  	action["deadzone"] = Variant(0.5f); diff --git a/core/project_settings.h b/core/project_settings.h index 611355f2ef..f150e4499b 100644 --- a/core/project_settings.h +++ b/core/project_settings.h @@ -112,6 +112,8 @@ protected:  	void _add_property_info_bind(const Dictionary &p_info); +	Error _setup(const String &p_path, const String &p_main_pack, bool p_upwards = false); +  protected:  	static void _bind_methods(); diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 9706ea4e60..d4dacdb537 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -184,6 +184,9 @@  		<member name="application/config/use_custom_user_dir" type="bool" setter="" getter="">  			Allow the project to save to its own custom user dir (in AppData on windows or ~/.config on unixes). This setting only works for desktop exporters. A name must be set in the "custom_user_dir_name" setting for this to take effect.  		</member> +		<member name="application/config/project_settings_override" type="String" setter="" getter=""> +			Specifies a file to override project settings. For example: user://custom_settings.cfg. +		</member>  		<member name="application/run/disable_stderr" type="bool" setter="" getter="">  			Disable printing to stderr on exported build.  		</member>  |