X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player.h;h=69da5094133bfcaff8afec76f7962d8d141ffccc;hb=5f6a4f9df6c8accc89f1920bfe9ace3cbac4c4b6;hp=b2e910651204212a6035f0661e81bb3084ba7866;hpb=a109f126d8adab622e38fbcc2d4281e75255246a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player.h b/player.h index b2e9106..69da509 100644 --- a/player.h +++ b/player.h @@ -1,21 +1,5 @@ -#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_glide = 5, - k_player_subsystem_max, - k_player_subsystem_invalid = 255 -}; +#pragma once +#include "vg/vg_platform.h" struct player_cam_controller { enum camera_mode{ @@ -36,6 +20,14 @@ struct player_cam_controller { 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); @@ -61,29 +53,12 @@ struct player_subsystem_interface{ 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_glide.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; -static f32 k_cam_dist = 1.8f; - -struct { +extern i32 k_invert_y; +struct localplayer +{ /* transform definition */ rigidbody rb; v3f angles; @@ -94,7 +69,7 @@ struct { * Camera management * --------------------------- */ - camera cam; + vg_camera cam; struct player_cam_controller cam_control; f32 cam_trackshake; @@ -184,56 +159,38 @@ struct { 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, - [k_player_subsystem_glide] = &player_subsystem_glide, -}; +extern localplayer; +extern struct player_subsystem_interface *player_subsystems[]; /* * Gameloop tables * --------------------------------------------------------- */ -static void player__debugtext( int size, const char *fmt, ... ); -static void player__use_mesh( glmesh *mesh ); -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 */ +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 );