From 0ed314eef95bf1670c7c086640753578ed7d87a7 Mon Sep 17 00:00:00 2001 From: def Date: Sat, 3 Jan 2015 03:13:21 +0100 Subject: [PATCH] Add default zoom setting --- src/game/client/components/camera.cpp | 25 ++++++++++++++++--- src/game/client/components/menus_settings.cpp | 14 ++++++++--- src/game/variables.h | 2 ++ 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/game/client/components/camera.cpp b/src/game/client/components/camera.cpp index 9931b376f..4df43b27b 100644 --- a/src/game/client/components/camera.cpp +++ b/src/game/client/components/camera.cpp @@ -17,16 +17,23 @@ CCamera::CCamera() { - m_Zoom = 1.0f; m_CamType = CAMTYPE_UNDEFINED; + m_Zoom = 1.0; } void CCamera::OnRender() { CServerInfo Info; Client()->GetServerInfo(&Info); + if(!(m_pClient->m_Snap.m_SpecInfo.m_Active || IsRace(&Info) || Client()->State() == IClient::STATE_DEMOPLAYBACK)) - m_Zoom = 1.0f; + { + m_Zoom = 1.0; + } + else if(m_Zoom == 1.0 && g_Config.m_ClDefaultZoom != 10) + { + OnReset(); + } // update camera center if(m_pClient->m_Snap.m_SpecInfo.m_Active && !m_pClient->m_Snap.m_SpecInfo.m_UsePosition) @@ -77,12 +84,22 @@ void CCamera::OnConsoleInit() Console()->Register("zoom", "", CFGFLAG_CLIENT, ConZoomReset, this, "Zoom reset"); } +const float ZoomStep = 0.866025f; + void CCamera::OnReset() { m_Zoom = 1.0f; + + for (int i = g_Config.m_ClDefaultZoom; i < 10; i++) + { + m_Zoom *= 1/ZoomStep; + } + for (int i = g_Config.m_ClDefaultZoom; i > 10; i--) + { + m_Zoom *= ZoomStep; + } } -const float ZoomStep = 0.866025f; void CCamera::ConZoomPlus(IConsole::IResult *pResult, void *pUserData) { CCamera *pSelf = (CCamera *)pUserData; @@ -104,5 +121,5 @@ void CCamera::ConZoomReset(IConsole::IResult *pResult, void *pUserData) CCamera *pSelf = (CCamera *)pUserData; CServerInfo Info; pSelf->Client()->GetServerInfo(&Info); - ((CCamera *)pUserData)->m_Zoom = 1.0f; + ((CCamera *)pUserData)->OnReset(); } diff --git a/src/game/client/components/menus_settings.cpp b/src/game/client/components/menus_settings.cpp index 63f3d0f6e..22ca21de2 100644 --- a/src/game/client/components/menus_settings.cpp +++ b/src/game/client/components/menus_settings.cpp @@ -1670,7 +1670,7 @@ void CMenus::RenderSettingsDDRace(CUIRect MainView) Left.HSplitTop(20.0f, &Button, &Left); Button.VSplitMid(&LeftLeft, &Button); - Button.VSplitLeft(60.0f, &Label, &Button); + Button.VSplitLeft(50.0f, &Label, &Button); Button.HMargin(2.0f, &Button); UI()->DoLabelScaled(&Label, Localize("Alpha"), 14.0f, -1); g_Config.m_ClShowOthersAlpha = (int)(DoScrollbarH(&g_Config.m_ClShowOthersAlpha, &Button, g_Config.m_ClShowOthersAlpha /100.0f)*100.0f); @@ -1687,6 +1687,15 @@ void CMenus::RenderSettingsDDRace(CUIRect MainView) g_Config.m_ClShowQuads ^= 1; } + Right.HSplitTop(20.0f, &Label, &Right); + Label.VSplitLeft(130.0f, &Label, &Button); + char aBuf[64]; + str_format(aBuf, sizeof(aBuf), "%s: %i", Localize("Default zoom"), g_Config.m_ClDefaultZoom); + UI()->DoLabelScaled(&Label, aBuf, 14.0f, -1); + //Right.HSplitTop(20.0f, &Button, 0); + Button.HMargin(2.0f, &Button); + g_Config.m_ClDefaultZoom= static_cast(DoScrollbarH(&g_Config.m_ClDefaultZoom, &Button, g_Config.m_ClDefaultZoom/20.0f)*20.0f+0.1f); + Right.HSplitTop(20.0f, &Button, &Right); if(DoButton_CheckBox(&g_Config.m_ClAntiPing, Localize("AntiPing"), g_Config.m_ClAntiPing, &Button)) { @@ -1730,9 +1739,6 @@ void CMenus::RenderSettingsDDRace(CUIRect MainView) g_Config.m_ClShowDirection ^= 1; } - Right.HSplitTop(20.0f, &Button, &Right); - // Empty space here - CUIRect aRects[2]; Left.HSplitTop(5.0f, &Button, &Left); Right.HSplitTop(5.0f, &Button, &Right); diff --git a/src/game/variables.h b/src/game/variables.h index 4a7f0908e..383186b6d 100644 --- a/src/game/variables.h +++ b/src/game/variables.h @@ -66,6 +66,8 @@ MACRO_CONFIG_STR(ClLanguagefile, cl_languagefile, 255, "", CFGFLAG_CLIENT|CFGFLA MACRO_CONFIG_INT(ClShowNewSkins, cl_show_new_skins, 1, 0, 1, CFGFLAG_CLIENT|CFGFLAG_SAVE, "Show new skins ingame") MACRO_CONFIG_INT(ClShowCustomSkins, cl_show_custom_skins, 1, 0, 1, CFGFLAG_CLIENT|CFGFLAG_SAVE, "Show custom skins ingame") +MACRO_CONFIG_INT(ClDefaultZoom, cl_default_zoom, 10, 0, 20, CFGFLAG_CLIENT|CFGFLAG_SAVE, "Default zoom level (10 default, min 0, max 20)") + MACRO_CONFIG_INT(PlayerUseCustomColor, player_use_custom_color, 0, 0, 1, CFGFLAG_CLIENT|CFGFLAG_SAVE, "Toggles usage of custom colors") MACRO_CONFIG_INT(PlayerColorBody, player_color_body, 65408, 0, 0xFFFFFF, CFGFLAG_CLIENT|CFGFLAG_SAVE, "Player body color") MACRO_CONFIG_INT(PlayerColorFeet, player_color_feet, 65408, 0, 0xFFFFFF, CFGFLAG_CLIENT|CFGFLAG_SAVE, "Player feet color")