Revision: 46719
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46719
Author:   aligorith
Date:     2012-05-17 10:28:30 +0000 (Thu, 17 May 2012)
Log Message:
-----------
Disable setting non-object actions as the action used by the Action Constraint

(... I could've sworn there used to be some dynamic enums for filtering actions
by root type)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_constraint.c
    trunk/blender/source/blender/makesrna/intern/rna_constraint.c

Modified: trunk/blender/source/blender/editors/object/object_constraint.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_constraint.c     
2012-05-17 10:10:11 UTC (rev 46718)
+++ trunk/blender/source/blender/editors/object/object_constraint.c     
2012-05-17 10:28:30 UTC (rev 46719)
@@ -356,8 +356,15 @@
                                bActionConstraint *data = curcon->data;
                                
                                /* validate action */
-                               if (data->act == NULL) 
+                               if (data->act == NULL) {
+                                       /* must have action */
                                        curcon->flag |= CONSTRAINT_DISABLE;
+                               }
+                               else if (data->act->idroot != ID_OB) {
+                                       /* only object-rooted actions can be 
used */
+                                       data->act = NULL;
+                                       curcon->flag |= CONSTRAINT_DISABLE;
+                               }
                        }
                        else if (curcon->type == CONSTRAINT_TYPE_FOLLOWPATH) {
                                bFollowPathConstraint *data = curcon->data;
@@ -409,12 +416,12 @@
                                        if (data->clip != NULL && 
data->track[0]) {
                                                MovieTracking *tracking = 
&data->clip->tracking;
                                                MovieTrackingObject 
*tracking_object;
-
+                                               
                                                if (data->object[0])
                                                        tracking_object = 
BKE_tracking_named_object(tracking, data->object);
                                                else
                                                        tracking_object = 
BKE_tracking_get_camera_object(tracking);
-
+                                               
                                                if (!tracking_object) {
                                                        curcon->flag |= 
CONSTRAINT_DISABLE;
                                                }
@@ -428,14 +435,14 @@
                        }
                        else if (curcon->type == CONSTRAINT_TYPE_CAMERASOLVER) {
                                bCameraSolverConstraint *data = curcon->data;
-
-                               if ((data->flag & CAMERASOLVER_ACTIVECLIP) == 0 
&& data->clip == NULL)
+                               
+                               if ((data->flag & CAMERASOLVER_ACTIVECLIP) == 0 
&& (data->clip == NULL))
                                        curcon->flag |= CONSTRAINT_DISABLE;
                        }
                        else if (curcon->type == CONSTRAINT_TYPE_OBJECTSOLVER) {
                                bObjectSolverConstraint *data = curcon->data;
-
-                               if ((data->flag & CAMERASOLVER_ACTIVECLIP) == 0 
&& data->clip == NULL)
+                               
+                               if ((data->flag & CAMERASOLVER_ACTIVECLIP) == 0 
&& (data->clip == NULL))
                                        curcon->flag |= CONSTRAINT_DISABLE;
                        }
                        

Modified: trunk/blender/source/blender/makesrna/intern/rna_constraint.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_constraint.c       
2012-05-17 10:10:11 UTC (rev 46718)
+++ trunk/blender/source/blender/makesrna/intern/rna_constraint.c       
2012-05-17 10:28:30 UTC (rev 46719)
@@ -1105,6 +1105,7 @@
 
        prop = RNA_def_property(srna, "action", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "act");
+       RNA_def_property_pointer_funcs(prop, NULL, NULL, NULL, 
"rna_Action_id_poll");
        RNA_def_property_ui_text(prop, "Action", "The constraining action");
        RNA_def_property_flag(prop, PROP_EDITABLE | PROP_ID_REFCOUNT);
        RNA_def_property_update(prop, NC_OBJECT | ND_CONSTRAINT, 
"rna_Constraint_update");

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to