+typedef struct usercmd_s
+{
+ vec3_t viewangles;
+
+// intended velocities
+ float forwardmove;
+ float sidemove;
+ float upmove;
+
+ vec3_t cursor_screen;
+ vec3_t cursor_start;
+ vec3_t cursor_end;
+ vec3_t cursor_impact;
+ vec3_t cursor_normal;
+ vec_t cursor_fraction;
+ int cursor_entitynumber;
+
+ double time; // time the move is executed for (non-cl_movement is executed at receivetime)
+ float receivetime; // time the move was received at (used for ping)
+ unsigned char msec; // for predicted moves
+ int buttons;
+ int impulse;
+ unsigned int sequence;
+ qbool applied; // if false we're still accumulating a move
+ qbool predicted; // if true the sequence should be sent as 0
+
+ // derived properties
+ double frametime;
+ qbool canjump;
+ qbool jump;
+ qbool crouch;
+} usercmd_t;
+