FTEQW
Documentation of the FTE engine source tree.
cl_pred.c File Reference

Functions

char * Get_Q2ConfigString (int i)
 
void VARGS Q2_Pmove (q2pmove_t *pmove)
 
void CLQ2_CheckPredictionError (void)
 
void CLQ2_ClipMoveToEntities (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, trace_t *tr)
 
q2trace_t VARGS CLQ2_PMTrace (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end)
 
int VARGS CLQ2_PMpointcontents (vec3_t point)
 
void CL_NudgePosition (void)
 
void CL_PredictUsercmd (int pnum, int entnum, player_state_t *from, player_state_t *to, usercmd_t *u)
 
void CL_CatagorizePosition (playerview_t *pv, float *org)
 
void CL_CalcCrouch (playerview_t *pv)
 
float LerpAngles360 (float to, float from, float frac)
 
short LerpAngles16 (short to, short from, float frac)
 
void CL_CalcClientTime (void)
 
void CL_PredictEntityMovement (entity_state_t *estate, float age)
 
float CL_GetPredictionRealtime (playerview_t *pv)
 
qboolean CSQC_GetSSQCEntityOrigin (unsigned int ssqcent, float *out)
 
void CL_PredictMovePNum (int seat)
 
void CL_PredictMove (void)
 
void CL_InitPrediction (void)
 

Variables

cvar_t cl_predict_extrapolate = CVARD("cl_predict_extrapolate", "", "If 1, enables prediction based upon partial input frames which can change over time resulting in a swimmy feel but does not need to interpolate. If 0, prediction will stay in the past and thus use only completed frames. Interpolation will then be used to smooth movement.\nThis cvar only applies when video and input frames are independant (ie: cl_netfps is set).")
 
cvar_t cl_lerp_smooth = CVARD("cl_lerp_smooth", "2", "If 2, will act as 1 when playing demos/singleplayer and otherwise act as if set to 0 (ie: deathmatch).\nIf 1, interpolation will run in the past, resulting in really smooth movement at the cost of latency (even on bunchy german ISDNs).\nIf 0, interpolation will be based upon packet arrival times and may judder due to packet loss.")
 
cvar_t cl_nopred = CVARD("cl_nopred","0", "Disables clientside movement prediction.")
 
float pm_airaccelerate
 
usercmd_t cl_pendingcmd [MAX_SPLITS]
 
entity_state_t clq2_parse_entities [MAX_PARSE_ENTITIES]
 
vec3_t cl_predicted_origins [MAX_SPLITS][UPDATE_BACKUP]
 
int predignoreentitynum
 

Function Documentation

◆ CL_CalcClientTime()

void CL_CalcClientTime ( void  )

◆ CL_CalcCrouch()

void CL_CalcCrouch ( playerview_t pv)

◆ CL_CatagorizePosition()

void CL_CatagorizePosition ( playerview_t pv,
float *  org 
)

◆ CL_GetPredictionRealtime()

float CL_GetPredictionRealtime ( playerview_t pv)

◆ CL_InitPrediction()

void CL_InitPrediction ( void  )

◆ CL_NudgePosition()

void CL_NudgePosition ( void  )

◆ CL_PredictEntityMovement()

void CL_PredictEntityMovement ( entity_state_t estate,
float  age 
)

◆ CL_PredictMove()

void CL_PredictMove ( void  )

◆ CL_PredictMovePNum()

void CL_PredictMovePNum ( int  seat)

◆ CL_PredictUsercmd()

void CL_PredictUsercmd ( int  pnum,
int  entnum,
player_state_t from,
player_state_t to,
usercmd_t u 
)

◆ CLQ2_CheckPredictionError()

void CLQ2_CheckPredictionError ( void  )

◆ CLQ2_ClipMoveToEntities()

void CLQ2_ClipMoveToEntities ( vec3_t  start,
vec3_t  mins,
vec3_t  maxs,
vec3_t  end,
trace_t tr 
)

◆ CLQ2_PMpointcontents()

int VARGS CLQ2_PMpointcontents ( vec3_t  point)

◆ CLQ2_PMTrace()

q2trace_t VARGS CLQ2_PMTrace ( vec3_t  start,
vec3_t  mins,
vec3_t  maxs,
vec3_t  end 
)

◆ CSQC_GetSSQCEntityOrigin()

qboolean CSQC_GetSSQCEntityOrigin ( unsigned int  ssqcent,
float *  out 
)

◆ Get_Q2ConfigString()

char * Get_Q2ConfigString ( int  i)

◆ LerpAngles16()

short LerpAngles16 ( short  to,
short  from,
float  frac 
)

◆ LerpAngles360()

float LerpAngles360 ( float  to,
float  from,
float  frac 
)

◆ Q2_Pmove()

void VARGS Q2_Pmove ( q2pmove_t pmove)

Variable Documentation

◆ cl_lerp_smooth

cvar_t cl_lerp_smooth = CVARD("cl_lerp_smooth", "2", "If 2, will act as 1 when playing demos/singleplayer and otherwise act as if set to 0 (ie: deathmatch).\nIf 1, interpolation will run in the past, resulting in really smooth movement at the cost of latency (even on bunchy german ISDNs).\nIf 0, interpolation will be based upon packet arrival times and may judder due to packet loss.")

◆ cl_nopred

cvar_t cl_nopred = CVARD("cl_nopred","0", "Disables clientside movement prediction.")

◆ cl_pendingcmd

usercmd_t cl_pendingcmd[MAX_SPLITS]
extern

◆ cl_predict_extrapolate

cvar_t cl_predict_extrapolate = CVARD("cl_predict_extrapolate", "", "If 1, enables prediction based upon partial input frames which can change over time resulting in a swimmy feel but does not need to interpolate. If 0, prediction will stay in the past and thus use only completed frames. Interpolation will then be used to smooth movement.\nThis cvar only applies when video and input frames are independant (ie: cl_netfps is set).")

◆ cl_predicted_origins

vec3_t cl_predicted_origins[MAX_SPLITS][UPDATE_BACKUP]

◆ clq2_parse_entities

entity_state_t clq2_parse_entities[MAX_PARSE_ENTITIES]
extern

◆ pm_airaccelerate

float pm_airaccelerate
extern

◆ predignoreentitynum

int predignoreentitynum