diff --git a/src/engine/shared/console.cpp b/src/engine/shared/console.cpp index c7e0fb4d244..360bbba74d4 100644 --- a/src/engine/shared/console.cpp +++ b/src/engine/shared/console.cpp @@ -511,7 +511,15 @@ void CConsole::ExecuteLineStroked(int Stroke, const char *pStr, int ClientId, bo if(Stroke || IsStrokeCommand) { - if(int Error = ParseArgs(&Result, pCommand->m_pParams, pCommand->m_pfnCallback == &SColorConfigVariable::CommandCallback)) + bool IsColor = false; + { + FCommandCallback pfnCallback = pCommand->m_pfnCallback; + void *pUserData = pCommand->m_pUserData; + TraverseChain(&pfnCallback, &pUserData); + IsColor = pfnCallback == &SColorConfigVariable::CommandCallback; + } + + if(int Error = ParseArgs(&Result, pCommand->m_pParams, IsColor)) { char aBuf[CMDLINE_LENGTH + 64]; if(Error == PARSEARGS_INVALID_INTEGER) diff --git a/src/game/client/components/camera.cpp b/src/game/client/components/camera.cpp index 307f3c32618..d57840a0dcc 100644 --- a/src/game/client/components/camera.cpp +++ b/src/game/client/components/camera.cpp @@ -39,7 +39,8 @@ CCamera::CCamera() float CCamera::CameraSmoothingProgress(float CurrentTime) const { - return (CurrentTime - m_CameraSmoothingStart) / (m_CameraSmoothingEnd - m_CameraSmoothingStart); + float Progress = (CurrentTime - m_CameraSmoothingStart) / (m_CameraSmoothingEnd - m_CameraSmoothingStart); + return 1.0 - std::pow(2.0, -10.0 * Progress); } float CCamera::ZoomProgress(float CurrentTime) const