combined &= route->flags;
}
- region->flags = combined;
+ for( u32 j=0; j<mdl_arrcount(&world->ent_challenge); j ++ ){
+ ent_challenge *challenge = mdl_arritm( &world->ent_challenge, j );
- /* TODO: Challenges */
+ v3f local;
+ m4x3_mulv( volume->to_local, challenge->transform.co, local );
+ if( !((fabsf(local[0]) <= 1.0f) &&
+ (fabsf(local[1]) <= 1.0f) &&
+ (fabsf(local[2]) <= 1.0f)) ){
+ continue;
+ }
+
+ u32 flags = 0x00;
+ if( challenge->status ){
+ flags |= k_ent_route_flag_achieve_gold;
+ flags |= k_ent_route_flag_achieve_silver;
+ }
+
+ combined &= flags;
+ }
+
+ region->flags = combined;
}
}