X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_entity.h;h=bbcfbe20dbb651d1d1a7076cd8e9771f67503504;hb=844527ec68c063d78d4993bd8e4053f9ddc47b78;hp=3c6d10de95407f3b1a1ad8df25efc982754d9a1f;hpb=4c95c9c3e6033cd1360adacef3c80fc4da933715;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_entity.h b/world_entity.h index 3c6d10d..bbcfbe2 100644 --- a/world_entity.h +++ b/world_entity.h @@ -3,8 +3,9 @@ #include "world.h" #include "entity.h" +#include "bvh.h" -VG_STATIC void world_gen_entities_init(void); +VG_STATIC void world_gen_entities_init( world_instance *world ); VG_STATIC ent_spawn *world_find_spawn_by_name( world_instance *world, const char *name ); VG_STATIC ent_spawn *world_find_closest_spawn( world_instance *world, @@ -14,4 +15,20 @@ VG_STATIC void ent_volume_call( world_instance *world, ent_call *call ); VG_STATIC void ent_audio_call( world_instance *world, ent_call *call ); VG_STATIC void ent_ccmd_call( world_instance *world, ent_call *call ); +VG_STATIC void entity_bh_expand_bound( void *user, boxf bound, u32 item_index ); +VG_STATIC float entity_bh_centroid( void *user, u32 item_index, int axis ); +VG_STATIC void entity_bh_swap( void *user, u32 ia, u32 ib ); +VG_STATIC void entity_bh_debug( void *user, u32 item_index ); +VG_STATIC void entity_bh_closest( void *user, u32 item_index, v3f point, + v3f closest ); + +static bh_system bh_system_entity_list = { + .expand_bound = entity_bh_expand_bound, + .item_centroid = entity_bh_centroid, + .item_closest = entity_bh_closest, + .item_swap = entity_bh_swap, + .item_debug = entity_bh_debug, + .cast_ray = NULL +}; + #endif /* WORLD_ENTITY_H */