void CGameMovement::DodgeLeft( void ) { if(gpGlobals->curtime <= m_flDoubleTime) { int i = 0; Vector EndPoint; trace_t tr; float flMul; if ( g_bMovementOptimizations ) { #if defined(HL2_DLL) || defined(HL2_CLIENT_DLL) Assert( sv_gravity.GetFloat() == 600.0f ); flMul = 228.0f; // approx. 21 units. #else Assert( sv_gravity.GetFloat() == 800.0f ); flMul = 268.3281572999747f; #endif } else { flMul = sqrt(2 * sv_gravity.GetFloat() * GAMEMOVEMENT_JUMP_HEIGHT); } //if(gpGlobals->curtime <= m_flDoubleTime) //{JUMP = 3; for(i = 0; i < 2; i++) EndPoint[i] = player->GetAbsOrigin()[i] + m_vecRight[i] * 24.0f; UTIL_TraceLine( player->GetAbsOrigin(), EndPoint, MASK_SOLID_BRUSHONLY, NULL, COLLISION_GROUP_NONE, &tr); for(i = 0; i < 2; i++) mv->m_vecVelocity[i] = m_vecRight[i] * -275 * 1.1; mv->m_vecVelocity[2] += flMul; // Jump! mv->m_nOldButtons |= IN_MOVELEFT; } else { m_flDoubleTime = gpGlobals->curtime + 0.5f; mv->m_nOldButtons |= IN_MOVELEFT; return; } //} } and in game_ui.cpp if ( pPlayer->m_afButtonPressed & IN_MOVELEFT ) { CGameMovement *DDodge = new CGameMovement(); DDodge->DodgeLeft(); m_pressedMoveLeft.FireOutput( pPlayer, this, 0 ); }