X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=client.h;h=ea80fec1bdf9ac51a02c4ef6e138a4af5014309e;hb=886dd05c5ec12e07954ebe6ceff05fac41cdfe13;hp=f9b16e3910876fc25b50e56a42bb4814f6642a0d;hpb=e7b5029b4590cf57fdc7a6d7b288b102efb06400;p=xonotic%2Fdarkplaces.git diff --git a/client.h b/client.h index f9b16e39..ea80fec1 100644 --- a/client.h +++ b/client.h @@ -55,12 +55,6 @@ typedef struct beam_s struct model_s *model; float endtime; vec3_t start, end; - // if this beam is owned by an entity, this is the beam start relative to - // that entity's matrix for per frame start updates - vec3_t relativestart; - vec3_t relativeend; - // indicates whether relativestart is valid - int relativestartvalid; } beam_t; @@ -509,6 +503,7 @@ typedef struct client_static_s qfile_t *capturevideo_soundfile; short capturevideo_rgbtoyuvscaletable[3][3][256]; unsigned char capturevideo_yuvnormalizetable[3][256]; + char capturevideo_basename[64]; } client_static_t; @@ -600,6 +595,16 @@ typedef struct particle_s } particle_t; +typedef enum cl_parsingtextmode_e +{ + CL_PARSETEXTMODE_NONE, + CL_PARSETEXTMODE_PING, + CL_PARSETEXTMODE_STATUS, + CL_PARSETEXTMODE_STATUS_PLAYERID, + CL_PARSETEXTMODE_STATUS_PLAYERIP +} +cl_parsingtextmode_t; + // // the client_state_t structure is wiped completely at every // server signon @@ -632,6 +637,8 @@ typedef struct client_state_s float weapontime; // use pain anim frame if cl.time < this float faceanimtime; + // for stair smoothing + float stairoffset; // color shifts for damage, powerups cshift_t cshifts[NUM_CSHIFTS]; @@ -663,7 +670,8 @@ typedef struct client_state_s // client movement simulation // these fields are only updated by CL_ClientMovement (called by CL_SendMove after parsing each network packet) - qboolean movement; + // set by CL_ClientMovement_Replay functions + qboolean movement_predicted; // this is set true by svc_time parsing and causes a new movement to be // queued for prediction purposes qboolean movement_needupdate; @@ -677,7 +685,7 @@ typedef struct client_state_s vec3_t movement_velocity; // queue of proposed moves int movement_numqueue; - client_movementqueue_t movement_queue[64]; + client_movementqueue_t movement_queue[256]; int movesequence; int servermovesequence; // whether the replay should allow a jump at the first sequence @@ -777,6 +785,16 @@ typedef struct client_state_s // [cl.maxclients] scoreboard_t *scores; + // keep track of svc_print parsing state (analyzes ping reports and status reports) + cl_parsingtextmode_t parsingtextmode; + int parsingtextplayerindex; + // set by scoreboard code when sending ping command, this causes the next ping results to be hidden + // (which could eat the wrong ping report if the player issues one + // manually, but they would still see a ping report, just a later one + // caused by the scoreboard code rather than the one they intentionally + // issued) + int parsingtextexpectingpingforscores; + // entity database stuff // latest received entity frame numbers #define LATESTFRAMENUMS 3 @@ -910,9 +928,6 @@ extern cvar_t cl_anglespeedkey; extern cvar_t cl_autofire; -extern cvar_t csqc_progname; //[515]: csqc crc check and right csprogs name according to progs.dat -extern cvar_t csqc_progcrc; - extern cvar_t cl_shownet; extern cvar_t cl_nolerp; @@ -963,10 +978,6 @@ void CL_Disconnect_f (void); void CL_BoundingBoxForEntity(entity_render_t *ent); -extern cvar_t cl_beams_polygons; -extern cvar_t cl_beams_relative; -extern cvar_t cl_beams_lightatend; - // // cl_input // @@ -988,7 +999,9 @@ void CL_ValidateState(entity_state_t *s); void CL_MoveLerpEntityStates(entity_t *ent); void CL_LerpUpdate(entity_t *e); void CL_ParseTEnt (void); +void CL_NewBeam (int ent, vec3_t start, vec3_t end, model_t *m, int lightning); void CL_RelinkBeams (void); +void CL_Beam_CalculatePositions (const beam_t *b, vec3_t start, vec3_t end); void CL_ClearTempEntities (void); entity_t *CL_NewTempEntity (void); @@ -1085,7 +1098,6 @@ typedef enum effectnameindex_s EFFECT_TE_SUPERSPIKEQUAD, EFFECT_TE_WIZSPIKE, EFFECT_TE_KNIGHTSPIKE, - EFFECT_TE_VORESPIKE, EFFECT_TE_EXPLOSION, EFFECT_TE_EXPLOSIONQUAD, EFFECT_TE_TAREXPLOSION, @@ -1132,6 +1144,8 @@ void R_NewExplosion(const vec3_t org); #include "cl_screen.h" +extern qboolean sb_showscores; + #define NUMCROSSHAIRS 32 extern cachepic_t *r_crosshairs[NUMCROSSHAIRS+1]; @@ -1272,6 +1286,9 @@ typedef struct r_view_s // which color components to allow (for anaglyph glasses) int colormask[4]; + + // global RGB color multiplier for rendering, this is required by HDR + float colorscale; } r_view_t;