diff options
author | Dalai Felinto <dfelinto@gmail.com> | 2010-02-06 02:50:33 +0300 |
---|---|---|
committer | Dalai Felinto <dfelinto@gmail.com> | 2010-02-06 02:50:33 +0300 |
commit | 443d913f72c15c9933e6da79c2e9f629d3e3a006 (patch) | |
tree | 5998fb4a154998be44b8d2435bd862f2b55a1ba6 | |
parent | 29a6465ed4e08e4bdf1bc53bace2be1774d6fd38 (diff) |
BGE: rna update for Logic Bricks
Sensor and Controllers: small fixes and suggestion (comments) for future improvement - mainly to replace text properties to material, text or object datablocks.
Actuators done:
* IPO
* CAMERA
Actuators to be done:
All the others (their structure is in the file)
Adding NC_LOGIC
** If someone want to help on that:
Files used for actuator RNA:
- logic_window.c
- DNA_actuator_types.h
*** my first big RNA operation. critics/suggestions are welcome
**** padded some DNA variables that were not been used.
-rw-r--r-- | source/blender/makesdna/DNA_actuator_types.h | 8 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_sensor_types.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_actuator.c | 358 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_controller.c | 10 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_sensor.c | 17 | ||||
-rw-r--r-- | source/blender/windowmanager/WM_types.h | 1 |
6 files changed, 387 insertions, 9 deletions
diff --git a/source/blender/makesdna/DNA_actuator_types.h b/source/blender/makesdna/DNA_actuator_types.h index 58fa38ae159..01d75064d2e 100644 --- a/source/blender/makesdna/DNA_actuator_types.h +++ b/source/blender/makesdna/DNA_actuator_types.h @@ -114,16 +114,16 @@ typedef struct bIpoActuator { char name[32]; char frameProp[32]; /* Set this property to the actions current frame */ - short pad1, cur, butsta, butend; + short pad1, pad2, pad3, pad4; } bIpoActuator; typedef struct bCameraActuator { struct Object *ob; float height, min, max; - float fac; - short flag, axis; - float visifac; + float pad; + short pad1, axis; + float pad2; } bCameraActuator ; typedef struct bConstraintActuator { diff --git a/source/blender/makesdna/DNA_sensor_types.h b/source/blender/makesdna/DNA_sensor_types.h index a5ba5886ed5..e948bee0889 100644 --- a/source/blender/makesdna/DNA_sensor_types.h +++ b/source/blender/makesdna/DNA_sensor_types.h @@ -98,6 +98,7 @@ typedef struct bDelaySensor { typedef struct bCollisionSensor { char name[32]; /* property name */ char materialName[32]; /* material */ + // struct Material *ma; // XXX remove materialName short damptimer, damp; short mode; /* flag to choose material or property */ short pad2; @@ -121,6 +122,7 @@ typedef struct bRaySensor { float range; char propname[32]; char matname[32]; + //struct Material *ma; // XXX remove materialName short mode; short pad1; int axisflag; diff --git a/source/blender/makesrna/intern/rna_actuator.c b/source/blender/makesrna/intern/rna_actuator.c index ce83d1c469b..eda9347920a 100644 --- a/source/blender/makesrna/intern/rna_actuator.c +++ b/source/blender/makesrna/intern/rna_actuator.c @@ -30,18 +30,67 @@ #include "rna_internal.h" #include "DNA_actuator_types.h" +#include "DNA_scene_types.h" // for MAXFRAMEF + +#include "WM_types.h" #ifdef RNA_RUNTIME +static StructRNA* rna_Actuator_refine(struct PointerRNA *ptr) +{ + bActuator *actuator= (bActuator*)ptr->data; + + switch(actuator->type) { + case ACT_OBJECT: + return &RNA_ObjectActuator; + case ACT_IPO: + return &RNA_IpoActuator; + case ACT_CAMERA: + return &RNA_CameraActuator; + case ACT_SOUND: + return &RNA_SoundActuator; + case ACT_PROPERTY: + return &RNA_PropertyActuator; + case ACT_CONSTRAINT: + return &RNA_ConstraintActuator; + case ACT_EDIT_OBJECT: + return &RNA_EditObjectActuator; + case ACT_SCENE: + return &RNA_SceneActuator; + case ACT_RANDOM: + return &RNA_RandomActuator; + case ACT_MESSAGE: + return &RNA_MessageActuator; + case ACT_ACTION: + return &RNA_ActionActuator; + case ACT_GAME: + return &RNA_GameActuator; + case ACT_VISIBILITY: + return &RNA_VisibilityActuator; + case ACT_2DFILTER: + return &RNA_TwoDFilterActuator; + case ACT_PARENT: + return &RNA_ParentActuator; + case ACT_SHAPEACTION: + return &RNA_ShapeActionActuator; + case ACT_STATE: + return &RNA_StateActuator; + case ACT_ARMATURE: + return &RNA_ArmatureActuator; + default: + return &RNA_Actuator; + } +} + #else -void RNA_def_actuator(BlenderRNA *brna) +void rna_def_actuator(BlenderRNA *brna) { StructRNA *srna; PropertyRNA *prop; static EnumPropertyItem actuator_type_items[] ={ - {ACT_OBJECT, "OBJECT", 0, "Object", ""}, + {ACT_OBJECT, "OBJECT", 0, "Motion", ""}, {ACT_IPO, "IPO", 0, "IPO", ""}, {ACT_CAMERA, "CAMERA", 0, "Camera", ""}, {ACT_SOUND, "SOUND", 0, "Sound", ""}, @@ -51,7 +100,7 @@ void RNA_def_actuator(BlenderRNA *brna) {ACT_SCENE, "SCENE", 0, "Scene", ""}, {ACT_RANDOM, "RANDOM", 0, "Random", ""}, {ACT_MESSAGE, "MESSAGE", 0, "Message", ""}, - {ACT_ACTION, "ACTION", 0, "Action", ""}, + {ACT_ACTION, "ACTION", 0, "Action", ""}, {ACT_GAME, "GAME", 0, "Game", ""}, {ACT_VISIBILITY, "VISIBILITY", 0, "Visibility", ""}, {ACT_2DFILTER, "FILTER_2D", 0, "2D Filter", ""}, @@ -63,8 +112,8 @@ void RNA_def_actuator(BlenderRNA *brna) srna= RNA_def_struct(brna, "Actuator", NULL); RNA_def_struct_ui_text(srna, "Actuator", "Game engine logic brick to apply actions in the game engine."); - RNA_def_struct_sdna(srna, "bActuator"); + RNA_def_struct_refine_func(srna, "rna_Actuator_refine"); prop= RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); RNA_def_property_ui_text(prop, "Name", ""); @@ -77,5 +126,306 @@ void RNA_def_actuator(BlenderRNA *brna) } +static void rna_def_object_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "ObjectActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Object Actuator", "Actuator to control the object movement."); + RNA_def_struct_sdna_from(srna, "bObjectActuator", "data"); + + //XXX +} + +static void rna_def_ipo_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + static EnumPropertyItem prop_type_items[] ={ + {ACT_IPO_PLAY, "PLAY", 0, "Play", ""}, + {ACT_IPO_PINGPONG, "PINGPONG", 0, "Ping Pong", ""}, + {ACT_IPO_FLIPPER, "FLIPPER", 0, "Flipper", ""}, + {ACT_IPO_LOOP_STOP, "STOP", 0, "Loop Stop", ""}, + {ACT_IPO_LOOP_END, "END", 0, "Loop End", ""}, +// {ACT_IPO_KEY2KEY, "IPOCHILD", 0, "Key to Key", ""}, + {ACT_IPO_FROM_PROP, "PROP", 0, "Property", ""}, + {0, NULL, 0, NULL, NULL}}; + + srna= RNA_def_struct(brna, "IpoActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Ipo Actuator", "Actuator to animate the object."); + RNA_def_struct_sdna_from(srna, "bIpoActuator", "data"); + + prop= RNA_def_property(srna, "play_type", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "type"); + RNA_def_property_enum_items(prop, prop_type_items); + RNA_def_property_ui_text(prop, "Ipo Type", "Specify the way you want to play the animation."); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "start_frame", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "sta"); + RNA_def_property_ui_range(prop, 1, MAXFRAMEF, 1, 1); + RNA_def_property_ui_text(prop, "Start Frame", ""); + RNA_def_property_update(prop, NC_SCENE, NULL); + + prop= RNA_def_property(srna, "end_frame", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "end"); + RNA_def_property_ui_range(prop, 1, MAXFRAMEF, 1, 1); + RNA_def_property_ui_text(prop, "End Frame", ""); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "prop", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "name"); + RNA_def_property_ui_text(prop, "Prop", "Use this property to define the Ipo position."); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "frame_prop", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "frameProp"); + RNA_def_property_ui_text(prop, "FrameProp", "Assign the action's current frame number to this property"); + + /* booleans */ + prop= RNA_def_property(srna, "ipo_force", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOFORCE); + RNA_def_property_ui_text(prop, "Force", "Apply Ipo as a global or local force depending on the local option (dynamic objects only)"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + //logic_window::change_ipo_actuator + + prop= RNA_def_property(srna, "ipo_local", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOLOCAL); + RNA_def_property_ui_text(prop, "L", "Let the ipo acts in local coordinates, used in Force and Add mode."); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "ipo_child", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOCHILD); + RNA_def_property_ui_text(prop, "Child", "Update IPO on all children Objects as well"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "ipo_add", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", ACT_IPOADD); + RNA_def_property_ui_text(prop, "Add", "Ipo is added to the current loc/rot/scale in global or local coordinate according to Local flag"); + RNA_def_property_update(prop, NC_LOGIC, NULL); + //logic_window::change_ipo_actuator +} + +static void rna_def_camera_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + PropertyRNA *prop; + + static EnumPropertyItem prop_axis_items[] ={ + {(float)'x', "X", 0, "X", "Camera tries to get behind the X axis"}, + {(float)'y', "Y", 0, "Y", "Camera tries to get behind the Y axis"}, + {0, NULL, 0, NULL, NULL}}; + + srna= RNA_def_struct(brna, "CameraActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Camera Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bCameraActuator", "data"); + + prop= RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "Object"); + RNA_def_property_pointer_sdna(prop, NULL, "ob"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Camera Object", "Look at this Object"); + RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, NULL); + + /* floats */ + prop= RNA_def_property(srna, "height", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_range(prop, 0.0, 20.0, 0.1, 0.1); + RNA_def_property_ui_text(prop, "Height", ""); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "min", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_range(prop, 0.0, 20.0, 0.1, 0.1); + RNA_def_property_ui_text(prop, "Min", ""); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + prop= RNA_def_property(srna, "max", PROP_FLOAT, PROP_NONE); + RNA_def_property_ui_range(prop, 0.0, 20.0, 0.1, 0.1); + RNA_def_property_ui_text(prop, "Max", ""); + RNA_def_property_update(prop, NC_LOGIC, NULL); + + /* x/y */ + // It could be changed to be a regular ENUM instead of this weird "(float)string enum" + prop= RNA_def_property(srna, "axis", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_sdna(prop, NULL, "axis"); + RNA_def_property_enum_items(prop, prop_axis_items); + RNA_def_property_ui_text(prop, "Axis", "Specify the axy the Camera will try to get behind."); + RNA_def_property_update(prop, NC_LOGIC, NULL); +} + +static void rna_def_sound_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "SoundActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Sound Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bSoundActuator", "data"); + + //XXX +} + +static void rna_def_property_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "PropertyActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Property Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bPropertyActuator", "data"); + + //XXX +} + +static void rna_def_constraint_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "ConstraintActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Constraint Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bConstraintActuator", "data"); + + //XXX +} + +static void rna_def_edit_object_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "EditObjectActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Edit Object Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bEditObjectActuator", "data"); + + //XXX +} + +static void rna_def_scene_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "SceneActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Scene Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bSceneActuator", "data"); + + //XXX +} + +static void rna_def_random_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "RandomActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Random Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bRandomActuator", "data"); + + //XXX +} + +static void rna_def_message_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "MessageActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Message Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bMessageActuator", "data"); + + //XXX +} + +static void rna_def_action_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "ActionActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Action Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bActionActuator", "data"); + + //XXX +} + +static void rna_def_game_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "GameActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Game Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bGameActuator", "data"); + + //XXX +} + +static void rna_def_visibility_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "VisibilityActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Visibility Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bVisibilityActuator", "data"); + + //XXX +} + +static void rna_def_twodfilter_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "TwoDFilterActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "2D Filter Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bTwoDFilterActuator", "data"); + + //XXX +} + +static void rna_def_parent_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "ParentActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Parent Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bParentActuator", "data"); + + //XXX +} + +static void rna_def_shape_action_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "ShapeActionActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Shape Action Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bShapeActionActuator", "data"); + + //XXX +} + +static void rna_def_state_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "StateActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "State Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bStateActuator", "data"); + + //XXX +} + +static void rna_def_armature_actuator(BlenderRNA *brna) +{ + StructRNA *srna; + srna= RNA_def_struct(brna, "ArmatureActuator", "Actuator"); + RNA_def_struct_ui_text(srna, "Armature Actuator", "Actuator to ..."); + RNA_def_struct_sdna_from(srna, "bArmatureActuator", "data"); + + //XXX +} + +void RNA_def_actuator(BlenderRNA *brna) +{ + rna_def_actuator(brna); + + rna_def_object_actuator(brna); // to be done + rna_def_ipo_actuator(brna); + rna_def_camera_actuator(brna); + rna_def_sound_actuator(brna); // to be done + rna_def_property_actuator(brna); // to be done + rna_def_constraint_actuator(brna); // to be done + rna_def_edit_object_actuator(brna); // to be done + rna_def_scene_actuator(brna); // to be done + rna_def_random_actuator(brna); // to be done + rna_def_message_actuator(brna); // to be done + rna_def_action_actuator(brna); // to be done + rna_def_game_actuator(brna); // to be done + rna_def_visibility_actuator(brna); // to be done + rna_def_twodfilter_actuator(brna); // to be done + rna_def_parent_actuator(brna); // to be done + rna_def_shape_action_actuator(brna);// to be done + rna_def_state_actuator(brna); // to be done + rna_def_armature_actuator(brna); // to be done + +} + #endif diff --git a/source/blender/makesrna/intern/rna_controller.c b/source/blender/makesrna/intern/rna_controller.c index 4d5ef7aa123..f5e7086e793 100644 --- a/source/blender/makesrna/intern/rna_controller.c +++ b/source/blender/makesrna/intern/rna_controller.c @@ -108,10 +108,18 @@ void RNA_def_controller(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Python Controller", "Controller executing a python script."); prop= RNA_def_property(srna, "text", PROP_POINTER, PROP_NONE); - RNA_def_property_struct_type(prop, "ID"); + RNA_def_property_struct_type(prop, "Text"); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Text", "Text datablock with the python script."); + prop= RNA_def_property(srna, "module", PROP_STRING, PROP_NONE); + RNA_def_property_ui_text(prop, "Module", "Module name and function to run e.g. \"someModule.main\". Internal texts and external python files can be used"); + RNA_def_struct_name_property(srna, prop); + + prop= RNA_def_property(srna, "debug", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "flag", CONT_PY_DEBUG); + RNA_def_property_ui_text(prop, "D", "Continuously reload the module from disk for editing external modules without restarting."); + /* Other Controllers */ srna= RNA_def_struct(brna, "AndController", "Controller"); RNA_def_struct_ui_text(srna, "And Controller", "Controller passing on events based on a logical AND operation."); diff --git a/source/blender/makesrna/intern/rna_sensor.c b/source/blender/makesrna/intern/rna_sensor.c index 1003af6d4d1..81b41a157dc 100644 --- a/source/blender/makesrna/intern/rna_sensor.c +++ b/source/blender/makesrna/intern/rna_sensor.c @@ -199,6 +199,7 @@ static void rna_def_touch_sensor(BlenderRNA *brna) RNA_def_struct_sdna_from(srna, "bTouchSensor", "data"); prop= RNA_def_property(srna, "material", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "Material"); RNA_def_property_pointer_sdna(prop, NULL, "ma"); RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Material", "Only look for floors with this material."); @@ -324,6 +325,7 @@ static void rna_def_actuator_sensor(BlenderRNA *brna) RNA_def_struct_ui_text(srna, "Actuator Sensor", "Sensor to detect state modifications of actuators."); RNA_def_struct_sdna_from(srna, "bActuatorSensor", "data"); + // XXX if eventually have Logics using RNA 100%, we could use the actuator datablock isntead of its name prop= RNA_def_property(srna, "actuator", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "name"); RNA_def_property_ui_text(prop, "Actuator", "Actuator name, actuator active state modifications will be detected."); @@ -372,6 +374,13 @@ static void rna_def_collision_sensor(BlenderRNA *brna) RNA_def_property_string_sdna(prop, NULL, "materialName"); RNA_def_property_ui_text(prop, "Material Name", "Only look for Objects with this material."); +/* + prop= RNA_def_property(srna, "material", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "Material"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_pointer_sdna(prop, NULL, "ma"); + RNA_def_property_ui_text(prop, "Material", "Only look for Objects with this material."); +*/ prop= RNA_def_property(srna, "collision_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "mode"); RNA_def_property_enum_items(prop, prop_type_items); @@ -456,6 +465,14 @@ static void rna_def_ray_sensor(BlenderRNA *brna) RNA_def_property_string_sdna(prop, NULL, "matname"); RNA_def_property_ui_text(prop, "Material", "Only look for Objects with this material."); +/* + prop= RNA_def_property(srna, "material", PROP_POINTER, PROP_NONE); + RNA_def_property_struct_type(prop, "Material"); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_pointer_sdna(prop, NULL, "ma"); + RNA_def_property_ui_text(prop, "Material", "Only look for Objects with this material."); +*/ + prop= RNA_def_property(srna, "ray_type", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "mode"); RNA_def_property_enum_items(prop, prop_type_items); diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index 0439fa8b8f5..3efa2b85174 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -144,6 +144,7 @@ typedef struct wmNotifier { #define NC_GEOM (16<<24) #define NC_NODE (17<<24) #define NC_ID (18<<24) +#define NC_LOGIC (19<<24) /* data type, 256 entries is enough, it can overlap */ #define NOTE_DATA 0x00FF0000 |