MCPcopy Create free account
hub / github.com/ddnet/ddnet / ClampMousePos

Method ClampMousePos

src/game/client/components/controls.cpp:428–453  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

426}
427
428void 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
455float CControls::GetMinMouseDistance() const
456{

Callers 1

OnRenderMethod · 0.80

Calls 4

lengthFunction · 0.85
normalize_pre_lengthFunction · 0.85
GetWidthMethod · 0.80
GetHeightMethod · 0.80

Tested by

no test coverage detected