X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode_duplicate.cpp;h=56f742564e5b4e097badbe083811e8af46aa1739;hb=6fcfeb5b77c28b403b9fecc9bafcde6834447c9a;hp=b5b899b1ec7a48f26207be4f2963a36443c1a062;hpb=c3e45b84cbe115d9a8d216f1ce99d06fdd49ccca;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/valuenode_duplicate.cpp b/synfig-core/trunk/src/synfig/valuenode_duplicate.cpp index b5b899b..56f7425 100644 --- a/synfig-core/trunk/src/synfig/valuenode_duplicate.cpp +++ b/synfig-core/trunk/src/synfig/valuenode_duplicate.cpp @@ -58,10 +58,10 @@ ValueNode_Duplicate::ValueNode_Duplicate(const ValueBase::Type &x): ValueNode_Duplicate::ValueNode_Duplicate(const ValueBase &x): LinkableValueNode(x.get_type()) { - set_link("from", ValueNode_Const::create(int(1))); - set_link("to", ValueNode_Const::create(x.get(int()))); - set_link("step", ValueNode_Const::create(int(1))); - index = 1; + set_link("from", ValueNode_Const::create(Real(1.0))); + set_link("to", ValueNode_Const::create(x.get(Real()))); + set_link("step", ValueNode_Const::create(Real(1.0))); + index = 1.0; } ValueNode_Duplicate* @@ -82,26 +82,24 @@ ValueNode_Duplicate::~ValueNode_Duplicate() } bool -ValueNode_Duplicate::set_link_vfunc(int i,ValueNode::Handle x) +ValueNode_Duplicate::set_link_vfunc(int i,ValueNode::Handle value) { - assert(i >= 0 && i < link_count()); + assert(i>=0 && i= 0 && i < link_count()); + assert(i>=0 && i= 0 && i < link_count()); + assert(i>=0 && i= 0 && i < link_count()); + assert(i>=0 && i= to; - } + if ((index -= step) >= to) return true; + + // at the end of the loop, leave the index at the last value that was used + index = prev; + return false; } int ValueNode_Duplicate::count_steps(Time t)const { - int from = (*from_)(t).get(int()); - int to = (*to_ )(t).get(int()); - int step = (*step_)(t).get(int()); + Real from = (*from_)(t).get(Real()); + Real to = (*to_ )(t).get(Real()); + Real step = (*step_)(t).get(Real()); if (step == 0) return 1;