X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player.h;h=72c26edb5d1cd8b8d0325520d67e4b600aea137f;hb=5f34184cad016aa2f8ea530b3be009703459e981;hp=3e23d1713b963e6fae24355209db4568c5210816;hpb=01e2535f8daaab0e3d46dcc61a08a9268babd47c;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player.h b/player.h index 3e23d17..72c26ed 100644 --- a/player.h +++ b/player.h @@ -1,8 +1,9 @@ #ifndef PLAYER_H #define PLAYER_H -#include "player_api.h" - +#include "player_ragdoll.h" +#include "player_render.h" +#include "player_model.h" #include "player_common.h" #include "player_walk.h" #include "player_skate.h" @@ -10,6 +11,7 @@ #include "player_drive.h" #define PLAYER_REWIND_FRAMES 60*4 +#define RESET_MAX_TIME 45.0 struct player_instance { @@ -44,7 +46,8 @@ struct player_instance cam_velocity_smooth; v3f cam_override_pos; - v2f cam_override_angles; + v3f cam_override_angles; + float cam_override_fov; float cam_override_strength; float cam_velocity_influence, @@ -79,15 +82,17 @@ struct player_instance *input_grab, *input_camera; + int immobile; + /* * Animation * -------------------------------------------------- */ struct player_avatar *playeravatar; - glmesh *playermesh; + struct player_model *playermodel; struct player_ragdoll ragdoll; - vg_tex2d *playertex; + struct player_board *board; player_pose holdout_pose; float holdout_time; @@ -129,13 +134,23 @@ struct player_instance struct player_walk _walk; struct player_dead _dead; struct player_drive _drive; -}; +} +static localplayer; /* * Gameloop tables * --------------------------------------------------------- */ +VG_STATIC +void (*_player_system_register[])(void) = +{ + player__walk_register, + player__skate_register, + NULL, + NULL +}; + VG_STATIC void (*_player_bind[])( player_instance *player ) = { @@ -217,6 +232,22 @@ void( *_player_restore[] )( player_instance *player ) = NULL }; +PLAYER_API void player__debugtext( int size, const char *fmt, ... ); +PLAYER_API void player__create( player_instance *inst ); +PLAYER_API void player__use_avatar( player_instance *player, + struct player_avatar *av ); +PLAYER_API void player__use_mesh( player_instance *player, glmesh *mesh ); +PLAYER_API void player__use_texture( player_instance *player, vg_tex2d *tex ); +PLAYER_API void player__bind( player_instance *player ); +PLAYER_API void player__pre_update( player_instance *player ); +PLAYER_API void player__update( player_instance *player ); +PLAYER_API void player__post_update( player_instance *player ); + +PLAYER_API void player__pass_gate( player_instance *player, ent_gate *gate ); +PLAYER_API void player__im_gui( player_instance *player ); +PLAYER_API void player__spawn( player_instance *player, ent_spawn *rp ); +PLAYER_API void player__kill( player_instance *player ); + /* implementation */ #include "player.c" @@ -225,5 +256,7 @@ void( *_player_restore[] )( player_instance *player ) = #include "player_skate.c" #include "player_dead.c" #include "player_drive.c" +#include "player_render.c" +#include "player_ragdoll.c" #endif /* PLAYER_H */