Clamp camera zoom

This commit is contained in:
Jupeyy 2020-09-07 00:19:38 +02:00
parent ebe5b51230
commit bfd24d7dd8
2 changed files with 14 additions and 1 deletions

View file

@ -36,9 +36,19 @@ void CCamera::ScaleZoom(float Factor)
ChangeZoom(CurrentTarget * Factor);
}
float CCamera::MaxZoomLevel()
{
return (Graphics()->IsTileBufferingEnabled()? 60 : 30);
}
float CCamera::MinZoomLevel()
{
return 0.01f;
}
void CCamera::ChangeZoom(float Target)
{
if(Target >= (Graphics()->IsTileBufferingEnabled()? 60 : 30))
if(Target > MaxZoomLevel() || Target < MinZoomLevel())
{
return;
}
@ -75,6 +85,7 @@ void CCamera::OnRender()
{
m_Zoom = m_ZoomSmoothing.Evaluate(ZoomProgress(Time));
}
m_Zoom = clamp(m_Zoom, MinZoomLevel(), MaxZoomLevel());
}
if(!(m_pClient->m_Snap.m_SpecInfo.m_Active || GameClient()->m_GameInfo.m_AllowZoom || Client()->State() == IClient::STATE_DEMOPLAYBACK))

View file

@ -28,6 +28,8 @@ class CCamera : public CComponent
void ChangeZoom(float Target);
float ZoomProgress(float CurrentTime) const;
float MinZoomLevel();
float MaxZoomLevel();
public:
vec2 m_Center;
bool m_ZoomSet;