| 426 | } |
| 427 | |
| 428 | void CControls::ClampMousePos() |
| 429 | { |
| 430 | if(GameClient()->m_Snap.m_SpecInfo.m_Active && GameClient()->m_Snap.m_SpecInfo.m_SpectatorId < 0) |
| 431 | { |
| 432 | m_aMousePos[g_Config.m_ClDummy].x = std::clamp(m_aMousePos[g_Config.m_ClDummy].x, -201.0f * 32, (Collision()->GetWidth() + 201.0f) * 32.0f); |
| 433 | m_aMousePos[g_Config.m_ClDummy].y = std::clamp(m_aMousePos[g_Config.m_ClDummy].y, -201.0f * 32, (Collision()->GetHeight() + 201.0f) * 32.0f); |
| 434 | } |
| 435 | else |
| 436 | { |
| 437 | const float MouseMin = GetMinMouseDistance(); |
| 438 | const float MouseMax = GetMaxMouseDistance(); |
| 439 | |
| 440 | float MouseDistance = length(m_aMousePos[g_Config.m_ClDummy]); |
| 441 | if(MouseDistance < 0.001f) |
| 442 | { |
| 443 | m_aMousePos[g_Config.m_ClDummy].x = 0.001f; |
| 444 | m_aMousePos[g_Config.m_ClDummy].y = 0; |
| 445 | MouseDistance = 0.001f; |
| 446 | } |
| 447 | if(MouseDistance < MouseMin) |
| 448 | m_aMousePos[g_Config.m_ClDummy] = normalize_pre_length(m_aMousePos[g_Config.m_ClDummy], MouseDistance) * MouseMin; |
| 449 | MouseDistance = length(m_aMousePos[g_Config.m_ClDummy]); |
| 450 | if(MouseDistance > MouseMax) |
| 451 | m_aMousePos[g_Config.m_ClDummy] = normalize_pre_length(m_aMousePos[g_Config.m_ClDummy], MouseDistance) * MouseMax; |
| 452 | } |
| 453 | } |
| 454 | |
| 455 | float CControls::GetMinMouseDistance() const |
| 456 | { |
no test coverage detected