X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode_subtract.cpp;h=cb43e9536da2023275ca517e972aa3f108695e06;hb=1f990bde7879dfa0f35a004478217066dcd9beba;hp=03727313b57d122ce556551d36225f7ccda436b1;hpb=0b72fd69212fc1664b2b536cdfb1d4d50373c87a;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/valuenode_subtract.cpp b/synfig-core/trunk/src/synfig/valuenode_subtract.cpp index 0372731..cb43e95 100644 --- a/synfig-core/trunk/src/synfig/valuenode_subtract.cpp +++ b/synfig-core/trunk/src/synfig/valuenode_subtract.cpp @@ -75,8 +75,11 @@ ValueNode_Subtract::create(const ValueBase& x) { case ValueBase::TYPE_NIL: return value_node; - case ValueBase::TYPE_ANGLE: case ValueBase::TYPE_COLOR: + value_node->set_link("lhs",ValueNode_Const::create(x.get(Color()))); + value_node->set_link("rhs",ValueNode_Const::create(Color(0,0,0,0))); + break; + case ValueBase::TYPE_ANGLE: case ValueBase::TYPE_INTEGER: case ValueBase::TYPE_REAL: case ValueBase::TYPE_VECTOR: @@ -194,7 +197,7 @@ synfig::ValueNode_Subtract::operator()(Time t)const if(get_type()==ValueBase::TYPE_COLOR) return ((*ref_a)(t).get(Color())-(*ref_b)(t).get(Color()))*(*scalar)(t).get(Real()); if(get_type()==ValueBase::TYPE_INTEGER) - return ((*ref_a)(t).get(int())-(*ref_b)(t).get(int()))*(*scalar)(t).get(Real()); + return static_cast(((*ref_a)(t).get(int())-(*ref_b)(t).get(int()))*(*scalar)(t).get(Real()) + 0.5f); if(get_type()==ValueBase::TYPE_REAL) return ((*ref_a)(t).get(Vector::value_type())-(*ref_b)(t).get(Vector::value_type()))*(*scalar)(t).get(Real()); if(get_type()==ValueBase::TYPE_VECTOR)