X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=client.h;h=0e81031cd3c23704b04817e3daf3ebd9353233ec;hb=b658d2db101862461a8e8dbcea64845d1d36f587;hp=7dec18fff5411538cd62ede1c2a07a5edd6a7e03;hpb=17dc94051ad4df6553fc5e4694ca9b55d55cb612;p=xonotic%2Fdarkplaces.git diff --git a/client.h b/client.h index 7dec18ff..0e81031c 100644 --- a/client.h +++ b/client.h @@ -83,11 +83,6 @@ typedef struct rtlight_s // core properties // matrix for transforming world coordinates to light filter coordinates matrix4x4_t matrix_worldtolight; - // based on worldtolight this transforms -1 to +1 to 0 to 1 for purposes - // of attenuation texturing in full 3D (Z result often ignored) - matrix4x4_t matrix_worldtoattenuationxyz; - // this transforms only the Z to S, and T is always 0.5 - matrix4x4_t matrix_worldtoattenuationz; // typically 1 1 1, can be lower (dim) or higher (overbright) vec3_t color; // size of the light (remove?) @@ -141,10 +136,10 @@ typedef struct rtlight_s shadowmesh_t *static_meshchain_shadow; shadowmesh_t *static_meshchain_light; // used for visibility testing (more exact than bbox) - int static_numclusters; - int static_numclusterpvsbytes; - int *static_clusterlist; - qbyte *static_clusterpvs; + int static_numleafs; + int static_numleafpvsbytes; + int *static_leaflist; + qbyte *static_leafpvs; // surfaces seen by light int static_numsurfaces; int *static_surfacelist; @@ -351,6 +346,12 @@ typedef struct vec3_t cursor_normal; vec_t cursor_fraction; int cursor_entitynumber; + + double time; + double receivetime; + int buttons; + int impulse; + int sequence; } usercmd_t; typedef struct @@ -455,6 +456,18 @@ client_static_t; extern client_static_t cls; +typedef struct client_movementqueue_s +{ + double time; + float frametime; + int sequence; + float viewangles[3]; + float move[3]; + qboolean jump; + qboolean crouch; +} +client_movementqueue_t; + // // the client_state_t structure is wiped completely at every // server signon @@ -510,6 +523,19 @@ typedef struct // update by server, can be used by mods for zooming vec_t mviewzoom[2], viewzoom; + // client movement simulation + // these fields are only updated by CL_ClientMovement (called by CL_SendMove after parsing each network packet) + qboolean movement; + // simulated data (this is valid even if cl.movement is false) + vec3_t movement_origin; + vec3_t movement_oldorigin; + vec3_t movement_velocity; + // queue of proposed moves + int movement_numqueue; + client_movementqueue_t movement_queue[256]; + int movesequence; + int servermovesequence; + // pitch drifting vars float idealpitch; float pitchvel; @@ -574,7 +600,7 @@ typedef struct scoreboard_t *scores; // protocol version of the server we're connected to - int protocol; + protocolversion_t protocol; // entity database stuff // latest received entity frame numbers @@ -636,6 +662,11 @@ extern cvar_t cl_stainmaps_clearonload; extern cvar_t cl_prydoncursor; +extern vec3_t cl_playerstandmins; +extern vec3_t cl_playerstandmaxs; +extern vec3_t cl_playercrouchmins; +extern vec3_t cl_playercrouchmaxs; + // these are updated by CL_ClearState extern int cl_num_entities; extern int cl_num_static_entities; @@ -714,7 +745,8 @@ void CL_ExpandEntities(int num); int CL_ReadFromServer (void); void CL_WriteToServer (void); -void CL_BaseMove (void); +void CL_Move (void); +extern qboolean cl_ignoremousemove; float CL_KeyState (kbutton_t *key);