//----------------------------------------------------------------------------- // Purpose: MouseMove -- main entry point for applying mouse // Input : *cmd - //----------------------------------------------------------------------------- void CInput::MouseMove( CUserCmd *cmd ) { float mouse_x, mouse_y; float mx, my; QAngle viewangles; // Get view angles from engine engine->GetViewAngles( viewangles ); // Validate mouse speed/acceleration settings CheckMouseAcclerationVars(); // Don't drift pitch at all while mouselooking. view->StopPitchDrift (); //jjb - this disables normal mouse control if the user is trying to // move the camera, or if the mouse cursor is visible if ( !m_fCameraInterceptingMouse && !vgui::surface()->IsCursorVisible() ) { // Sample mouse one more time AccumulateMouse(); // Latch accumulated mouse movements and reset accumulators GetAccumulatedMouseDeltasAndResetAccumulators( &mx, &my ); // Filter, etc. the delta values and place into mouse_x and mouse_y GetMouseDelta( mx, my, &mouse_x, &mouse_y ); // Apply scaling factor ScaleMouse( &mouse_x, &mouse_y ); // Let the client mode at the mouse input before it's used g_pClientMode->OverrideMouseInput( &mouse_x, &mouse_y ); // Add mouse X/Y movement to cmd ApplyMouse( viewangles, cmd, mouse_x, mouse_y ); // Re-center the mouse. ResetMouse(); } #ifdef ARGG // adnan // only set the new viewangles if we're not supposed to override them if( !(g_pClientMode->OverrideViewAngles()) ) { #endif // Store out the new viewangles. engine->SetViewAngles( viewangles ); #ifdef ARGG } // end adnan #endif }
//----------------------------------------------------------------------------- // Purpose: MouseMove -- main entry point for applying mouse // Input : *cmd - //----------------------------------------------------------------------------- void CInput::MouseMove( int nSlot, CUserCmd *cmd ) { float mouse_x, mouse_y; float mx, my; QAngle viewangles; // Get view angles from engine engine->GetViewAngles( viewangles ); // Validate mouse speed/acceleration settings CheckMouseAcclerationVars(); // Don't drift pitch at all while mouselooking. view->StopPitchDrift (); //jjb - this disables normal mouse control if the user is trying to // move the camera, or if the mouse cursor is visible if ( !GetPerUser( nSlot ).m_fCameraInterceptingMouse && g_pInputStackSystem->IsTopmostEnabledContext( m_hInputContext ) ) { // Sample mouse one more time AccumulateMouse( nSlot ); // Latch accumulated mouse movements and reset accumulators GetAccumulatedMouseDeltasAndResetAccumulators( nSlot, &mx, &my ); // Filter, etc. the delta values and place into mouse_x and mouse_y GetMouseDelta( nSlot, mx, my, &mouse_x, &mouse_y ); // Apply scaling factor ScaleMouse( nSlot, &mouse_x, &mouse_y ); // Let the client mode at the mouse input before it's used GetClientMode()->OverrideMouseInput( &mouse_x, &mouse_y ); // Add mouse X/Y movement to cmd ApplyMouse( nSlot, viewangles, cmd, mouse_x, mouse_y ); // Re-center the mouse. ResetMouse(); } // Store out the new viewangles. engine->SetViewAngles( viewangles ); }
//----------------------------------------------------------------------------- // Purpose: MouseMove -- main entry point for applying mouse // Input : *cmd - //----------------------------------------------------------------------------- void CInput::MouseMove( CUserCmd *cmd ) { float mouse_x, mouse_y; float mx, my; QAngle viewangles; C_BasePlayer *pPlayer = C_BasePlayer::GetLocalPlayer(); if (pPlayer && (pPlayer->GetFlags() & (FL_FREECAM | FL_REMOTECONTROLLED) || pPlayer->m_nButtons & IN_WALK)) { viewangles = m_aCameraViewAngles; m_bWasFreeCam = true; } else { if (m_bWasFreeCam) { viewangles = m_aCameraViewAngles; m_bWasFreeCam = false; } else engine->GetViewAngles(viewangles); } // Validate mouse speed/acceleration settings CheckMouseAcclerationVars(); // Don't drift pitch at all while mouselooking. view->StopPitchDrift (); //jjb - this disables normal mouse control if the user is trying to // move the camera, or if the mouse cursor is visible if ( !m_fCameraInterceptingMouse && !vgui::surface()->IsCursorVisible() ) { // Sample mouse one more time AccumulateMouse(); // Latch accumulated mouse movements and reset accumulators GetAccumulatedMouseDeltasAndResetAccumulators( &mx, &my ); // Filter, etc. the delta values and place into mouse_x and mouse_y GetMouseDelta( mx, my, &mouse_x, &mouse_y ); // Apply scaling factor ScaleMouse( &mouse_x, &mouse_y ); // Let the client mode at the mouse input before it's used g_pClientMode->OverrideMouseInput( &mouse_x, &mouse_y ); // Add mouse X/Y movement to cmd ApplyMouse( viewangles, cmd, mouse_x, mouse_y ); // Re-center the mouse. ResetMouse(); } m_aCameraViewAngles = viewangles; if (!(pPlayer->GetFlags() & (FL_FREECAM | FL_REMOTECONTROLLED) || pPlayer->m_nButtons & IN_WALK)) engine->SetViewAngles( viewangles ); }