+ else if( type == k_ent_unlock ){
+ ent_unlock *unlock = mdl_arritm( &world->ent_unlock, index );
+
+ boxf box = {{-1.2f*0.5f,-0.72f*0.5f,-0.01f*0.5f},
+ { 1.2f*0.5f, 0.72f*0.5f, 0.01f*0.5f}};
+ m4x3f transform;
+ mdl_transform_m4x3( &unlock->transform, transform );
+ vg_line_boxf_transformed( transform, box, 0xf0ff0000 );
+ }
+ else{
+ vg_fatal_error( "Programming error\n" );
+ }
+}
+
+VG_STATIC void entity_bh_closest( void *user, u32 item_index, v3f point,
+ v3f closest ){
+ world_instance *world = user;
+
+ u32 id = world->entity_list[ item_index ],
+ type = mdl_entity_id_type( id ),
+ index = mdl_entity_id_id( id );
+
+ if( type == k_ent_gate ){
+ ent_gate *gate = mdl_arritm( &world->ent_gate, index );
+ v3_copy( gate->to_world[3], closest );
+ }
+ else if( type == k_ent_challenge ){
+ ent_challenge *challenge = mdl_arritm( &world->ent_challenge, index );
+ v3_copy( challenge->transform.co, closest );
+ }
+ else if( type == k_ent_volume ){
+ ent_volume *volume = mdl_arritm( &world->ent_volume, index );
+ v3_copy( volume->to_world[3], closest );
+ }
+ else if( type == k_ent_unlock ){
+ ent_unlock *unlock = mdl_arritm( &world->ent_unlock, index );
+ v3_copy( unlock->transform.co, closest );
+ }