Fix T61287: Object restrict viewport ignored in instanced collection
[blender.git] / source / blender / makesrna / intern / rna_object.c
index 390a80ce551f68cbd2a6aff85e872f3c9bf9a7bf..0526269bdedc94ecfded1a93f7fe73853a2bc9b8 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation; either version 2
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software Foundation,
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * Contributor(s): Blender Foundation (2008).
- *
- * ***** END GPL LICENSE BLOCK *****
  */
 
-/** \file blender/makesrna/intern/rna_object.c
- *  \ingroup RNA
+/** \file \ingroup RNA
  */
 
 #include <stdio.h>
@@ -42,7 +35,6 @@
 #include "DNA_shader_fx_types.h"
 
 #include "BLI_utildefines.h"
-#include "BLI_listbase.h"
 
 #include "BKE_camera.h"
 #include "BKE_collection.h"
@@ -78,7 +70,7 @@ const EnumPropertyItem rna_enum_object_mode_items[] = {
        {OB_MODE_SCULPT_GPENCIL, "SCULPT_GPENCIL", ICON_SCULPTMODE_HLT, "Sculpt Mode", "Sculpt Grease Pencil Strokes"},
        {OB_MODE_PAINT_GPENCIL, "PAINT_GPENCIL", ICON_GREASEPENCIL, "Draw", "Paint Grease Pencil Strokes"},
        {OB_MODE_WEIGHT_GPENCIL, "WEIGHT_GPENCIL", ICON_WPAINT_HLT, "Weight Paint", "Grease Pencil Weight Paint Strokes" },
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 
 /* Same as above, but with names that distinguish grease pencil. */
@@ -95,7 +87,7 @@ const EnumPropertyItem rna_enum_workspace_object_mode_items[] = {
        {OB_MODE_SCULPT_GPENCIL, "SCULPT_GPENCIL", ICON_SCULPTMODE_HLT, "Grease Pencil Sculpt Mode", "Sculpt Grease Pencil Strokes"},
        {OB_MODE_PAINT_GPENCIL, "PAINT_GPENCIL", ICON_GREASEPENCIL, "Grease Pencil Draw", "Paint Grease Pencil Strokes"},
        {OB_MODE_WEIGHT_GPENCIL, "WEIGHT_GPENCIL", ICON_WPAINT_HLT, "Grease Pencil Weight Paint", "Grease Pencil Weight Paint Strokes" },
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 
 const EnumPropertyItem rna_enum_object_empty_drawtype_items[] = {
@@ -107,14 +99,14 @@ const EnumPropertyItem rna_enum_object_empty_drawtype_items[] = {
        {OB_EMPTY_SPHERE, "SPHERE", ICON_SPHERE, "Sphere", ""},
        {OB_EMPTY_CONE, "CONE", ICON_CONE, "Cone", ""},
        {OB_EMPTY_IMAGE, "IMAGE", ICON_FILE_IMAGE, "Image", ""},
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 
-const EnumPropertyItem rna_enum_object_empty_image_depth_items[] = {
+static const EnumPropertyItem rna_enum_object_empty_image_depth_items[] = {
        {OB_EMPTY_IMAGE_DEPTH_DEFAULT, "DEFAULT", 0, "Default", ""},
        {OB_EMPTY_IMAGE_DEPTH_FRONT, "FRONT", 0, "Front", ""},
        {OB_EMPTY_IMAGE_DEPTH_BACK, "BACK", 0, "Back", ""},
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 
 const EnumPropertyItem rna_enum_object_gpencil_type_items[] = {
@@ -131,12 +123,11 @@ static const EnumPropertyItem parent_type_items[] = {
        {PARVERT1, "VERTEX", 0, "Vertex", "The object is parented to a vertex"},
        {PARVERT3, "VERTEX_3", 0, "3 Vertices", ""},
        {PARBONE, "BONE", 0, "Bone", "The object is parented to a bone"},
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 
 #define INSTANCE_ITEMS_SHARED \
        {0, "NONE", 0, "None", ""}, \
-       {OB_DUPLIFRAMES, "FRAMES", 0, "Frames", "Make instance of object for every frame"}, \
        {OB_DUPLIVERTS, "VERTS", 0, "Verts", "Instantiate child objects on all vertices"}, \
        {OB_DUPLIFACES, "FACES", 0, "Faces", "Instantiate child objects on all faces"}
 
@@ -145,12 +136,12 @@ static const EnumPropertyItem parent_type_items[] = {
 static const EnumPropertyItem instance_items[] = {
        INSTANCE_ITEMS_SHARED,
        INSTANCE_ITEM_COLLECTION,
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 #ifdef RNA_RUNTIME
 static EnumPropertyItem instance_items_nogroup[] = {
        INSTANCE_ITEMS_SHARED,
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 #endif
 #undef INSTANCE_ITEMS_SHARED
@@ -162,7 +153,7 @@ const EnumPropertyItem rna_enum_metaelem_type_items[] = {
        {MB_PLANE, "PLANE", ICON_META_PLANE, "Plane", ""},
        {MB_ELIPSOID, "ELLIPSOID", ICON_META_ELLIPSOID, "Ellipsoid", ""}, /* NOTE: typo at original definition! */
        {MB_CUBE, "CUBE", ICON_META_CUBE, "Cube", ""},
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 
 /* used for 2 enums */
@@ -186,14 +177,27 @@ const EnumPropertyItem rna_enum_object_type_items[] = {
        {OB_LAMP, "LIGHT", 0, "Light", ""},
        {OB_SPEAKER, "SPEAKER", 0, "Speaker", ""},
        {OB_LIGHTPROBE, "LIGHT_PROBE", 0, "Probe", ""},
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 
 const EnumPropertyItem rna_enum_object_type_curve_items[] = {
        OBTYPE_CU_CURVE,
        OBTYPE_CU_SURF,
        OBTYPE_CU_FONT,
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
+};
+
+const EnumPropertyItem rna_enum_object_rotation_mode_items[] = {
+       {ROT_MODE_QUAT, "QUATERNION", 0, "Quaternion (WXYZ)", "No Gimbal Lock"},
+       {ROT_MODE_XYZ, "XYZ", 0, "XYZ Euler", "XYZ Rotation Order - prone to Gimbal Lock (default)"},
+       {ROT_MODE_XZY, "XZY", 0, "XZY Euler", "XZY Rotation Order - prone to Gimbal Lock"},
+       {ROT_MODE_YXZ, "YXZ", 0, "YXZ Euler", "YXZ Rotation Order - prone to Gimbal Lock"},
+       {ROT_MODE_YZX, "YZX", 0, "YZX Euler", "YZX Rotation Order - prone to Gimbal Lock"},
+       {ROT_MODE_ZXY, "ZXY", 0, "ZXY Euler", "ZXY Rotation Order - prone to Gimbal Lock"},
+       {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order - prone to Gimbal Lock"},
+       {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle",
+                            "Axis Angle (W+XYZ), defines a rotation around some axis defined by 3D-Vector"},
+       {0, NULL, 0, NULL, NULL},
 };
 
 const EnumPropertyItem rna_enum_object_axis_items[] = {
@@ -203,7 +207,7 @@ const EnumPropertyItem rna_enum_object_axis_items[] = {
        {OB_NEGX, "NEG_X", 0, "-X", ""},
        {OB_NEGY, "NEG_Y", 0, "-Y", ""},
        {OB_NEGZ, "NEG_Z", 0, "-Z", ""},
-       {0, NULL, 0, NULL, NULL}
+       {0, NULL, 0, NULL, NULL},
 };
 
 #ifdef RNA_RUNTIME
@@ -262,7 +266,7 @@ static void rna_Object_matrix_world_update(Main *bmain, Scene *scene, PointerRNA
 static void rna_Object_hide_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr)
 {
        Object *ob = ptr->id.data;
-       BKE_main_collection_sync(bmain);
+       BKE_main_collection_sync_remap(bmain);
        DEG_id_tag_update(&ob->id, ID_RECALC_COPY_ON_WRITE);
        DEG_relations_tag_update(bmain);
        WM_main_add_notifier(NC_OBJECT | ND_DRAW, &ob->id);
@@ -471,8 +475,9 @@ static void rna_Object_parent_type_set(PointerRNA *ptr, int value)
        ED_object_parent(ob, ob->parent, value, ob->parsubstr);
 }
 
-static const EnumPropertyItem *rna_Object_parent_type_itemf(bContext *UNUSED(C), PointerRNA *ptr,
-                                                      PropertyRNA *UNUSED(prop), bool *r_free)
+static const EnumPropertyItem *rna_Object_parent_type_itemf(
+        bContext *UNUSED(C), PointerRNA *ptr,
+        PropertyRNA *UNUSED(prop), bool *r_free)
 {
        Object *ob = (Object *)ptr->data;
        EnumPropertyItem *item = NULL;
@@ -905,7 +910,7 @@ static void rna_Object_dimensions_get(PointerRNA *ptr, float *value)
 static void rna_Object_dimensions_set(PointerRNA *ptr, const float *value)
 {
        Object *ob = ptr->data;
-       BKE_object_dimensions_set(ob, value);
+       BKE_object_dimensions_set(ob, value, 0);
 }
 
 static int rna_Object_location_editable(PointerRNA *ptr, int index)
@@ -1613,7 +1618,7 @@ static void rna_def_vertex_group(BlenderRNA *brna)
                {WEIGHT_REPLACE,  "REPLACE",  0, "Replace",  "Replace"},
                {WEIGHT_ADD,      "ADD",      0, "Add",      "Add"},
                {WEIGHT_SUBTRACT, "SUBTRACT", 0, "Subtract", "Subtract"},
-               {0, NULL, 0, NULL, NULL}
+               {0, NULL, 0, NULL, NULL},
        };
 
        srna = RNA_def_struct(brna, "VertexGroup", NULL);
@@ -1717,7 +1722,7 @@ static void rna_def_material_slot(BlenderRNA *brna)
        static const EnumPropertyItem link_items[] = {
                {1, "OBJECT", 0, "Object", ""},
                {0, "DATA", 0, "Data", ""},
-               {0, NULL, 0, NULL, NULL}
+               {0, NULL, 0, NULL, NULL},
        };
 
        /* NOTE: there is no MaterialSlot equivalent in DNA, so the internal
@@ -2093,7 +2098,7 @@ static void rna_def_object(BlenderRNA *brna)
                {OB_POSX, "X", 0, "X", ""},
                {OB_POSY, "Y", 0, "Y", ""},
                {OB_POSZ, "Z", 0, "Z", ""},
-               {0, NULL, 0, NULL, NULL}
+               {0, NULL, 0, NULL, NULL},
        };
 
        static const EnumPropertyItem drawtype_items[] = {
@@ -2102,7 +2107,7 @@ static void rna_def_object(BlenderRNA *brna)
                {OB_SOLID, "SOLID", 0, "Solid", "Display the object as a solid (if solid drawing is enabled in the viewport)"},
                {OB_TEXTURE, "TEXTURED", 0, "Textured",
                             "Display the object with textures (if textures are enabled in the viewport)"},
-               {0, NULL, 0, NULL, NULL}
+               {0, NULL, 0, NULL, NULL},
        };
 
        static const EnumPropertyItem boundtype_items[] = {
@@ -2111,23 +2116,7 @@ static void rna_def_object(BlenderRNA *brna)
                {OB_BOUND_CYLINDER, "CYLINDER", 0, "Cylinder", "Display bounds as cylinder"},
                {OB_BOUND_CONE, "CONE", 0, "Cone", "Display bounds as cone"},
                {OB_BOUND_CAPSULE, "CAPSULE", 0, "Capsule", "Display bounds as capsule"},
-               {0, NULL, 0, NULL, NULL}
-       };
-
-
-       /* XXX: this RNA enum define is currently duplicated for objects,
-        *      since there is some text here which is not applicable */
-       static const EnumPropertyItem prop_rotmode_items[] = {
-               {ROT_MODE_QUAT, "QUATERNION", 0, "Quaternion (WXYZ)", "No Gimbal Lock"},
-               {ROT_MODE_XYZ, "XYZ", 0, "XYZ Euler", "XYZ Rotation Order - prone to Gimbal Lock (default)"},
-               {ROT_MODE_XZY, "XZY", 0, "XZY Euler", "XZY Rotation Order - prone to Gimbal Lock"},
-               {ROT_MODE_YXZ, "YXZ", 0, "YXZ Euler", "YXZ Rotation Order - prone to Gimbal Lock"},
-               {ROT_MODE_YZX, "YZX", 0, "YZX Euler", "YZX Rotation Order - prone to Gimbal Lock"},
-               {ROT_MODE_ZXY, "ZXY", 0, "ZXY Euler", "ZXY Rotation Order - prone to Gimbal Lock"},
-               {ROT_MODE_ZYX, "ZYX", 0, "ZYX Euler", "ZYX Rotation Order - prone to Gimbal Lock"},
-               {ROT_MODE_AXISANGLE, "AXIS_ANGLE", 0, "Axis Angle",
-                                    "Axis Angle (W+XYZ), defines a rotation around some axis defined by 3D-Vector"},
-               {0, NULL, 0, NULL, NULL}
+               {0, NULL, 0, NULL, NULL},
        };
 
        static float default_quat[4] = {1, 0, 0, 0};    /* default quaternion values */
@@ -2291,7 +2280,7 @@ static void rna_def_object(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "rotation_mode", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "rotmode");
-       RNA_def_property_enum_items(prop, prop_rotmode_items); /* XXX move to using a single define of this someday */
+       RNA_def_property_enum_items(prop, rna_enum_object_rotation_mode_items);
        RNA_def_property_enum_funcs(prop, NULL, "rna_Object_rotation_mode_set", NULL);
        RNA_def_property_ui_text(prop, "Rotation Mode", "");
        RNA_def_property_update(prop, NC_OBJECT | ND_TRANSFORM, "rna_Object_internal_update");
@@ -2308,11 +2297,14 @@ static void rna_def_object(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "dimensions", PROP_FLOAT, PROP_XYZ_LENGTH);
        RNA_def_property_array(prop, 3);
-       /* only for the transform-panel and conflicts with animating scale */
+       /* Only as convinient helper for py API, and conflicts with animating scale. */
        RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
        RNA_def_property_float_funcs(prop, "rna_Object_dimensions_get", "rna_Object_dimensions_set", NULL);
        RNA_def_property_ui_range(prop, 0.0f, FLT_MAX, 1, RNA_TRANSLATION_PREC_DEFAULT);
-       RNA_def_property_ui_text(prop, "Dimensions", "Absolute bounding box dimensions of the object");
+       RNA_def_property_ui_text(prop, "Dimensions",
+                                "Absolute bounding box dimensions of the object (WARNING: assigning to it or "
+                                "its members mutiple consecutive times will not work correctly, "
+                                "as this needs up-to-date evaluated data)");
        RNA_def_property_update(prop, NC_OBJECT | ND_TRANSFORM, "rna_Object_internal_update");
 
 
@@ -2502,18 +2494,25 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
 
        prop = RNA_def_property(srna, "show_empty_image_perspective", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "empty_image_visibility_flag", OB_EMPTY_IMAGE_VISIBLE_PERSPECTIVE);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "empty_image_visibility_flag", OB_EMPTY_IMAGE_HIDE_PERSPECTIVE);
        RNA_def_property_ui_text(prop, "Display in Perspective Mode", "Display image in perspective mode");
        RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
 
        prop = RNA_def_property(srna, "show_empty_image_orthographic", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "empty_image_visibility_flag", OB_EMPTY_IMAGE_VISIBLE_ORTHOGRAPHIC);
+       RNA_def_property_boolean_negative_sdna(prop, NULL, "empty_image_visibility_flag", OB_EMPTY_IMAGE_HIDE_ORTHOGRAPHIC);
        RNA_def_property_ui_text(prop, "Display in Orthographic Mode", "Display image in orthographic mode");
        RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
 
-       prop = RNA_def_property(srna, "show_empty_image_backside", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "empty_image_visibility_flag", OB_EMPTY_IMAGE_VISIBLE_BACKSIDE);
-       RNA_def_property_ui_text(prop, "Display Back Side", "Display empty image even when viewed from the back");
+       static EnumPropertyItem prop_empty_image_side_items[] = {
+               {0, "DOUBLE_SIDED", 0, "Both", ""},
+               {OB_EMPTY_IMAGE_HIDE_BACK, "FRONT", 0, "Front", ""},
+               {OB_EMPTY_IMAGE_HIDE_FRONT, "BACK", 0, "Back", ""},
+               {0, NULL, 0, NULL, NULL},
+       };
+       prop = RNA_def_property(srna, "empty_image_side", PROP_ENUM, PROP_NONE);
+       RNA_def_property_enum_bitflag_sdna(prop, NULL, "empty_image_visibility_flag");
+       RNA_def_property_enum_items(prop, prop_empty_image_side_items);
+       RNA_def_property_ui_text(prop, "Empty Image Side", "Show front/back side");
        RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, NULL);
 
        /* render */
@@ -2599,21 +2598,6 @@ static void rna_def_object(BlenderRNA *brna)
        rna_def_animviz_common(srna);
        rna_def_motionpath_common(srna);
 
-       /* slow parenting */
-       /* XXX: evil old crap */
-       prop = RNA_def_property(srna, "use_slow_parent", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "partype", PARSLOW);
-       RNA_def_property_ui_text(prop, "Slow Parent",
-                                "Create a delay in the parent relationship (beware: this isn't renderfarm "
-                                "safe and may be invalid after jumping around the timeline)");
-       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update");
-
-       prop = RNA_def_property(srna, "slow_parent_offset", PROP_FLOAT, PROP_NONE | PROP_UNIT_TIME);
-       RNA_def_property_float_sdna(prop, NULL, "sf");
-       RNA_def_property_range(prop, MINAFRAMEF, MAXFRAMEF);
-       RNA_def_property_ui_text(prop, "Slow Parent Offset", "Delay in the parent relationship");
-       RNA_def_property_update(prop, NC_OBJECT | ND_TRANSFORM, "rna_Object_internal_update");
-
        /* instancing */
        prop = RNA_def_property(srna, "instance_type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_bitflag_sdna(prop, NULL, "transflag");
@@ -2622,12 +2606,6 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Instance Type", "If not None, object instancing method to use");
        RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_dependency_update");
 
-       prop = RNA_def_property(srna, "use_instance_frames_speed", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_negative_sdna(prop, NULL, "transflag", OB_DUPLINOSPEED);
-       RNA_def_property_ui_text(prop, "Instance Frames Speed",
-                                "Set frames instancing to use the current frame instead of parent curve's evaluation time");
-       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update");
-
        prop = RNA_def_property(srna, "use_instance_vertices_rotation", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLIROT);
        RNA_def_property_ui_text(prop, "Instance Verts Rotation", "Rotate instance according to vertex normal");
@@ -2652,32 +2630,6 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Instance Collection", "Instance an existing collection");
        RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_dependency_update");
 
-       prop = RNA_def_property(srna, "instance_frames_start", PROP_INT, PROP_NONE | PROP_UNIT_TIME);
-       RNA_def_property_int_sdna(prop, NULL, "dupsta");
-       RNA_def_property_range(prop, MINAFRAME, MAXFRAME);
-       RNA_def_property_ui_text(prop, "Instance Frames Start", "Start frame for frame instances");
-       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update");
-
-       prop = RNA_def_property(srna, "instance_frames_end", PROP_INT, PROP_NONE | PROP_UNIT_TIME);
-       RNA_def_property_int_sdna(prop, NULL, "dupend");
-       RNA_def_property_range(prop, MINAFRAME, MAXFRAME);
-       RNA_def_property_ui_text(prop, "Instance Frames End", "End frame for frame instances");
-       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update");
-
-       prop = RNA_def_property(srna, "instance_frames_on", PROP_INT, PROP_NONE | PROP_UNIT_TIME);
-       RNA_def_property_int_sdna(prop, NULL, "dupon");
-       RNA_def_property_range(prop, 1, MAXFRAME);
-       RNA_def_property_ui_range(prop, 1, 1500, 1, -1);
-       RNA_def_property_ui_text(prop, "Instance Frames On", "Number of frames to use between DupOff frames");
-       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update");
-
-       prop = RNA_def_property(srna, "instance_frames_off", PROP_INT, PROP_NONE | PROP_UNIT_TIME);
-       RNA_def_property_int_sdna(prop, NULL, "dupoff");
-       RNA_def_property_range(prop, 0, MAXFRAME);
-       RNA_def_property_ui_range(prop, 0, 1500, 1, -1);
-       RNA_def_property_ui_text(prop, "Instance Frames Off", "Recurring frames to exclude from the frame instances");
-       RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_Object_internal_update");
-
        prop = RNA_def_property(srna, "is_instancer", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLI);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
@@ -2796,7 +2748,7 @@ static void rna_def_object(BlenderRNA *brna)
 
        /* Base Settings */
        prop = RNA_def_property(srna, "is_from_instancer", PROP_BOOLEAN, PROP_NONE);
-       RNA_def_property_boolean_sdna(prop, NULL, "base_flag", BASE_FROMDUPLI);
+       RNA_def_property_boolean_sdna(prop, NULL, "base_flag", BASE_FROM_DUPLI);
        RNA_def_property_ui_text(prop, "Base from Instancer", "Object comes from a instancer");
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);