struct gclient_s From g_local.h

// client_t->anim_priority
#define	ANIM_BASIC		0		// stand / run
#define	ANIM_WAVE		1
#define	ANIM_JUMP		2
#define	ANIM_PAIN		3
#define	ANIM_ATTACK		4
#define	ANIM_DEATH		5

typedef struct gclient_s
	// known to server
	player_state_t	ps;			// communicated by server to clients
	int		ping;

	// private to game
	client_persistant_t	pers;
	client_respawn_t	resp;
	pmove_state_t		old_pmove;	// for detecting out-of-pmove changes

	qboolean	showscores;		// set layout stat
	qboolean	showinventory;		// set layout stat
	qboolean	showhelpicon;

	int		ammo_index;

	int		buttons;
	int		oldbuttons;
	int		latched_buttons;

	qboolean	weapon_thunk;

	gitem_t		*newweapon;

	// sum up damage over an entire frame, so
	// shotgun blasts give a single big kick
	int		damage_armor;		// damage absorbed by armor
	int		damage_parmor;		// damage absorbed by power armor
	int		damage_blood;		// damage taken out of health
	int		damage_knockback;	// impact damage
	vec3_t		damage_from;		// origin for vector calculation

	float		killer_yaw;		// when dead, look at killer

	weaponstate_t	weaponstate;
	vec3_t		kick_angles;		// weapon kicks
	vec3_t		kick_origin;
	float		v_dmg_roll, v_dmg_pitch, v_dmg_time;	// damage kicks
	float		fall_time, fall_value;	// for view drop on fall
	float		damage_alpha;
	float		bonus_alpha;
	vec3_t		damage_blend;
	vec3_t		v_angle;		// aiming direction
	float		bobtime;		// so off-ground doesn't change it
	vec3_t		oldviewangles;
	vec3_t		oldvelocity;

	float		next_drown_time;
	int		old_waterlevel;
	int		breather_sound;

	int		machinegun_shots;	// for weapon raising

	// animation vars
	int		anim_end;
	int		anim_priority;
	qboolean	anim_duck;
	qboolean	anim_run;

	// powerup timers
	float		quad_framenum;
	float		invincible_framenum;
	float		breather_framenum;
	float		enviro_framenum;

	qboolean	grenade_blew_up;
	float		grenade_time;
	int		silencer_shots;
	int		weapon_sound;

	float		pickup_msg_time;

	float		respawn_time;		// can respawn when time > this
} gclient_t;