(just woke up, so any mistakes i make/say... meh)
ehm, yes and no, q3 has some redundancy built in, yes they track the player movement as seen by the code before the little bit i pasted, which is:
fmove = pm->cmd.forwardmove; smove = pm->cmd.rightmove;
cmd = pm->cmd; scale = PM_CmdScale( &cmd );
// set the movementDir so clients can rotate the legs for strafing PM_SetMovementDir();
// project moves down to flat plane pml.forward[2] = 0; pml.right[2] = 0; VectorNormalize (pml.forward); VectorNormalize (pml.right);
for ( i = 0 ; i < 2 ; i++ ) { wishvel[i] = pml.forward[i]*fmove + pml.right[i]*smove; } wishvel[2] = 0;
so, basically they are temporary copies of the vectors which track it, then the code nullifies the up/down movement of the original tracking variables and then does some other stuff with all these.
(also damn, uploads not working, wanted to add the file from q3, but meh i guess, if anyone really wants it they can download q3 source anyway, or the q2 source, or the q1 source ^^)
---------------------------
|