ui::Point GameModel::AdjustZoomCoords(ui::Point position) { if (!GetZoomEnabled()) return position; int zoomFactor = GetZoomFactor(); ui::Point zoomWindowPosition = GetZoomWindowPosition(); ui::Point zoomWindowSize = ui::Point(GetZoomSize()*zoomFactor, GetZoomSize()*zoomFactor); if (position.X >= zoomWindowPosition.X && position.X >= zoomWindowPosition.Y && position.X <= zoomWindowPosition.X+zoomWindowSize.X && position.Y <= zoomWindowPosition.Y+zoomWindowSize.Y) return ((position-zoomWindowPosition)/GetZoomFactor())+GetZoomPosition(); return position; }
void CWeapon::ZoomInc() { if(!IsScopeAttached()) return; if(!m_zoom_params.m_bUseDynamicZoom) return; float delta,min_zoom_factor; GetZoomData(m_zoom_params.m_fScopeZoomFactor, delta, min_zoom_factor); float f = GetZoomFactor()-delta; clamp (f,m_zoom_params.m_fScopeZoomFactor,min_zoom_factor); SetZoomFactor ( f ); }
bool GameModel::MouseInZoom(ui::Point position) { if (!GetZoomEnabled()) return false; int zoomFactor = GetZoomFactor(); ui::Point zoomWindowPosition = GetZoomWindowPosition(); ui::Point zoomWindowSize = ui::Point(GetZoomSize()*zoomFactor, GetZoomSize()*zoomFactor); if (position.X >= zoomWindowPosition.X && position.X >= zoomWindowPosition.Y && position.X <= zoomWindowPosition.X+zoomWindowSize.X && position.Y <= zoomWindowPosition.Y+zoomWindowSize.Y) return true; return false; }
void CWeapon::OnZoomOut() { m_zoom_params.m_bIsZoomModeNow = false; m_fRTZoomFactor = GetZoomFactor();//store current m_zoom_params.m_fCurrentZoomFactor = g_fov; EnableHudInertion (TRUE); // GamePersistent().RestoreEffectorDOF (); if(GetHUDmode()) GamePersistent().SetPickableEffectorDOF(false); ResetSubStateTime (); xr_delete (m_zoom_params.m_pVision); if(m_zoom_params.m_pNight_vision) { m_zoom_params.m_pNight_vision->Stop(100000.0f, false); xr_delete(m_zoom_params.m_pNight_vision); } }