Browse Source

Merge pull request #58554 from KoBeWi/MIA

Don't abort loading scene on missing dependency
Rémi Verschelde 3 years ago
parent
commit
54a777b523
1 changed files with 5 additions and 3 deletions
  1. 5 3
      scene/resources/resource_format_text.cpp

+ 5 - 3
scene/resources/resource_format_text.cpp

@@ -153,7 +153,7 @@ Error ResourceLoaderText::_parse_ext_resource(VariantParser::Stream *p_stream, R
 			RES res = ResourceLoader::load_threaded_get(path);
 			RES res = ResourceLoader::load_threaded_get(path);
 			if (res.is_null()) {
 			if (res.is_null()) {
 				if (ResourceLoader::get_abort_on_missing_resources()) {
 				if (ResourceLoader::get_abort_on_missing_resources()) {
-					error = ERR_FILE_CORRUPT;
+					error = ERR_FILE_MISSING_DEPENDENCIES;
 					error_text = "[ext_resource] referenced nonexistent resource at: " + path;
 					error_text = "[ext_resource] referenced nonexistent resource at: " + path;
 					_printerr();
 					_printerr();
 					return error;
 					return error;
@@ -165,7 +165,7 @@ Error ResourceLoaderText::_parse_ext_resource(VariantParser::Stream *p_stream, R
 				r_res = res;
 				r_res = res;
 			}
 			}
 		} else {
 		} else {
-			error = ERR_FILE_CORRUPT;
+			error = ERR_FILE_MISSING_DEPENDENCIES;
 			error_text = "[ext_resource] referenced non-loaded resource at: " + path;
 			error_text = "[ext_resource] referenced non-loaded resource at: " + path;
 			_printerr();
 			_printerr();
 			return error;
 			return error;
@@ -265,7 +265,9 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars
 				error = VariantParser::parse_tag_assign_eof(&stream, lines, error_text, next_tag, assign, value, &parser);
 				error = VariantParser::parse_tag_assign_eof(&stream, lines, error_text, next_tag, assign, value, &parser);
 
 
 				if (error) {
 				if (error) {
-					if (error != ERR_FILE_EOF) {
+					if (error == ERR_FILE_MISSING_DEPENDENCIES) {
+						// Resource loading error, just skip it.
+					} else if (error != ERR_FILE_EOF) {
 						_printerr();
 						_printerr();
 						return Ref<PackedScene>();
 						return Ref<PackedScene>();
 					} else {
 					} else {