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

Method ChangeZoom

src/game/client/components/camera.cpp:84–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82}
83
84void CCamera::ChangeZoom(float Target, int Smoothness, bool IsUser)
85{
86 if(Target > MaxZoomLevel() || Target < MinZoomLevel())
87 {
88 return;
89 }
90
91 float Now = Client()->LocalTime();
92 float Current = m_Zoom;
93 float Derivative = 0.0f;
94 if(m_Zooming)
95 {
96 float Progress = ZoomProgress(Now);
97 Current = m_ZoomSmoothing.Evaluate(Progress);
98 Derivative = m_ZoomSmoothing.Derivative(Progress);
99 }
100
101 m_ZoomSmoothingTarget = Target;
102 m_ZoomSmoothing = CCubicBezier::With(Current, Derivative, 0, m_ZoomSmoothingTarget);
103 m_ZoomSmoothingStart = Now;
104 m_ZoomSmoothingEnd = Now + (float)Smoothness / 1000;
105
106 if(IsUser)
107 m_UserZoomTarget = Target;
108
109 m_Zooming = true;
110}
111
112void CCamera::ResetAutoSpecCamera()
113{

Callers 1

ConZoomMethod · 0.80

Calls 4

EvaluateMethod · 0.80
DerivativeMethod · 0.80
ClientFunction · 0.50
LocalTimeMethod · 0.45

Tested by

no test coverage detected