X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Floadcanvas.cpp;h=8cf5cba0b13797fb8ffc8286e522fbcf6c191aa5;hb=b054a4463e94169b6d119191000b8485cf7fa853;hp=5b4fe8684e87da17832691982f9fd92947a587d8;hpb=e6efdb6732204cb498c236208321011c7cb3b709;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/loadcanvas.cpp b/synfig-core/trunk/src/synfig/loadcanvas.cpp index 5b4fe86..8cf5cba 100644 --- a/synfig-core/trunk/src/synfig/loadcanvas.cpp +++ b/synfig-core/trunk/src/synfig/loadcanvas.cpp @@ -1275,12 +1275,23 @@ CanvasParser::parse_linkable_value_node(xmlpp::Element *element,Canvas::Handle c } } + String version(canvas->get_version()); for (int i = 0; i < value_node->link_count(); i++) { - if (!c[i] && - // the 'width' parameter of wasn't always present, so it won't be in old .sif files - !(element->get_name() == "stripes" && value_node->link_name(i) == "width")) + if (!c[i]) { + // the 'width' parameter of wasn't always present in version 0.1 canvases + if (version == "0.1" && element->get_name() == "stripes" && value_node->link_name(i) == "width") + continue; + + // these 3 blinecalctangent parameters didn't appear until canvas version 0.5 + if ((version == "0.1" || version == "0.2" || version == "0.3" || version == "0.4") && + element->get_name() == "blinecalctangent" && + (value_node->link_name(i) == "offset" || + value_node->link_name(i) == "scale" || + value_node->link_name(i) == "fixed_length")) + continue; + error(element, strprintf(_("<%s> is missing link %d (%s)"), element->get_name().c_str(), i, @@ -1292,7 +1303,6 @@ CanvasParser::parse_linkable_value_node(xmlpp::Element *element,Canvas::Handle c // pre 0.4 canvases had *calctangent outputs scaled down by 0.5 for some reason if (element->get_name() == "blinecalctangent" || element->get_name() == "segcalctangent") { - String version(canvas->get_version()); if (version == "0.1" || version == "0.2" || version == "0.3") { handle scale_value_node=LinkableValueNode::create("scale",type);