@@ -369,28 +369,32 @@ void ResourcesContainer::UnserializeFrom(const SerializerElement &element) {
369369 resourcesElement.ConsiderAsArrayOf (" resource" , " Resource" );
370370 for (std::size_t i = 0 ; i < resourcesElement.GetChildrenCount (); ++i) {
371371 const SerializerElement &resourceElement = resourcesElement.GetChild (i);
372- gd::String kind = resourceElement.GetStringAttribute (" kind" );
373- gd::String name = resourceElement.GetStringAttribute (" name" );
374- gd::String metadata = resourceElement.GetStringAttribute (" metadata" , " " );
375372
373+ gd::String kind = resourceElement.GetStringAttribute (" kind" );
376374 std::shared_ptr<Resource> resource = CreateResource (kind);
377- resource->SetName (name);
378- resource->SetMetadata (metadata);
379-
380- if (resourceElement.HasChild (" origin" )) {
381- gd::String originName =
382- resourceElement.GetChild (" origin" ).GetStringAttribute (" name" , " " );
383- gd::String originIdentifier =
384- resourceElement.GetChild (" origin" ).GetStringAttribute (" identifier" ,
385- " " );
386- resource->SetOrigin (originName, originIdentifier);
387- }
388- resource->UnserializeFrom (resourceElement);
389-
375+ UnserializeResourceFrom (*resource, resourceElement);
390376 resources.push_back (resource);
391377 }
392378}
393379
380+ void ResourcesContainer::UnserializeResourceFrom (
381+ gd::Resource &resource, const SerializerElement &resourceElement) {
382+ gd::String name = resourceElement.GetStringAttribute (" name" );
383+ gd::String metadata = resourceElement.GetStringAttribute (" metadata" , " " );
384+
385+ resource.SetName (name);
386+ resource.SetMetadata (metadata);
387+
388+ if (resourceElement.HasChild (" origin" )) {
389+ gd::String originName =
390+ resourceElement.GetChild (" origin" ).GetStringAttribute (" name" , " " );
391+ gd::String originIdentifier =
392+ resourceElement.GetChild (" origin" ).GetStringAttribute (" identifier" , " " );
393+ resource.SetOrigin (originName, originIdentifier);
394+ }
395+ resource.UnserializeFrom (resourceElement);
396+ }
397+
394398void ResourcesContainer::SerializeTo (SerializerElement &element) const {
395399 SerializerElement &resourcesElement = element.AddChild (" resources" );
396400 resourcesElement.ConsiderAsArrayOf (" resource" );
0 commit comments