X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvaluenode.cpp;h=2539e5b6a05b0528627b91b11d6984d4cf0ebc7c;hb=6c43a07ee05693991ae3e8cee86cbf95b49df844;hp=e46bf10c5e4652f248b449341b995b854c23e889;hpb=b37086823c5bfee9c76f6b265584a414100963ef;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/valuenode.cpp b/synfig-core/trunk/src/synfig/valuenode.cpp index e46bf10..2539e5b 100644 --- a/synfig-core/trunk/src/synfig/valuenode.cpp +++ b/synfig-core/trunk/src/synfig/valuenode.cpp @@ -64,6 +64,10 @@ #include "valuenode_atan2.h" #include "valuenode_exp.h" #include "valuenode_switch.h" +#include "valuenode_timeloop.h" +#include "valuenode_reciprocal.h" +#include "valuenode_duplicate.h" +#include "valuenode_integer.h" #include "layer.h" @@ -134,6 +138,10 @@ ValueNode::subsys_init() ADD_VALUENODE(ValueNode_Atan2, "atan2", _("aTan2") ); ADD_VALUENODE(ValueNode_Exp, "exp", _("Exponential") ); ADD_VALUENODE(ValueNode_Switch, "switch", _("Switch") ); + ADD_VALUENODE(ValueNode_TimeLoop, "timeloop", _("Time Loop") ); + ADD_VALUENODE(ValueNode_Reciprocal, "reciprocal", _("Reciprocal") ); + ADD_VALUENODE(ValueNode_Duplicate, "duplicate", _("Duplicate") ); + ADD_VALUENODE(ValueNode_Integer, "fromint", _("From Integer") ); #undef ADD_VALUENODE #undef ADD_VALUENODE2 @@ -157,19 +165,19 @@ ValueNode::subsys_stop() for(iter=global_value_node_map.begin();iter!=global_value_node_map.end();++iter) { if(!iter->second->is_exported()) - synfig::info("%s: count:%d name:%s type:%s", + synfig::info(_("%s: count:%d name:%s type:%s"), iter->first.get_string().c_str(), iter->second->count(), iter->second->get_name().c_str(), - ValueBase::type_name(iter->second->get_type()).c_str() + ValueBase::type_local_name(iter->second->get_type()).c_str() ); else - synfig::info("%s: id:%s count:%d name:%s type:%s", + synfig::info(_("%s: id:%s count:%d name:%s type:%s"), iter->first.get_string().c_str(), iter->second->get_id().c_str(), iter->second->count(), iter->second->get_name().c_str(), - ValueBase::type_name(iter->second->get_type()).c_str() + ValueBase::type_local_name(iter->second->get_type()).c_str() ); } } @@ -193,6 +201,13 @@ LinkableValueNode::create(const String &name, const ValueBase& x) { if(!book().count(name)) return 0; + + if (!check_type(name, x.get_type())) + { + error(_("Bad type: ValueNode '%s' doesn't accept type '%s'"), book()[name].local_name.c_str(), ValueBase::type_local_name(x.get_type()).c_str()); + return 0; + } + return book()[name].factory(x); } @@ -247,8 +262,6 @@ ValueNode::~ValueNode() value_node_count--; begin_delete(); - - //DEBUGPOINT(); } void @@ -468,7 +481,12 @@ PlaceholderValueNode::PlaceholderValueNode(ValueBase::Type type): ValueNode* LinkableValueNode::clone(const GUID& deriv_guid)const { - { ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x)return x; } + // printf("%s:%d clone()\n", __FILE__, __LINE__); + { ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x) + { + printf("VALUENODE FOUND VALUENODE\n"); + return x; + }} int i; LinkableValueNode *ret=create_new();