X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Floadcanvas.cpp;h=200456ee4969b9e43edc06b16dcd7a0b2d02b052;hb=756c0d29ac1742f231e6615f9a577e574e35a4af;hp=60a30eee4714b2fe84948485f715f891be73921f;hpb=01bed3975630929d007f82a8de05674ad1c21bf3;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/loadcanvas.cpp b/synfig-core/trunk/src/synfig/loadcanvas.cpp index 60a30ee..200456e 100644 --- a/synfig-core/trunk/src/synfig/loadcanvas.cpp +++ b/synfig-core/trunk/src/synfig/loadcanvas.cpp @@ -6,7 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley -** Copyright (c) 2007 Chris Moore +** Copyright (c) 2007, 2008 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -1062,11 +1062,7 @@ CanvasParser::parse_animated(xmlpp::Element *element,Canvas::Handle canvas) // waypoint's value if (type == ValueBase::TYPE_ANGLE) { - Canvas::Handle parent = canvas; - while (!parent->is_root()) - parent = parent->parent(); - - if (parent->get_version() == "0.1") + if (canvas->get_version() == "0.1") { bool first = true; Real angle, prev = 0; @@ -1077,6 +1073,7 @@ CanvasParser::parse_animated(xmlpp::Element *element,Canvas::Handle canvas) if (first) first = false; else if (iter->get_value_node()->get_name() == "constant") + { if (angle - prev > 180) { while (angle - prev > 180) angle -= 360; @@ -1087,6 +1084,7 @@ CanvasParser::parse_animated(xmlpp::Element *element,Canvas::Handle canvas) while (prev - angle > 180) angle += 360; iter->set_value(Angle::deg(angle)); } + } prev = angle; } } @@ -1696,7 +1694,9 @@ CanvasParser::parse_layer(xmlpp::Element *element,Canvas::Handle canvas) String str= child->get_attribute("use")->get_value(); - if(layer->get_param(param_name).get_type()==ValueBase::TYPE_CANVAS) + if (str.empty()) + error(child,_("Empty use=\"\" value in ")); + else if(layer->get_param(param_name).get_type()==ValueBase::TYPE_CANVAS) { if(!layer->set_param(param_name,canvas->surefind_canvas(str))) error((*iter),_("Layer rejected canvas link"));