botmans method is this ...
PHP Code:
void CBot :: runPlayerMove()
{
static CUserCmd cmd;
static bf_write write_buf;
static bf_read read_buf;
static unsigned char buffer[CMD_BUFFER_SIZE]; // shared buffer between write_buf and read_buf (EVIL!!!)
//////////////////////////////////
memset(&cmd, 0, sizeof(cmd));
//////////////////////////////////
cmd.forwardmove = m_fForwardSpeed;
cmd.sidemove = m_fSideSpeed;
cmd.upmove = m_fUpSpeed;
cmd.buttons = m_iButtons;
cmd.impulse = m_iImpulse;
cmd.viewangles = m_vViewAngles;
// SteveC:
// this changes the fixangle from absolute (which isn't coded for) to none
// note: has to be run here because it doesn't work in the addbot routine?!?!?
m_pBaseEdict->PlayerData()->fixangle = FIXANGLE_NONE;
//////////////////////////////////
write_buf.StartWriting( buffer, CMD_BUFFER_SIZE );
WriteUsercmd( &write_buf, &cmd ); // by magic the same data appears in the read_buf!!!
read_buf.StartReading( buffer, CMD_BUFFER_SIZE ); // this is truly EVIL!!!
gameclients->ProcessUsercmds(m_pEdict, &read_buf, 1, 1, 0, false, false);
//////////////////////////////////
}
it still works, but as said before (again

) SteveC's CBasePlayer->ProcessUserCmds doesn't work anymore