bool Action::WaypointAdd::set_param(const synfig::String& name, const Action::Param ¶m) { if(name=="value_node" && param.get_type()==Param::TYPE_VALUENODE) { value_node=ValueNode_Animated::Handle::cast_dynamic(param.get_value_node()); if(time_set) calc_waypoint(); return static_cast<bool>(value_node); } if(name=="waypoint" && param.get_type()==Param::TYPE_WAYPOINT && !time_set) { waypoint=param.get_waypoint(); return true; } if(name=="time" && param.get_type()==Param::TYPE_TIME && waypoint.get_time()==Time::begin()-1) { waypoint.set_time(param.get_time()); time_set=true; if(value_node) calc_waypoint(); return true; } return Action::CanvasSpecific::set_param(name,param); }
bool Action::WaypointSet::set_param(const synfig::String& name, const Action::Param ¶m) { if(name=="value_node" && param.get_type()==Param::TYPE_VALUENODE) { value_node=ValueNode_Animated::Handle::cast_dynamic(param.get_value_node()); return static_cast<bool>(value_node); } if(name=="waypoint" && param.get_type()==Param::TYPE_WAYPOINT) { //NOTE: at the moment there is no error checking for multiple sets!!! waypoints.push_back(param.get_waypoint()); return true; } return Action::CanvasSpecific::set_param(name,param); }