//----------------------------------------------------------------------------- // Purpose: Simulates a single frame of movement for a player // Input : *fakeclient - // *viewangles - // forwardmove - // m_flSideMove - // upmove - // buttons - // impulse - // msec - // Output : virtual void //----------------------------------------------------------------------------- void CSDKBot::RunPlayerMove( CUserCmd &cmd, float frametime ) { // Store off the globals.. they're gonna get whacked float flOldFrametime = gpGlobals->frametime; float flOldCurtime = gpGlobals->curtime; float flTimeBase = gpGlobals->curtime + gpGlobals->frametime - frametime; SetTimeBase( flTimeBase ); MoveHelperServer()->SetHost( this ); MDLCACHE_CRITICAL_SECTION(); PlayerRunCommand( &cmd, MoveHelperServer() ); // save off the last good usercmd SetLastUserCommand( cmd ); // Clear out any fixangle that has been set pl.fixangle = FIXANGLE_NONE; // Restore the globals.. gpGlobals->frametime = flOldFrametime; gpGlobals->curtime = flOldCurtime; }
//----------------------------------------------------------------------------- // Purpose: Simulates a single frame of movement for a player // Input : *fakeclient - // *viewangles - // forwardmove - // m_flSideMove - // upmove - // buttons - // impulse - // msec - // Output : virtual void //----------------------------------------------------------------------------- void RunPlayerMove(CSDKPlayer *fakeclient, CUserCmd &cmd, float frametime) { //if ( !fakeclient ) // return; // Store off the globals.. they're gonna get whacked float flOldFrametime = gpGlobals->frametime; float flOldCurtime = gpGlobals->curtime; float flTimeBase = gpGlobals->curtime + gpGlobals->frametime - frametime; fakeclient->SetTimeBase(flTimeBase); MoveHelperServer()->SetHost(fakeclient); fakeclient->PlayerRunCommand(&cmd, MoveHelperServer()); // save off the last good usercmd fakeclient->SetLastUserCommand(cmd); // Clear out any fixangle that has been set fakeclient->pl.fixangle = FIXANGLE_NONE; // Restore the globals.. gpGlobals->frametime = flOldFrametime; gpGlobals->curtime = flOldCurtime; MoveHelperServer()->SetHost(NULL); }
//----------------------------------------------------------------------------- // Purpose: Simulates a single frame of movement for a player // Input : *fakeclient - // *viewangles - // forwardmove - // sidemove - // upmove - // buttons - // impulse - // msec - // Output : virtual void //----------------------------------------------------------------------------- static void RunPlayerMove( CDODPlayer *fakeclient, const QAngle& viewangles, float forwardmove, float sidemove, float upmove, unsigned short buttons, byte impulse, float frametime ) { if ( !fakeclient ) return; CUserCmd cmd; // Store off the globals.. they're gonna get whacked float flOldFrametime = gpGlobals->frametime; float flOldCurtime = gpGlobals->curtime; float flTimeBase = gpGlobals->curtime + gpGlobals->frametime - frametime; fakeclient->SetTimeBase( flTimeBase ); Q_memset( &cmd, 0, sizeof( cmd ) ); if ( !RunMimicCommand( cmd ) && !bot_zombie.GetBool() ) { VectorCopy( viewangles, cmd.viewangles ); cmd.forwardmove = forwardmove; cmd.sidemove = sidemove; cmd.upmove = upmove; cmd.buttons = buttons; cmd.impulse = impulse; cmd.random_seed = random->RandomInt( 0, 0x7fffffff ); } if( bot_crouch.GetInt() ) cmd.buttons |= IN_DUCK; if ( bot_attack.GetBool() ) cmd.buttons |= IN_ATTACK; MoveHelperServer()->SetHost( fakeclient ); fakeclient->PlayerRunCommand( &cmd, MoveHelperServer() ); // save off the last good usercmd fakeclient->SetLastUserCommand( cmd ); // Clear out any fixangle that has been set fakeclient->pl.fixangle = FIXANGLE_NONE; // Restore the globals.. gpGlobals->frametime = flOldFrametime; gpGlobals->curtime = flOldCurtime; }