//----------------------------------------------------------------------------- // Purpose: This is called pre player movement and copies all the data necessary // from the player for movement. (Server-side, the client-side version // of this code can be found in prediction.cpp.) //----------------------------------------------------------------------------- void CDAPlayerMove::SetupMove( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper *pHelper, CMoveData *move ) { BaseClass::SetupMove( player, ucmd, pHelper, move ); IServerVehicle *pVehicle = player->GetVehicle(); if (pVehicle && gpGlobals->frametime != 0) { pVehicle->SetupMove( player, ucmd, pHelper, move ); } }
void CHLPlayerMove::SetupMove( CBasePlayer *player, CUserCmd *ucmd, IMoveHelper *pHelper, CMoveData *move ) { // Call the default SetupMove code. BaseClass::SetupMove( player, ucmd, pHelper, move ); // Convert to HL2 data. CHL2_Player *pHLPlayer = static_cast<CHL2_Player*>( player ); Assert( pHLPlayer ); CHLMoveData *pHLMove = static_cast<CHLMoveData*>( move ); Assert( pHLMove ); player->m_flForwardMove = ucmd->forwardmove; player->m_flSideMove = ucmd->sidemove; pHLMove->m_bIsSprinting = pHLPlayer->IsSprinting(); if ( gpGlobals->frametime != 0 ) { IServerVehicle *pVehicle = player->GetVehicle(); if ( pVehicle ) { pVehicle->SetupMove( player, ucmd, pHelper, move ); if ( !m_bWasInVehicle ) { m_bWasInVehicle = true; m_vecSaveOrigin.Init(); } } else { m_vecSaveOrigin = player->GetAbsOrigin(); if ( m_bWasInVehicle ) { m_bWasInVehicle = false; } } } }