Cleanup: use bool instead of int

This commit is contained in:
2020-09-09 10:37:42 +02:00
parent 0b311eeca5
commit 095142eae6

View File

@@ -68,18 +68,18 @@ typedef struct BoidValues {
float personal_space, jump_speed;
} BoidValues;
static int apply_boid_rule(
static bool apply_boid_rule(
BoidBrainData *bbd, BoidRule *rule, BoidValues *val, ParticleData *pa, float fuzziness);
static int rule_none(BoidRule *UNUSED(rule),
BoidBrainData *UNUSED(data),
BoidValues *UNUSED(val),
ParticleData *UNUSED(pa))
static bool rule_none(BoidRule *UNUSED(rule),
BoidBrainData *UNUSED(data),
BoidValues *UNUSED(val),
ParticleData *UNUSED(pa))
{
return 0;
return false;
}
static int rule_goal_avoid(BoidRule *rule, BoidBrainData *bbd, BoidValues *val, ParticleData *pa)
static bool rule_goal_avoid(BoidRule *rule, BoidBrainData *bbd, BoidValues *val, ParticleData *pa)
{
BoidRuleGoalAvoid *gabr = (BoidRuleGoalAvoid *)rule;
BoidSettings *boids = bbd->part->boids;
@@ -91,7 +91,7 @@ static int rule_goal_avoid(BoidRule *rule, BoidBrainData *bbd, BoidValues *val,
EffectorData efd, cur_efd;
float mul = (rule->type == eBoidRuleType_Avoid ? 1.0 : -1.0);
float priority = 0.0f, len = 0.0f;
int ret = 0;
bool ret = false;
int p = 0;
efd.index = cur_efd.index = &p;
@@ -207,16 +207,16 @@ static int rule_goal_avoid(BoidRule *rule, BoidBrainData *bbd, BoidValues *val,
}
}
ret = 1;
ret = true;
}
return ret;
}
static int rule_avoid_collision(BoidRule *rule,
BoidBrainData *bbd,
BoidValues *val,
ParticleData *pa)
static bool rule_avoid_collision(BoidRule *rule,
BoidBrainData *bbd,
BoidValues *val,
ParticleData *pa)
{
const int raycast_flag = BVH_RAYCAST_DEFAULT & ~BVH_RAYCAST_WATERTIGHT;
BoidRuleAvoidCollision *acbr = (BoidRuleAvoidCollision *)rule;
@@ -228,7 +228,7 @@ static int rule_avoid_collision(BoidRule *rule,
float co1[3], vel1[3], co2[3], vel2[3];
float len, t, inp, t_min = 2.0f;
int n, neighbors = 0, nearest = 0;
int ret = 0;
bool ret = 0;
// check deflector objects first
if (acbr->options & BRULE_ACOLL_WITH_DEFLECTORS && bbd->sim->colliders) {
@@ -288,7 +288,7 @@ static int rule_avoid_collision(BoidRule *rule,
bbd->wanted_speed = sqrtf(t) * len_v3(pa->prev_state.vel);
bbd->wanted_speed = MAX2(bbd->wanted_speed, val->min_speed);
return 1;
return true;
}
}
@@ -413,10 +413,10 @@ static int rule_avoid_collision(BoidRule *rule,
return ret;
}
static int rule_separate(BoidRule *UNUSED(rule),
BoidBrainData *bbd,
BoidValues *val,
ParticleData *pa)
static bool rule_separate(BoidRule *UNUSED(rule),
BoidBrainData *bbd,
BoidValues *val,
ParticleData *pa)
{
KDTreeNearest_3d *ptn = NULL;
ParticleTarget *pt;
@@ -424,7 +424,7 @@ static int rule_separate(BoidRule *UNUSED(rule),
float vec[3] = {0.0f, 0.0f, 0.0f};
int neighbors = BLI_kdtree_3d_range_search(
bbd->sim->psys->tree, pa->prev_state.co, &ptn, 2.0f * val->personal_space * pa->size);
int ret = 0;
bool ret = false;
if (neighbors > 1 && ptn[1].dist != 0.0f) {
sub_v3_v3v3(vec, pa->prev_state.co, bbd->sim->psys->particles[ptn[1].index].state.co);
@@ -453,7 +453,7 @@ static int rule_separate(BoidRule *UNUSED(rule),
add_v3_v3(bbd->wanted_co, vec);
bbd->wanted_speed = val->max_speed;
len = ptn[0].dist;
ret = 1;
ret = true;
}
if (ptn) {
@@ -464,10 +464,10 @@ static int rule_separate(BoidRule *UNUSED(rule),
}
return ret;
}
static int rule_flock(BoidRule *UNUSED(rule),
BoidBrainData *bbd,
BoidValues *UNUSED(val),
ParticleData *pa)
static bool rule_flock(BoidRule *UNUSED(rule),
BoidBrainData *bbd,
BoidValues *UNUSED(val),
ParticleData *pa)
{
KDTreeNearest_3d ptn[11];
float vec[3] = {0.0f, 0.0f, 0.0f}, loc[3] = {0.0f, 0.0f, 0.0f};
@@ -479,7 +479,7 @@ static int rule_flock(BoidRule *UNUSED(rule),
len_squared_v3v3_with_normal_bias,
pa->prev_state.ave);
int n;
int ret = 0;
bool ret = false;
if (neighbors > 1) {
for (n = 1; n < neighbors; n++) {
@@ -497,20 +497,21 @@ static int rule_flock(BoidRule *UNUSED(rule),
add_v3_v3(bbd->wanted_co, loc);
bbd->wanted_speed = len_v3(bbd->wanted_co);
ret = 1;
ret = true;
}
return ret;
}
static int rule_follow_leader(BoidRule *rule,
BoidBrainData *bbd,
BoidValues *val,
ParticleData *pa)
static bool rule_follow_leader(BoidRule *rule,
BoidBrainData *bbd,
BoidValues *val,
ParticleData *pa)
{
BoidRuleFollowLeader *flbr = (BoidRuleFollowLeader *)rule;
float vec[3] = {0.0f, 0.0f, 0.0f}, loc[3] = {0.0f, 0.0f, 0.0f};
float mul, len;
int n = (flbr->queue_size <= 1) ? bbd->sim->psys->totpart : flbr->queue_size;
int i, ret = 0, p = pa - bbd->sim->psys->particles;
int i, p = pa - bbd->sim->psys->particles;
bool ret = false;
if (flbr->ob) {
float vec2[3], t;
@@ -530,7 +531,7 @@ static int rule_follow_leader(BoidRule *rule,
if (len < 2.0f * val->personal_space * pa->size) {
copy_v3_v3(bbd->wanted_co, loc);
bbd->wanted_speed = val->max_speed;
return 1;
return true;
}
}
else {
@@ -548,7 +549,7 @@ static int rule_follow_leader(BoidRule *rule,
if (len < 2.0f * val->personal_space * pa->size) {
copy_v3_v3(bbd->wanted_co, vec2);
bbd->wanted_speed = val->max_speed * (3.0f - t) / 3.0f;
return 1;
return true;
}
}
}
@@ -570,7 +571,7 @@ static int rule_follow_leader(BoidRule *rule,
sub_v3_v3v3(bbd->wanted_co, loc, pa->prev_state.co);
bbd->wanted_speed = len_v3(bbd->wanted_co);
ret = 1;
ret = true;
}
else if (p % n) {
float vec2[3], t, t_min = 3.0f;
@@ -590,7 +591,7 @@ static int rule_follow_leader(BoidRule *rule,
if (len < 2.0f * val->personal_space * pa->size) {
copy_v3_v3(bbd->wanted_co, loc);
bbd->wanted_speed = val->max_speed;
return 1;
return true;
}
}
else {
@@ -609,14 +610,14 @@ static int rule_follow_leader(BoidRule *rule,
t_min = t;
copy_v3_v3(bbd->wanted_co, loc);
bbd->wanted_speed = val->max_speed * (3.0f - t) / 3.0f;
ret = 1;
ret = true;
}
}
}
}
if (ret) {
return 1;
return true;
}
/* not blocking so try to follow leader */
@@ -635,15 +636,15 @@ static int rule_follow_leader(BoidRule *rule,
sub_v3_v3v3(bbd->wanted_co, loc, pa->prev_state.co);
bbd->wanted_speed = len_v3(bbd->wanted_co);
ret = 1;
ret = true;
}
return ret;
}
static int rule_average_speed(BoidRule *rule,
BoidBrainData *bbd,
BoidValues *val,
ParticleData *pa)
static bool rule_average_speed(BoidRule *rule,
BoidBrainData *bbd,
BoidValues *val,
ParticleData *pa)
{
BoidParticle *bpa = pa->boid;
BoidRuleAverageSpeed *asbr = (BoidRuleAverageSpeed *)rule;
@@ -693,9 +694,9 @@ static int rule_average_speed(BoidRule *rule,
}
bbd->wanted_speed = asbr->speed * val->max_speed;
return 1;
return true;
}
static int rule_fight(BoidRule *rule, BoidBrainData *bbd, BoidValues *val, ParticleData *pa)
static bool rule_fight(BoidRule *rule, BoidBrainData *bbd, BoidValues *val, ParticleData *pa)
{
BoidRuleFight *fbr = (BoidRuleFight *)rule;
KDTreeNearest_3d *ptn = NULL;
@@ -708,7 +709,8 @@ static int rule_fight(BoidRule *rule, BoidBrainData *bbd, BoidValues *val, Parti
float closest_dist = fbr->distance + 1.0f;
float f_strength = 0.0f, e_strength = 0.0f;
float health = 0.0f;
int n, ret = 0;
int n;
bool ret = false;
/* calculate own group strength */
int neighbors = BLI_kdtree_3d_range_search(
@@ -799,16 +801,16 @@ static int rule_fight(BoidRule *rule, BoidBrainData *bbd, BoidValues *val, Parti
}
}
ret = 1;
ret = true;
}
return ret;
}
typedef int (*boid_rule_cb)(BoidRule *rule,
BoidBrainData *data,
BoidValues *val,
ParticleData *pa);
typedef bool (*boid_rule_cb)(BoidRule *rule,
BoidBrainData *data,
BoidValues *val,
ParticleData *pa);
static boid_rule_cb boid_rules[] = {
rule_none,
@@ -957,24 +959,24 @@ static Object *boid_find_ground(BoidBrainData *bbd,
ground_nor[2] = 1.0f;
return NULL;
}
static int boid_rule_applies(ParticleData *pa, BoidSettings *UNUSED(boids), BoidRule *rule)
static bool boid_rule_applies(ParticleData *pa, BoidSettings *UNUSED(boids), BoidRule *rule)
{
BoidParticle *bpa = pa->boid;
if (rule == NULL) {
return 0;
return false;
}
if (ELEM(bpa->data.mode, eBoidMode_OnLand, eBoidMode_Climbing) &&
rule->flag & BOIDRULE_ON_LAND) {
return 1;
return true;
}
if (bpa->data.mode == eBoidMode_InAir && rule->flag & BOIDRULE_IN_AIR) {
return 1;
return true;
}
return 0;
return false;
}
void boids_precalc_rules(ParticleSettings *part, float cfra)
{
@@ -1025,27 +1027,27 @@ static float boid_goal_signed_dist(float *boid_co, float *goal_co, float *goal_n
return dot_v3v3(vec, goal_nor);
}
/* wanted_co is relative to boid location */
static int apply_boid_rule(
static bool apply_boid_rule(
BoidBrainData *bbd, BoidRule *rule, BoidValues *val, ParticleData *pa, float fuzziness)
{
if (rule == NULL) {
return 0;
return false;
}
if (boid_rule_applies(pa, bbd->part->boids, rule) == 0) {
return 0;
if (!boid_rule_applies(pa, bbd->part->boids, rule)) {
return false;
}
if (boid_rules[rule->type](rule, bbd, val, pa) == 0) {
return 0;
if (!boid_rules[rule->type](rule, bbd, val, pa)) {
return false;
}
if (fuzziness < 0.0f || compare_len_v3v3(bbd->wanted_co,
pa->prev_state.vel,
fuzziness * len_v3(pa->prev_state.vel)) == 0) {
return 1;
return true;
}
return 0;
return false;
}
static BoidState *get_boid_state(BoidSettings *boids, ParticleData *pa)
{