X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_volumes.c;h=ae507d0cffec927296435ae7f3bd0c25677de15e;hb=HEAD;hp=23b8299ccdcdfffe21ed3b1f81049212d242b150;hpb=1a7f4a35e88698bdb45c90f646f1645589d5511c;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_volumes.c b/world_volumes.c deleted file mode 100644 index 23b8299..0000000 --- a/world_volumes.c +++ /dev/null @@ -1,104 +0,0 @@ -#ifndef WORLD_VOLUMES_C -#define WORLD_VOLUMES_C - -#include "world_volumes.h" - -static void world_volumes_update( world_instance *world, v3f pos ){ - /* filter and check the existing ones */ - u32 j=0; - for( u32 i=0; ient_volume, idx ); - - v3f local; - m4x3_mulv( volume->to_local, pos, local ); - if( (fabsf(local[0]) <= 1.0f) && - (fabsf(local[1]) <= 1.0f) && - (fabsf(local[2]) <= 1.0f) ) - { - 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...... */ - 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; - - static float random_accum = 0.0f; - random_accum += vg.time_delta; - - u32 random_ticks = 0; - - while( random_accum > 0.1f ){ - random_accum -= 0.1f; - random_ticks ++; - } - - float radius = 32.0f; - - bh_iter it; - bh_iter_init_range( 0, &it, pos, radius ); - i32 idx; - - while( bh_next( world->entity_bh, &it, &idx ) ){ - u32 id = world->entity_list[ idx ], - type = mdl_entity_id_type( id ), - index = mdl_entity_id_id( id ); - - if( type != k_ent_volume ) continue; - - ent_volume *volume = mdl_arritm( &world->ent_volume, index ); - boxf cube = {{-1.0f,-1.0f,-1.0f},{1.0f,1.0f,1.0f}}; - - if( volume->flags & k_ent_volume_flag_particles ){ - vg_line_boxf_transformed( volume->to_world, cube, 0xff00c0ff ); - - for( int j=0; j - vg_list_size(world_static.active_trigger_volumes) ) continue; - - v3f local; - m4x3_mulv( volume->to_local, pos, local ); - - if( (fabsf(local[0]) <= 1.0f) && - (fabsf(local[1]) <= 1.0f) && - (fabsf(local[2]) <= 1.0f) ){ - ent_call basecall; - basecall.function = 0; - basecall.id = id; - basecall.data = NULL; - - entity_call( world, &basecall ); - world_static.active_trigger_volumes[ - world_static.active_trigger_volume_count ++ ] = index; - } - else - vg_line_boxf_transformed( volume->to_world, cube, 0xffcccccc ); - } -next_volume:; - } -} - -#endif /* WORLD_VOLUMES_H */