X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_volumes.c;h=ae507d0cffec927296435ae7f3bd0c25677de15e;hb=b440efbe5785d114d08bb3f5ec0e09cad943006d;hp=2f0569df364df22a93eedbc3a2797c2887bc79e4;hpb=7eba38b8178c82040618a518634d8ff4813e2ff2;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_volumes.c b/world_volumes.c index 2f0569d..ae507d0 100644 --- a/world_volumes.c +++ b/world_volumes.c @@ -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; ito_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 */