X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=player.h;h=ea4ef46605d5a7ad5a0e03359fa42610eda2d398;hb=HEAD;hp=e1b44fe1104a3fc87cb6da6ebc372a7f74833be3;hpb=fe4d150c7b6b49cd9922459707f9fb9aec9dae9c;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player.h b/player.h deleted file mode 100644 index e1b44fe..0000000 --- a/player.h +++ /dev/null @@ -1,228 +0,0 @@ -#ifndef PLAYER_H -#define PLAYER_H - -#include "skaterift.h" -#include "player_common.h" -#include "network_compression.h" -#include "player_effects.h" - -enum player_subsystem{ - k_player_subsystem_walk = 0, - k_player_subsystem_skate = 1, - k_player_subsystem_dead = 2, - k_player_subsystem_drive = 3, - k_player_subsystem_basic_info = 4, - k_player_subsystem_max, - k_player_subsystem_invalid = 255 -}; - -struct player_cam_controller { - enum camera_mode{ - k_cam_firstperson = 1, - k_cam_thirdperson = 0 - } - camera_mode; - f32 camera_type_blend; - - v3f fpv_offset, /* expressed relative to rigidbody */ - tpv_offset, - tpv_offset_extra, - fpv_viewpoint, /* expressed relative to neck bone inverse final*/ - fpv_offset_smooth, - fpv_viewpoint_smooth, - tpv_offset_smooth, - tpv_lpf, - cam_velocity_smooth; -}; - -struct player_subsystem_interface{ - void(*system_register)(void); - void(*bind)(void); - void(*pre_update)(void); - void(*update)(void); - void(*post_update)(void); - void(*im_gui)(void); - void(*animate)(void); - void(*pose)( void *animator, player_pose *pose ); - void(*effects)( void *animator, m4x3f *final_mtx, struct player_board *board, - struct player_effects_data *effect_data ); - void(*post_animate)(void); - void(*network_animator_exchange)( bitpack_ctx *ctx, void *data ); - void(*sfx_oneshot)( u8 id, v3f pos, f32 volume ); - - void(*sfx_comp)(void *animator); - void(*sfx_kill)(void); - - void *animator_data; - u32 animator_size; - - const char *name; -}; - -#include "player_ragdoll.h" -#include "player_render.h" -#include "player_model.h" - -/* subsystem headers */ -#include "player_walk.h" -#include "player_skate.h" -#include "player_dead.h" -#include "player_drive.h" -#include "player_basic_info.h" - -#include "player_replay.h" - -#define PLAYER_REWIND_FRAMES 60*4 -#define RESET_MAX_TIME 45.0 - -static i32 k_cinema_fixed = 0; -static f32 k_cinema = 0.0f; -static i32 k_invert_y = 0; - -struct { - /* transform definition */ - rigidbody rb; - v3f angles; - - /* - * Camera management - * --------------------------- - */ - camera cam; - struct player_cam_controller cam_control; - f32 cam_trackshake; - - float cam_velocity_influence, - cam_velocity_coefficient, - cam_velocity_constant, - cam_velocity_coefficient_smooth, - cam_velocity_constant_smooth, - cam_velocity_influence_smooth; - - v3f cam_land_punch, cam_land_punch_v; - ent_gate *gate_waiting; - int deferred_frame_record; - - int immobile; - - int rewinded_since_last_gate; - - /* - * Network - * -------------------------------------------------- - */ - u16 boundary_hash; - struct net_sfx { - u8 system, priority, id; - f32 subframe, volume; - v3f location; - } - sfx_buffer[4]; - u32 sfx_buffer_count; - - /* - * Animation - * -------------------------------------------------- - */ - - struct player_ragdoll ragdoll; - struct player_model fallback_model; - struct player_board fallback_board; - - u16 board_view_slot, playermodel_view_slot; - - player_pose pose; - player_pose holdout_pose; - float holdout_time; - - m4x3f *final_mtx; - - /* - * Subsystems - * ------------------------------------------------- - */ - - enum player_subsystem subsystem; /* .. prev */ - - /* - * Rendering - */ - mdl_context skeleton_meta; - struct skeleton skeleton; - - u8 id_hip, - id_chest, - id_ik_hand_l, - id_ik_hand_r, - id_ik_elbow_l, - id_ik_elbow_r, - id_head, - id_foot_l, - id_foot_r, - id_ik_foot_l, - id_ik_foot_r, - id_ik_knee_l, - id_ik_knee_r, - id_wheel_l, - id_wheel_r, - id_board, - id_eyes, - id_world; - - u8 skeleton_mirror[32]; - - struct player_effects_data effect_data; -} -static localplayer = { - .rb = { - .co = { 0,0,0 }, - .w = { 0,0,0 }, - .v = { 0,0,0 }, - .q = { 0,0,0,1 }, - .to_world = M4X3_IDENTITY, - .to_local = M4X3_IDENTITY - } -}; - -struct player_subsystem_interface static *player_subsystems[] = { - [k_player_subsystem_walk] = &player_subsystem_walk, - [k_player_subsystem_dead] = &player_subsystem_dead, - [k_player_subsystem_drive] = &player_subsystem_drive, - [k_player_subsystem_skate] = &player_subsystem_skate, - [k_player_subsystem_basic_info]=&player_subsystem_basic_info -}; - -/* - * Gameloop tables - * --------------------------------------------------------- - */ - -static void player__debugtext( int size, const char *fmt, ... ); -static void player__use_mesh( glmesh *mesh ); -static void player__use_texture( vg_tex2d *tex ); -static void player__use_model( u16 reg_id ); - -static void player__bind(void); -static void player__pre_update(void); -static void player__update(void); -static void player__post_update(void); - -static void player__pass_gate( u32 id ); -static void player__im_gui(void); -static void player__setpos( v3f pos ); -static void player__spawn( ent_spawn *rp ); -static void player__clean_refs(void); -static void player__reset(void); -static void player__kill(void); -static void player__begin_holdout( v3f offset ); - -static int localplayer_cmd_respawn( int argc, const char *argv[] ); -static void player_apply_transport_to_cam( m4x3f transport ); - -static void player__clear_sfx_buffer(void); -static void player__networked_sfx( u8 system, u8 priority, u8 id, - v3f pos, f32 volume ); -static void net_sfx_exchange( bitpack_ctx *ctx, struct net_sfx *sfx ); -static void net_sfx_play( struct net_sfx *sfx ); - -#endif /* PLAYER_H */