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;
// value of "qport" cvar at time of connection
int qw_qport;
+ // copied from cls.netcon->qw. variables every time they change, or set by demos (which have no cls.netcon)
+ int qw_incoming_sequence;
+ int qw_outgoing_sequence;
// current file download buffer (only saved when file is completed)
char qw_downloadname[MAX_QPATH];
qfile_t *capturevideo_soundfile;
short capturevideo_rgbtoyuvscaletable[3][3][256];
unsigned char capturevideo_yuvnormalizetable[3][256];
+ char capturevideo_basename[64];
}
client_static_t;
}
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
// 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;
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
+ qboolean movement_replay_canjump;
// pitch drifting vars
float idealpitch;
// [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)
+ qboolean parsingtextexpectingpingforscores;
+
// entity database stuff
// latest received entity frame numbers
#define LATESTFRAMENUMS 3
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
//
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);
EFFECT_TE_SUPERSPIKEQUAD,
EFFECT_TE_WIZSPIKE,
EFFECT_TE_KNIGHTSPIKE,
- EFFECT_TE_VORESPIKE,
EFFECT_TE_EXPLOSION,
EFFECT_TE_EXPLOSIONQUAD,
EFFECT_TE_TAREXPLOSION,
#include "cl_screen.h"
+extern qboolean sb_showscores;
+
#define NUMCROSSHAIRS 32
extern cachepic_t *r_crosshairs[NUMCROSSHAIRS+1];
// 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;