You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-08 12:40:44 +00:00
[Core] Improve error messages with vformat
This commit is contained in:
@@ -214,36 +214,36 @@ String ProjectSettings::localize_path(const String &p_path) const {
|
||||
}
|
||||
|
||||
void ProjectSettings::set_initial_value(const String &p_name, const Variant &p_value) {
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
|
||||
// Duplicate so that if value is array or dictionary, changing the setting will not change the stored initial value.
|
||||
props[p_name].initial = p_value.duplicate();
|
||||
}
|
||||
|
||||
void ProjectSettings::set_restart_if_changed(const String &p_name, bool p_restart) {
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
props[p_name].restart_if_changed = p_restart;
|
||||
}
|
||||
|
||||
void ProjectSettings::set_as_basic(const String &p_name, bool p_basic) {
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
props[p_name].basic = p_basic;
|
||||
}
|
||||
|
||||
void ProjectSettings::set_as_internal(const String &p_name, bool p_internal) {
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
props[p_name].internal = p_internal;
|
||||
}
|
||||
|
||||
void ProjectSettings::set_ignore_value_in_docs(const String &p_name, bool p_ignore) {
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
#ifdef DEBUG_METHODS_ENABLED
|
||||
props[p_name].ignore_value_in_docs = p_ignore;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool ProjectSettings::get_ignore_value_in_docs(const String &p_name) const {
|
||||
ERR_FAIL_COND_V_MSG(!props.has(p_name), false, "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_V_MSG(!props.has(p_name), false, vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
#ifdef DEBUG_METHODS_ENABLED
|
||||
return props[p_name].ignore_value_in_docs;
|
||||
#else
|
||||
@@ -371,7 +371,7 @@ Variant ProjectSettings::get_setting_with_override(const StringName &p_name) con
|
||||
}
|
||||
|
||||
if (!props.has(name)) {
|
||||
WARN_PRINT("Property not found: " + String(name));
|
||||
WARN_PRINT(vformat("Property not found: '%s'.", String(name)));
|
||||
return Variant();
|
||||
}
|
||||
return props[name].variant;
|
||||
@@ -565,7 +565,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
|
||||
|
||||
if (!p_main_pack.is_empty()) {
|
||||
bool ok = _load_resource_pack(p_main_pack);
|
||||
ERR_FAIL_COND_V_MSG(!ok, ERR_CANT_OPEN, "Cannot open resource pack '" + p_main_pack + "'.");
|
||||
ERR_FAIL_COND_V_MSG(!ok, ERR_CANT_OPEN, vformat("Cannot open resource pack '%s'.", p_main_pack));
|
||||
|
||||
Error err = _load_settings_text_or_binary("res://project.godot", "res://project.binary");
|
||||
if (err == OK && !p_ignore_override) {
|
||||
@@ -644,7 +644,7 @@ Error ProjectSettings::_setup(const String &p_path, const String &p_main_pack, b
|
||||
// or, if requested (`p_upwards`) in parent directories.
|
||||
|
||||
Ref<DirAccess> d = DirAccess::create(DirAccess::ACCESS_FILESYSTEM);
|
||||
ERR_FAIL_COND_V_MSG(d.is_null(), ERR_CANT_CREATE, "Cannot create DirAccess for path '" + p_path + "'.");
|
||||
ERR_FAIL_COND_V_MSG(d.is_null(), ERR_CANT_CREATE, vformat("Cannot create DirAccess for path '%s'.", p_path));
|
||||
d->change_dir(p_path);
|
||||
|
||||
String current_dir = d->get_current_dir();
|
||||
@@ -748,7 +748,7 @@ Error ProjectSettings::_load_settings_binary(const String &p_path) {
|
||||
f->get_buffer(d.ptrw(), vlen);
|
||||
Variant value;
|
||||
err = decode_variant(value, d.ptr(), d.size(), nullptr, true);
|
||||
ERR_CONTINUE_MSG(err != OK, "Error decoding property: " + key + ".");
|
||||
ERR_CONTINUE_MSG(err != OK, vformat("Error decoding property: '%s'.", key));
|
||||
set(key, value);
|
||||
}
|
||||
|
||||
@@ -790,7 +790,7 @@ Error ProjectSettings::_load_settings_text(const String &p_path) {
|
||||
last_save_time = FileAccess::get_modified_time(get_resource_path().path_join("project.godot"));
|
||||
return OK;
|
||||
}
|
||||
ERR_FAIL_COND_V_MSG(err != OK, err, "Error parsing " + p_path + " at line " + itos(lines) + ": " + error_text + " File might be corrupted.");
|
||||
ERR_FAIL_COND_V_MSG(err != OK, err, vformat("Error parsing '%s' at line %d: %s File might be corrupted.", p_path, lines, error_text));
|
||||
|
||||
if (!assign.is_empty()) {
|
||||
if (section.is_empty() && assign == "config_version") {
|
||||
@@ -816,7 +816,7 @@ Error ProjectSettings::_load_settings_text_or_binary(const String &p_text_path,
|
||||
return OK;
|
||||
} else if (err != ERR_FILE_NOT_FOUND) {
|
||||
// If the file exists but can't be loaded, we want to know it.
|
||||
ERR_PRINT("Couldn't load file '" + p_bin_path + "', error code " + itos(err) + ".");
|
||||
ERR_PRINT(vformat("Couldn't load file '%s', error code %d.", p_bin_path, err));
|
||||
}
|
||||
|
||||
// Fallback to text-based project.godot file if binary was not found.
|
||||
@@ -824,7 +824,7 @@ Error ProjectSettings::_load_settings_text_or_binary(const String &p_text_path,
|
||||
if (err == OK) {
|
||||
return OK;
|
||||
} else if (err != ERR_FILE_NOT_FOUND) {
|
||||
ERR_PRINT("Couldn't load file '" + p_text_path + "', error code " + itos(err) + ".");
|
||||
ERR_PRINT(vformat("Couldn't load file '%s', error code %d.", p_text_path, err));
|
||||
}
|
||||
|
||||
return err;
|
||||
@@ -838,17 +838,17 @@ Error ProjectSettings::load_custom(const String &p_path) {
|
||||
}
|
||||
|
||||
int ProjectSettings::get_order(const String &p_name) const {
|
||||
ERR_FAIL_COND_V_MSG(!props.has(p_name), -1, "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_V_MSG(!props.has(p_name), -1, vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
return props[p_name].order;
|
||||
}
|
||||
|
||||
void ProjectSettings::set_order(const String &p_name, int p_order) {
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
props[p_name].order = p_order;
|
||||
}
|
||||
|
||||
void ProjectSettings::set_builtin_order(const String &p_name) {
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
if (props[p_name].order >= NO_BUILTIN_ORDER_BASE) {
|
||||
props[p_name].order = last_builtin_order++;
|
||||
}
|
||||
@@ -856,12 +856,12 @@ void ProjectSettings::set_builtin_order(const String &p_name) {
|
||||
|
||||
bool ProjectSettings::is_builtin_setting(const String &p_name) const {
|
||||
// Return true because a false negative is worse than a false positive.
|
||||
ERR_FAIL_COND_V_MSG(!props.has(p_name), true, "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_V_MSG(!props.has(p_name), true, vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
return props[p_name].order < NO_BUILTIN_ORDER_BASE;
|
||||
}
|
||||
|
||||
void ProjectSettings::clear(const String &p_name) {
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), "Request for nonexistent project setting: " + p_name + ".");
|
||||
ERR_FAIL_COND_MSG(!props.has(p_name), vformat("Request for nonexistent project setting: '%s'.", p_name));
|
||||
props.erase(p_name);
|
||||
}
|
||||
|
||||
@@ -876,7 +876,7 @@ Error ProjectSettings::save() {
|
||||
Error ProjectSettings::_save_settings_binary(const String &p_file, const RBMap<String, List<String>> &p_props, const CustomMap &p_custom, const String &p_custom_features) {
|
||||
Error err;
|
||||
Ref<FileAccess> file = FileAccess::open(p_file, FileAccess::WRITE, &err);
|
||||
ERR_FAIL_COND_V_MSG(err != OK, err, "Couldn't save project.binary at " + p_file + ".");
|
||||
ERR_FAIL_COND_V_MSG(err != OK, err, vformat("Couldn't save project.binary at '%s'.", p_file));
|
||||
|
||||
uint8_t hdr[4] = { 'E', 'C', 'F', 'G' };
|
||||
file->store_buffer(hdr, 4);
|
||||
@@ -946,7 +946,7 @@ Error ProjectSettings::_save_settings_text(const String &p_file, const RBMap<Str
|
||||
Error err;
|
||||
Ref<FileAccess> file = FileAccess::open(p_file, FileAccess::WRITE, &err);
|
||||
|
||||
ERR_FAIL_COND_V_MSG(err != OK, err, "Couldn't save project.godot - " + p_file + ".");
|
||||
ERR_FAIL_COND_V_MSG(err != OK, err, vformat("Couldn't save project.godot - %s.", p_file));
|
||||
|
||||
file->store_line("; Engine configuration file.");
|
||||
file->store_line("; It's best edited using the editor UI and not directly,");
|
||||
@@ -1119,7 +1119,7 @@ Error ProjectSettings::save_custom(const String &p_path, const CustomMap &p_cust
|
||||
} else if (p_path.ends_with(".binary")) {
|
||||
return _save_settings_binary(p_path, save_props, p_custom, save_features);
|
||||
} else {
|
||||
ERR_FAIL_V_MSG(ERR_FILE_UNRECOGNIZED, "Unknown config file format: " + p_path);
|
||||
ERR_FAIL_V_MSG(ERR_FILE_UNRECOGNIZED, vformat("Unknown config file format: '%s'.", p_path));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user