random_ticks ++;
}
+ float radius = 25.0f;
+ boxf trigger_proximity;
+ v3_add( pos, (v3f){ radius, radius, radius }, trigger_proximity[1] );
+ v3_sub( pos, (v3f){ radius, radius, radius }, trigger_proximity[0] );
+
+ bh_iter it;
+ bh_iter_init( 0, &it );
+ int idx;
+
int in_trigger = 0;
- for( int i=0; i<world->trigger_count; i++ )
+
+ while( bh_next( world->trigger_bh, &it, trigger_proximity, &idx ) )
{
- struct trigger_zone *zone = &world->triggers[i];
+ struct trigger_zone *zone = &world->triggers[idx];
- for( int j=0; j<random_ticks; j++ )
+ if( zone->classtype == k_classtype_particle_box )
{
- logic_packet packet;
- packet.location = zone->target_logic_brick;
- packet.function = 0;
+ vg_line_boxf_transformed( zone->transform, (boxf){{-1.0f,-1.0f,-1.0f},
+ { 1.0f, 1.0f, 1.0f}},
+ 0xff00c0ff );
+ for( int j=0; j<random_ticks; j++ )
+ {
+ logic_packet packet;
+ packet.location = zone->target_logic_brick;
+ packet.function = 0;
- packet.type = k_mdl_128bit_datatype_vec3;
- packet.data._v4f[0] = vg_randf()*2.0f-1.0f;
- packet.data._v4f[1] = vg_randf()*2.0f-1.0f;
- packet.data._v4f[2] = vg_randf()*2.0f-1.0f;
- m4x3_mulv( zone->transform, packet.data._v4f, packet.data._v4f );
+ packet.type = k_mdl_128bit_datatype_vec3;
+ packet.data._v4f[0] = vg_randf()*2.0f-1.0f;
+ packet.data._v4f[1] = vg_randf()*2.0f-1.0f;
+ packet.data._v4f[2] = vg_randf()*2.0f-1.0f;
+ m4x3_mulv( zone->transform, packet.data._v4f, packet.data._v4f );
- logic_bricks_send_packet( world, &packet );
+ logic_bricks_send_packet( world, &packet );
+ }
continue;
}
logic_bricks_send_packet( world, &packet );
}
+
+ vg_line_boxf_transformed( zone->transform, (boxf){{-1.0f,-1.0f,-1.0f},
+ { 1.0f, 1.0f, 1.0f}},
+ 0xff00ff00 );
+ }
+ else
+ {
+ vg_line_boxf_transformed( zone->transform, (boxf){{-1.0f,-1.0f,-1.0f},
+ { 1.0f, 1.0f, 1.0f}},
+ 0xff0000ff );
}
-
- vg_line_boxf_transformed( zone->transform, (boxf){{-1.0f,-1.0f,-1.0f},
- { 1.0f, 1.0f, 1.0f}},
- 0xff00ff00 );
}
if( k_debug_light_indices )
sfd_update();
if( debug_logic_bricks )
- logic_bricks_debug( world );
+ logic_bricks_debug( world, pos );
/* process soundscape transactions */
audio_lock();