change shader properties to be vg_msg based
[carveJwlIkooP6JGAAIwe30JlM.git] / world_entity.h
index df5cbfadac5c3dc1cb25490652d56352720ec32e..c954052a4149ff924c0ddef42588e723c8630dac 100644 (file)
@@ -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);