return 0x00;
}
-void ent_region_call( world_instance *world, ent_call *call )
+entity_call_result ent_region_call( world_instance *world, ent_call *call )
{
ent_region *region =
mdl_arritm( &world->ent_region, mdl_entity_id_id(call->id) );
if( !region->zone_volume )
- return;
+ return k_entity_call_result_invalid;
ent_volume *volume =
mdl_arritm( &world->ent_volume, mdl_entity_id_id(region->zone_volume) );
- if( call->function == 0 ){ /* enter */
- for( u32 i=0; i<mdl_arrcount(&world->ent_route); i ++ ){
+ if( call->function == 0 ) /* enter */
+ {
+ for( u32 i=0; i<mdl_arrcount(&world->ent_route); i ++ )
+ {
ent_route *route = mdl_arritm( &world->ent_route, i );
v3f local;
m4x3_mulv( volume->to_local, route->board_transform[3], local );
if( (fabsf(local[0]) <= 1.0f) &&
(fabsf(local[1]) <= 1.0f) &&
- (fabsf(local[2]) <= 1.0f) ){
+ (fabsf(local[2]) <= 1.0f) )
+ {
route->flags &= ~k_ent_route_flag_out_of_zone;
}
- else {
+ else
+ {
route->flags |= k_ent_route_flag_out_of_zone;
}
}
network_send_region();
localplayer.effect_data.spark.colour = region_spark_colour(region->flags);
+ return k_entity_call_result_OK;
}
- else if( call->function == 1 ){ /* leave */
- for( u32 i=0; i<mdl_arrcount(&world->ent_route); i ++ ){
+ else if( call->function == 1 ) /* leave */
+ {
+ for( u32 i=0; i<mdl_arrcount(&world->ent_route); i ++ )
+ {
ent_route *route = mdl_arritm( &world->ent_route, i );
route->flags |= k_ent_route_flag_out_of_zone;
}
localplayer.effect_data.spark.colour = 0x00;
+ return k_entity_call_result_OK;
}
+ else
+ return k_entity_call_result_unhandled;
}
/*