Undo revision 23130 which was a merge with 2.5, a messy one because I did something...
[blender.git] / source / blender / makesrna / intern / rna_boid.c
index 8002aa8..0c5565e 100644 (file)
@@ -41,7 +41,6 @@
 #include "DNA_object_types.h"
 #include "DNA_particle_types.h"
 
-#include "WM_api.h"
 #include "WM_types.h"
 
 EnumPropertyItem boidrule_type_items[] ={
@@ -83,15 +82,14 @@ static void rna_Boids_reset(bContext *C, PointerRNA *ptr)
                
                psys->recalc = PSYS_RECALC_RESET;
 
-               if(ob)
-                       DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+               if(ob) {
+                       DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
+               }
        }
        else {
                part = ptr->id.data;
                psys_flush_particle_settings(scene, part, PSYS_RECALC_RESET);
        }
-
-       WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, NULL);
 }
 static void rna_Boids_reset_deps(bContext *C, PointerRNA *ptr)
 {
@@ -104,16 +102,15 @@ static void rna_Boids_reset_deps(bContext *C, PointerRNA *ptr)
                
                psys->recalc = PSYS_RECALC_RESET;
 
-               if(ob)
-                       DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+               if(ob) {
+                       DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
+               }
        }
        else {
                part = ptr->id.data;
                psys_flush_particle_settings(scene, part, PSYS_RECALC_RESET);
                DAG_scene_sort(scene);
        }
-
-       WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE_DATA, NULL);
 }
 
 static StructRNA* rna_BoidRule_refine(struct PointerRNA *ptr)
