| 411 | } |
| 412 | |
| 413 | Error ProjectConfigLoader::save_custom(const String &p_path, uint32_t ver_major, uint32_t ver_minor) { |
| 414 | ERR_FAIL_COND_V_MSG(p_path == "", ERR_INVALID_PARAMETER, "Project settings save path cannot be empty."); |
| 415 | |
| 416 | RBMap<String, List<String>> proops = get_save_proops(); |
| 417 | String ext = p_path.get_extension().to_lower(); |
| 418 | |
| 419 | if (ver_major == 0) { |
| 420 | ver_major = major; |
| 421 | ver_minor = minor; |
| 422 | } |
| 423 | |
| 424 | if (ext == "godot" || ext == "cfg") { |
| 425 | return _save_settings_text(p_path, proops, ver_major, ver_minor); |
| 426 | } else if (ext == "binary" || ext == "cfb") { |
| 427 | return _save_settings_binary(p_path, proops, ver_major, ver_minor); |
| 428 | } else { |
| 429 | ERR_FAIL_V_MSG(ERR_FILE_UNRECOGNIZED, vformat("Unknown config file format: '%s'.", p_path)); |
| 430 | } |
| 431 | } |
| 432 | |
| 433 | Error ProjectConfigLoader::_save_settings_text(const String &p_file, const RBMap<String, List<String>> &proops, const uint32_t ver_major, const uint32_t ver_minor) { |
| 434 | Error err; |
no outgoing calls
no test coverage detected