i hope your hapy
[carveJwlIkooP6JGAAIwe30JlM.git] / player_api.h
1 #ifndef PLAYER_API_H
2 #define PLAYER_API_H
3
4 #define VG_GAME
5 #include "vg/vg.h"
6
7 #include "player_ragdoll.h"
8 #include "player_model.h"
9
10 /*
11 * Defines a set of routines used to interact with the player
12 */
13
14 #define PLAYER_API VG_STATIC
15 typedef struct player_instance player_instance;
16 typedef mdl_keyframe player_pose[32];
17 typedef struct player_animation player_animation;
18
19 struct player_animation
20 {
21 #if 0
22 camera camera_firstperson,
23 camera_thirdperson;
24 #endif
25
26 player_pose pose;
27 v3f root_co;
28 v4f root_q;
29 };
30
31 /*
32 * Init
33 */
34 PLAYER_API void player_create ( player_instance *player );
35
36 /*
37 * Appearence
38 */
39 PLAYER_API void player_use_avatar ( player_instance *player,
40 struct player_avatar *av );
41 PLAYER_API void player_use_mesh ( player_instance *player, glmesh *mesh );
42 PLAYER_API void player_use_texture ( player_instance *player, vg_tex2d *tex );
43
44
45 /*
46 * Gameloop events
47 * ----------------------------------------------------------------------------
48 */
49 PLAYER_API void player__bind ( player_instance *player );
50 PLAYER_API void player__pre_update ( player_instance *player );
51 PLAYER_API void player__update ( player_instance *player );
52 PLAYER_API void player__post_update ( player_instance *player );
53 PLAYER_API void player__pre_render ( player_instance *player );
54 PLAYER_API void player__render ( camera *cam, player_instance *player );
55 PLAYER_API void player__im_gui ( player_instance *player );
56
57 /*
58 * Mechanic events
59 * ----------------------------------------------------------------------------
60 */
61 PLAYER_API void player__spawn ( player_instance *player,
62 ent_spawn *rp );
63 PLAYER_API void player__kill ( player_instance *player );
64 PLAYER_API void player__pass_gate ( player_instance *player,
65 ent_gate *gate );
66
67 /*
68 * Utiltiy
69 * ----------------------------------------------------------------------------
70 */
71 PLAYER_API void player__debugtext( int size, const char *fmt, ... );
72
73 #endif /* PLAYER_API_H */