X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_entity.h;h=c954052a4149ff924c0ddef42588e723c8630dac;hb=238a3a4ef19bb137e2a878ee38f99d253eddb51c;hp=df5cbfadac5c3dc1cb25490652d56352720ec32e;hpb=5f6a4f9df6c8accc89f1920bfe9ace3cbac4c4b6;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_entity.h b/world_entity.h index df5cbfa..c954052 100644 --- a/world_entity.h +++ b/world_entity.h @@ -4,6 +4,14 @@ #include "vg/vg_bvh.h" #include "vg/vg_msg.h" +typedef struct ent_focus_context ent_focus_context; +struct ent_focus_context +{ + world_instance *world; + u32 index; /* Array index of the focused entity */ + bool active; +}; + void world_gen_entities_init( world_instance *world ); ent_spawn *world_find_spawn_by_name( world_instance *world, const char *name ); @@ -13,9 +21,9 @@ void world_default_spawn_pos( world_instance *world, v3f pos ); void world_entity_start( world_instance *world, vg_msg *sav ); void world_entity_serialize( world_instance *world, vg_msg *sav ); -void ent_volume_call( world_instance *world, ent_call *call ); -void ent_audio_call( world_instance *world, ent_call *call ); -void ent_ccmd_call( world_instance *world, ent_call *call ); +entity_call_result ent_volume_call( world_instance *world, ent_call *call ); +entity_call_result ent_audio_call( world_instance *world, ent_call *call ); +entity_call_result ent_ccmd_call( world_instance *world, ent_call *call ); void entity_bh_expand_bound( void *user, boxf bound, u32 item_index ); float entity_bh_centroid( void *user, u32 item_index, int axis ); @@ -24,10 +32,14 @@ void entity_bh_debug( void *user, u32 item_index ); void entity_bh_closest( void *user, u32 item_index, v3f point, v3f closest ); -void world_entity_focus( u32 entity_id ); +void world_entity_set_focus( u32 entity_id ); +void world_entity_focus_modal(void); + +void world_entity_exit_modal(void); +void world_entity_clear_focus(void); + void world_entity_focus_preupdate(void); void world_entity_focus_render(void); -void world_entity_unfocus(); void world_entity_focus_camera( world_instance *world, u32 uid ); void update_ach_models(void);