fix quality profile water/shadows
[carveJwlIkooP6JGAAIwe30JlM.git] / world_entity.h
1 #ifndef WORLD_ENTITY_H
2 #define WORLD_ENTITY_H
3
4 #include "world.h"
5 #include "entity.h"
6 #include "bvh.h"
7 #include "save.h"
8 #include "vg/vg_msg.h"
9
10 static void world_gen_entities_init( world_instance *world );
11 static ent_spawn *world_find_spawn_by_name( world_instance *world,
12 const char *name );
13 static ent_spawn *world_find_closest_spawn( world_instance *world,
14 v3f position );
15 static void world_default_spawn_pos( world_instance *world, v3f pos );
16 static void world_entity_start( world_instance *world, vg_msg *sav );
17 static void world_entity_serialize( world_instance *world, vg_msg *sav );
18
19 static void ent_volume_call( world_instance *world, ent_call *call );
20 static void ent_audio_call( world_instance *world, ent_call *call );
21 static void ent_ccmd_call( world_instance *world, ent_call *call );
22
23 static void entity_bh_expand_bound( void *user, boxf bound, u32 item_index );
24 static float entity_bh_centroid( void *user, u32 item_index, int axis );
25 static void entity_bh_swap( void *user, u32 ia, u32 ib );
26 static void entity_bh_debug( void *user, u32 item_index );
27 static void entity_bh_closest( void *user, u32 item_index, v3f point,
28 v3f closest );
29
30 static void world_entity_focus( u32 entity_id );
31 static void world_entity_focus_preupdate(void);
32 static void world_entity_focus_render(void);
33 static void world_entity_unfocus();
34 static void world_entity_focus_camera( world_instance *world, u32 uid );
35
36 static bh_system bh_system_entity_list = {
37 .expand_bound = entity_bh_expand_bound,
38 .item_centroid = entity_bh_centroid,
39 .item_closest = entity_bh_closest,
40 .item_swap = entity_bh_swap,
41 .item_debug = entity_bh_debug,
42 .cast_ray = NULL
43 };
44
45 #endif /* WORLD_ENTITY_H */