X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=player.h;h=fe6d74c59795d6c89934a6f0dd540878768c73ba;hb=23ba25574349652d86979fc787ec4b0214001333;hp=2b7519a01b5b1db790ca5c4a7708deef9dd22f3f;hpb=2c91a71533b4ce86b9e7fd708420ae05c74d8f52;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/player.h b/player.h index 2b7519a..fe6d74c 100644 --- a/player.h +++ b/player.h @@ -10,6 +10,7 @@ enum player_subsystem{ 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 }; @@ -55,10 +56,14 @@ struct player_subsystem_interface{ #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 @@ -73,10 +78,6 @@ struct { rigidbody rb; v3f angles; - v4f qbasis; - m3x3f basis, invbasis, basis_gate; - world_instance *viewable_world; - /* * Camera management * --------------------------- @@ -96,6 +97,8 @@ struct { ent_gate *gate_waiting; int immobile; + int rewinded_since_last_gate; + /* * Network * -------------------------------------------------- @@ -116,6 +119,7 @@ struct { struct player_ragdoll ragdoll; struct player_model fallback_model; + struct player_board fallback_board; u16 board_view_slot, playermodel_view_slot; @@ -168,7 +172,8 @@ 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_skate] = &player_subsystem_skate, + [k_player_subsystem_basic_info]=&player_subsystem_basic_info }; /* @@ -190,6 +195,7 @@ 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 );