Windows libraries for getaddrinfo
[carveJwlIkooP6JGAAIwe30JlM.git] / world_volumes.c
index 2f0569df364df22a93eedbc3a2797c2887bc79e4..ae507d0cffec927296435ae7f3bd0c25677de15e 100644 (file)
@@ -1,9 +1,7 @@
-#ifndef WORLD_VOLUMES_C
-#define WORLD_VOLUMES_C
-
 #include "world_volumes.h"
 
-static void world_volumes_update( world_instance *world, v3f pos ){
+void world_volumes_update( world_instance *world, v3f pos )
+{
    /* filter and check the existing ones */
    u32 j=0;
    for( u32 i=0; i<world_static.active_trigger_volume_count; i++ ){
@@ -19,10 +17,19 @@ static void world_volumes_update( world_instance *world, v3f pos ){
          world_static.active_trigger_volumes[ j ++ ] = idx;
          boxf cube = {{-1.0f,-1.0f,-1.0f},{1.0f,1.0f,1.0f}};
          vg_line_boxf_transformed( volume->to_world, cube, 0xff00ccff );
-         /* triggr on stay ..... */
       }
       else{
-         /* trigger on exit...... */
+         /* 
+          * LEGACY BEHAVIOUR: < v104 does not have leave events
+          */
+         if( world->meta.info.version >= 104 ){
+            ent_call basecall;
+            basecall.function = k_ent_function_trigger_leave;
+            basecall.id = mdl_entity_id( k_ent_volume, idx );
+            basecall.data = NULL;
+
+            entity_call( world, &basecall );
+         }
       }
    }
    world_static.active_trigger_volume_count = j;
@@ -37,13 +44,10 @@ static void world_volumes_update( world_instance *world, v3f pos ){
       random_ticks ++;
    }
 
-   float radius = 25.0f;
-   boxf volume_proximity;
-   v3_add( pos, (v3f){ radius, radius, radius }, volume_proximity[1] );
-   v3_sub( pos, (v3f){ radius, radius, radius }, volume_proximity[0] );
+   float radius = 32.0f;
 
    bh_iter it;
-   bh_iter_init_box( 0, &it, volume_proximity );
+   bh_iter_init_range( 0, &it, pos, radius );
    i32 idx;
 
    while( bh_next( world->entity_bh, &it, &idx ) ){
@@ -97,5 +101,3 @@ static void world_volumes_update( world_instance *world, v3f pos ){
 next_volume:;
    }
 }
-
-#endif /* WORLD_VOLUMES_H */