diff --git a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp index 5e80699000..31e10ef8f5 100644 --- a/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp +++ b/Generals/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp @@ -1206,7 +1206,8 @@ void W3DView::update(void) // if scrolling, only adjust if we're too close or too far if (m_scrollAmount.length() < m_scrollAmountCutoff || (m_currentHeightAboveGround < m_minHeightAboveGround) || (TheGlobalData->m_enforceMaxCameraHeight && m_currentHeightAboveGround > m_maxHeightAboveGround)) { - Real zoomAdj = (desiredZoom - m_zoom) * TheGlobalData->m_cameraAdjustSpeed * TheGameEngine->getActualLogicTimeScaleOverFpsRatio(); + const Real fpsRatio = (Real)BaseFps / TheGameEngine->getUpdateFps(); + const Real zoomAdj = (desiredZoom - m_zoom) * TheGlobalData->m_cameraAdjustSpeed * fpsRatio; if (fabs(zoomAdj) >= 0.0001f) // only do positive { m_zoom += zoomAdj; @@ -1217,7 +1218,8 @@ void W3DView::update(void) else if (!didScriptedMovement) { // we're not scrolling; settle toward desired height above ground - Real zoomAdj = (m_zoom - desiredZoom) * TheGlobalData->m_cameraAdjustSpeed * TheGameEngine->getActualLogicTimeScaleOverFpsRatio(); + const Real fpsRatio = (Real)BaseFps / TheGameEngine->getUpdateFps(); + const Real zoomAdj = (m_zoom - desiredZoom) * TheGlobalData->m_cameraAdjustSpeed * fpsRatio; if (fabs(zoomAdj) >= 0.0001f) { m_zoom -= zoomAdj; diff --git a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp index c4e2216567..a8b8d3474e 100644 --- a/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp +++ b/GeneralsMD/Code/GameEngineDevice/Source/W3DDevice/GameClient/W3DView.cpp @@ -1355,7 +1355,8 @@ void W3DView::update(void) // if scrolling, only adjust if we're too close or too far if (m_scrollAmount.length() < m_scrollAmountCutoff || (m_currentHeightAboveGround < m_minHeightAboveGround) || (TheGlobalData->m_enforceMaxCameraHeight && m_currentHeightAboveGround > m_maxHeightAboveGround)) { - Real zoomAdj = (desiredZoom - m_zoom) * TheGlobalData->m_cameraAdjustSpeed * TheGameEngine->getActualLogicTimeScaleOverFpsRatio(); + const Real fpsRatio = (Real)BaseFps / TheGameEngine->getUpdateFps(); + const Real zoomAdj = (desiredZoom - m_zoom) * TheGlobalData->m_cameraAdjustSpeed * fpsRatio; if (fabs(zoomAdj) >= 0.0001f) // only do positive { m_zoom += zoomAdj; @@ -1366,7 +1367,8 @@ void W3DView::update(void) else if (!didScriptedMovement) { // we're not scrolling; settle toward desired height above ground - Real zoomAdj = (m_zoom - desiredZoom) * TheGlobalData->m_cameraAdjustSpeed * TheGameEngine->getActualLogicTimeScaleOverFpsRatio(); + const Real fpsRatio = (Real)BaseFps / TheGameEngine->getUpdateFps(); + const Real zoomAdj = (m_zoom - desiredZoom) * TheGlobalData->m_cameraAdjustSpeed * fpsRatio; if (fabs(zoomAdj) >= 0.0001f) { m_zoom -= zoomAdj;