@@ -250,12 +247,12 @@ static void rna_def_boidrule_goal(BlenderRNA *brna)
        RNA_def_property_pointer_sdna(prop, NULL, "ob");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_ui_text(prop, "Object", "Goal object.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset_deps");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset_deps");
 
        prop= RNA_def_property(srna, "predict", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "options", BRULE_GOAL_AVOID_PREDICT);
        RNA_def_property_ui_text(prop, "Predict", "Predict target movement.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 }
 
 static void rna_def_boidrule_avoid(BlenderRNA *brna)
@@ -271,17 +268,17 @@ static void rna_def_boidrule_avoid(BlenderRNA *brna)
        RNA_def_property_pointer_sdna(prop, NULL, "ob");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_ui_text(prop, "Object", "Object to avoid.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset_deps");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset_deps");
 
        prop= RNA_def_property(srna, "predict", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "options", BRULE_GOAL_AVOID_PREDICT);
        RNA_def_property_ui_text(prop, "Predict", "Predict target movement.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "fear_factor", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 100.0f);
        RNA_def_property_ui_text(prop, "Fear factor", "Avoid object if danger from it is above this threshol.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 }
 
 static void rna_def_boidrule_avoid_collision(BlenderRNA *brna)
@@ -295,17 +292,17 @@ static void rna_def_boidrule_avoid_collision(BlenderRNA *brna)
        prop= RNA_def_property(srna, "boids", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "options", BRULE_ACOLL_WITH_BOIDS);
        RNA_def_property_ui_text(prop, "Boids", "Avoid collision with other boids.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "deflectors", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "options", BRULE_ACOLL_WITH_DEFLECTORS);
        RNA_def_property_ui_text(prop, "Deflectors", "Avoid collision with deflector objects.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "look_ahead", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 100.0f);
        RNA_def_property_ui_text(prop, "Look ahead", "Time to look ahead in seconds.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 }
 
 static void rna_def_boidrule_follow_leader(BlenderRNA *brna)
@@ -320,22 +317,22 @@ static void rna_def_boidrule_follow_leader(BlenderRNA *brna)
        RNA_def_property_pointer_sdna(prop, NULL, "ob");
        RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_ui_text(prop, "Object", "Follow this object instead of a boid.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset_deps");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset_deps");
 
        prop= RNA_def_property(srna, "distance", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 100.0f);
        RNA_def_property_ui_text(prop, "Distance", "Distance behind leader to follow.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "queue_size", PROP_INT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 100.0f);
        RNA_def_property_ui_text(prop, "Queue Size", "How many boids in a line.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "line", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "options", BRULE_LEADER_IN_LINE);
        RNA_def_property_ui_text(prop, "Line", "Follow leader in a line.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 }
 
 static void rna_def_boidrule_average_speed(BlenderRNA *brna)
@@ -349,17 +346,17 @@ static void rna_def_boidrule_average_speed(BlenderRNA *brna)
        prop= RNA_def_property(srna, "wander", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Wander", "How fast velocity's direction is randomized.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "level", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Level", "How much velocity's z-component is kept constant.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "speed", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Speed", "Percentage of maximum speed.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 }
 
 static void rna_def_boidrule_fight(BlenderRNA *brna)
@@ -373,12 +370,12 @@ static void rna_def_boidrule_fight(BlenderRNA *brna)
        prop= RNA_def_property(srna, "distance", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 100.0f);
        RNA_def_property_ui_text(prop, "Fight Distance", "Attack boids at max this distance.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "flee_distance", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0f, 100.0f);
        RNA_def_property_ui_text(prop, "Flee Distance", "Flee to this distance.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 }
 
 static void rna_def_boidrule(BlenderRNA *brna)
@@ -408,12 +405,12 @@ static void rna_def_boidrule(BlenderRNA *brna)
        prop= RNA_def_property(srna, "in_air", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", BOIDRULE_IN_AIR);
        RNA_def_property_ui_text(prop, "In Air", "Use rule when boid is flying.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
        
        prop= RNA_def_property(srna, "on_land", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", BOIDRULE_ON_LAND);
        RNA_def_property_ui_text(prop, "On Land", "Use rule when boid is on land.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
        
        //prop= RNA_def_property(srna, "expanded", PROP_BOOLEAN, PROP_NONE);
        //RNA_def_property_boolean_sdna(prop, NULL, "mode", eModifierMode_Expanded);
@@ -460,17 +457,17 @@ static void rna_def_boidstate(BlenderRNA *brna)
        prop= RNA_def_property(srna, "rule_fuzziness", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 1.0);
        RNA_def_property_ui_text(prop, "Rule Fuzzines", "");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "volume", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 100.0);
        RNA_def_property_ui_text(prop, "Volume", "");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "falloff", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 10.0);
        RNA_def_property_ui_text(prop, "Falloff", "");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 }
 static void rna_def_boid_settings(BlenderRNA *brna)
 {
@@ -483,17 +480,17 @@ static void rna_def_boid_settings(BlenderRNA *brna)
        prop= RNA_def_property(srna, "landing_smoothness", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 10.0);
        RNA_def_property_ui_text(prop, "Landing Smoothness", "How smoothly the boids land.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "banking", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 2.0);
        RNA_def_property_ui_text(prop, "Banking", "Amount of rotation around velocity vector on turns.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "height", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 2.0);
        RNA_def_property_ui_text(prop, "Height", "Boid height relative to particle size.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        /* states */
        prop= RNA_def_property(srna, "states", PROP_COLLECTION, PROP_NONE);
@@ -513,99 +510,99 @@ static void rna_def_boid_settings(BlenderRNA *brna)
        prop= RNA_def_property(srna, "health", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 100.0);
        RNA_def_property_ui_text(prop, "Health", "Initial boid health when born.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "strength", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 100.0);
        RNA_def_property_ui_text(prop, "Strength", "Maximum caused damage on attack per second.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "aggression", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 100.0);
        RNA_def_property_ui_text(prop, "Aggression", "Boid will fight this times stronger enemy.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "accuracy", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 1.0);
        RNA_def_property_ui_text(prop, "Accuracy", "Accuracy of attack.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "range", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 100.0);
        RNA_def_property_ui_text(prop, "Range", "The maximum distance from which a boid can attack.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        /* physical properties */
        prop= RNA_def_property(srna, "air_min_speed", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 1.0);
        RNA_def_property_ui_text(prop, "Min Air Speed", "Minimum speed in air (relative to maximum speed).");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "air_max_speed", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 100.0);
        RNA_def_property_ui_text(prop, "Max Air Speed", "Maximum speed in air.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "air_max_acc", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 1.0);
        RNA_def_property_ui_text(prop, "Max Air Acceleration", "Maximum acceleration in air (relative to maximum speed).");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "air_max_ave", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 1.0);
        RNA_def_property_ui_text(prop, "Max Air Angular Velocity", "Maximum angular velocity in air (relative to 180 degrees).");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "air_personal_space", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 10.0);
        RNA_def_property_ui_text(prop, "Air Personal Space", "Radius of boids personal space in air (% of particle size).");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "land_jump_speed", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 100.0);
        RNA_def_property_ui_text(prop, "Jump Speed", "Maximum speed for jumping.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "land_max_speed", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 100.0);
        RNA_def_property_ui_text(prop, "Max Land Speed", "Maximum speed on land.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "land_max_acc", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 1.0);
        RNA_def_property_ui_text(prop, "Max Land Acceleration", "Maximum acceleration on land (relative to maximum speed).");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "land_max_ave", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 1.0);
        RNA_def_property_ui_text(prop, "Max Land Angular Velocity", "Maximum angular velocity on land (relative to 180 degrees).");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "land_personal_space", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 10.0);
        RNA_def_property_ui_text(prop, "Land Personal Space", "Radius of boids personal space on land (% of particle size).");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "land_stick_force", PROP_FLOAT, PROP_NONE);
        RNA_def_property_range(prop, 0.0, 1000.0);
        RNA_def_property_ui_text(prop, "Land Stick Force", "How strong a force must be to start effecting a boid on land.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        /* options */
        prop= RNA_def_property(srna, "allow_flight", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "options", BOID_ALLOW_FLIGHT);
        RNA_def_property_ui_text(prop, "Allow Flight", "Allow boids to move in air.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "allow_land", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "options", BOID_ALLOW_LAND);
        RNA_def_property_ui_text(prop, "Allow Land", "Allow boids to move on land.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 
        prop= RNA_def_property(srna, "allow_climb", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "options", BOID_ALLOW_CLIMB);
        RNA_def_property_ui_text(prop, "Allow Climbing", "Allow boids to climb goal objects.");
-       RNA_def_property_update(prop, 0, "rna_Boids_reset");
+       RNA_def_property_update(prop, NC_OBJECT|ND_PARTICLE, "rna_Boids_reset");
 }
 
 void RNA_def_boid(BlenderRNA *brna)