X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=player.h;h=ea4ef46605d5a7ad5a0e03359fa42610eda2d398;hb=HEAD;hp=69da5094133bfcaff8afec76f7962d8d141ffccc;hpb=5f6a4f9df6c8accc89f1920bfe9ace3cbac4c4b6;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player.h b/player.h deleted file mode 100644 index 69da509..0000000 --- a/player.h +++ /dev/null @@ -1,196 +0,0 @@ -#pragma once -#include "vg/vg_platform.h" - -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; -}; - -#include "player_common.h" -#include "network_compression.h" -#include "player_effects.h" -#include "player_api.h" -#include "player_ragdoll.h" -#include "player_model.h" -#include "player_render.h" - -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; -}; - -#define PLAYER_REWIND_FRAMES 60*4 -#define RESET_MAX_TIME 45.0 - -extern i32 k_invert_y; -struct localplayer -{ - /* transform definition */ - rigidbody rb; - v3f angles; - - bool have_glider, glider_orphan; - - /* - * Camera management - * --------------------------- - */ - vg_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, - cam_dist, - cam_dist_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], /* large timeframe 1/10s; for networking */ - local_sfx_buffer[2]; /* per framerate 1/30s; for replay */ - u32 sfx_buffer_count, - local_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, - observing_system; - - /* - * 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; -} -extern localplayer; -extern struct player_subsystem_interface *player_subsystems[]; - -/* - * Gameloop tables - * --------------------------------------------------------- - */ - -void player_init(void); -void player__debugtext( int size, const char *fmt, ... ); -void player__use_mesh( glmesh *mesh ); -void player__use_model( u16 reg_id ); - -void player__bind(void); -void player__pre_update(void); -void player__update(void); -void player__post_update(void); - -void player__pass_gate( u32 id ); -void player__im_gui(void); -void player__setpos( v3f pos ); -void player__spawn( ent_spawn *rp ); -void player__clean_refs(void); -void player__reset(void); -void player__kill(void); -void player__begin_holdout( v3f offset ); - -int localplayer_cmd_respawn( int argc, const char *argv[] ); -void player_apply_transport_to_cam( m4x3f transport ); - -void player__clear_sfx_buffer(void); -void player__networked_sfx( u8 system, u8 priority, u8 id, - v3f pos, f32 volume ); -void net_sfx_exchange( bitpack_ctx *ctx, struct net_sfx *sfx ); -void net_sfx_play( struct net_sfx *sfx );