+#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 );
+ent_spawn *world_find_closest_spawn( world_instance *world,
+ v3f position );
+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 );
+
+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 );
+void entity_bh_swap( void *user, u32 ia, u32 ib );
+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_set_focus( u32 entity_id );
+void world_entity_focus_modal(void);