mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 09:34:19 +00:00
Clamp camera zoom
This commit is contained in:
parent
ebe5b51230
commit
bfd24d7dd8
|
@ -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))
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue