add command for spawning glider
[carveJwlIkooP6JGAAIwe30JlM.git] / world_entity.h
index 3baaa2385a591aac82a822e3ff719af234ee4e59..a3c5f331c5e97c8cea455ca908418c1930eb6f07 100644 (file)
@@ -4,26 +4,39 @@
 #include "world.h"
 #include "entity.h"
 #include "bvh.h"
+#include "save.h"
+#include "vg/vg_msg.h"
 
-VG_STATIC void world_gen_entities_init(void);
-VG_STATIC ent_spawn *world_find_spawn_by_name( world_instance *world, 
+static void world_gen_entities_init( world_instance *world );
+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, 
+static ent_spawn *world_find_closest_spawn( world_instance *world, 
                                                v3f position );
+static void world_default_spawn_pos( world_instance *world, v3f pos );
+static void world_entity_start( world_instance *world, vg_msg *sav );
+static void world_entity_serialize( world_instance *world, vg_msg *sav );
 
-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 );
+static void ent_volume_call( world_instance *world, ent_call *call );
+static void ent_audio_call( world_instance *world, ent_call *call );
+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 );
+static void entity_bh_expand_bound( void *user, boxf bound, u32 item_index );
+static float entity_bh_centroid( void *user, u32 item_index, int axis );
+static void entity_bh_swap( void *user, u32 ia, u32 ib );
+static void entity_bh_debug( void *user, u32 item_index );
+static void entity_bh_closest( void *user, u32 item_index, v3f point,
+                                  v3f closest );
+
+static void world_entity_focus( u32 entity_id );
+static void world_entity_focus_preupdate(void);
+static void world_entity_focus_render(void);
+static void world_entity_unfocus();
+static void world_entity_focus_camera( world_instance *world, u32 uid );
 
 static bh_system bh_system_entity_list = {
    .expand_bound = entity_bh_expand_bound,
    .item_centroid = entity_bh_centroid,
-   .item_closest = NULL,
+   .item_closest = entity_bh_closest,
    .item_swap = entity_bh_swap,
    .item_debug = entity_bh_debug,
    .cast_ray = NULL