diff options
| author | oy <Tom_Adams@web.de> | 2011-03-16 21:31:55 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2011-03-16 21:31:55 +0100 |
| commit | b4bec5335960f78a0ad6ac6f0c491cb76375bd56 (patch) | |
| tree | 50a90b68565f103198c670efe9c918ace4428e55 /src/game/client/components/menus_settings.cpp | |
| parent | 7412fabb9c74264010cd4ee43b2efddd326cafea (diff) | |
| download | zcatch-b4bec5335960f78a0ad6ac6f0c491cb76375bd56.tar.gz zcatch-b4bec5335960f78a0ad6ac6f0c491cb76375bd56.zip | |
added clan name and country flag selector to the player settings
Diffstat (limited to 'src/game/client/components/menus_settings.cpp')
| -rw-r--r-- | src/game/client/components/menus_settings.cpp | 500 |
1 files changed, 295 insertions, 205 deletions
diff --git a/src/game/client/components/menus_settings.cpp b/src/game/client/components/menus_settings.cpp index 4bdf0fd3..5fc90459 100644 --- a/src/game/client/components/menus_settings.cpp +++ b/src/game/client/components/menus_settings.cpp @@ -20,6 +20,7 @@ #include <game/localization.h> #include "binds.h" +#include "countryflags.h" #include "menus.h" #include "skins.h" @@ -49,247 +50,334 @@ bool CMenusKeyBinder::OnInput(IInput::CEvent Event) void CMenus::RenderSettingsPlayer(CUIRect MainView) { - CUIRect Button; - CUIRect LeftView, RightView; + // page menu + CUIRect PageMenu, Button; + MainView.HSplitBottom(50.0f, &MainView, &PageMenu); + PageMenu.HSplitTop(10.0f, 0, &PageMenu); + RenderTools()->DrawUIRect(&PageMenu, vec4(1.0f, 1.0f, 1.0f,0.25f), CUI::CORNER_ALL, 10.0f); + PageMenu.Margin(10.0f, &PageMenu); + + PageMenu.VSplitLeft(50.0f, 0, &PageMenu); + PageMenu.VSplitLeft(120.0f, &Button, &PageMenu); + static int s_PrevButton = 0; + if(DoButton_PageMenu(&s_PrevButton, Localize("Prev"), 0, m_SettingPlayerPage>0, &Button, CUI::CORNER_L)) + { + if(m_SettingPlayerPage > 0) + --m_SettingPlayerPage; + } + + PageMenu.VSplitRight(50.0f, &PageMenu, 0); + PageMenu.VSplitRight(120.0f, &PageMenu, &Button); + static int s_NextButton = 0; + if(DoButton_PageMenu(&s_NextButton, Localize("Next"), 0, m_SettingPlayerPage<1, &Button, CUI::CORNER_R)) + { + if(m_SettingPlayerPage < 1) + ++m_SettingPlayerPage; + } + + RenderTools()->DrawUIRect(&PageMenu, vec4(1.0f, 1.0f, 1.0f, 0.5f), 0, 10.0f); + char aBuf[64]; + str_format(aBuf, sizeof(aBuf), Localize("Page %d of %d"), m_SettingPlayerPage+1, 2); + UI()->DoLabelScaled(&PageMenu, aBuf, PageMenu.h*ms_FontmodHeight, 0); - MainView.VSplitMid(&LeftView, &RightView); - LeftView.HSplitTop(20.0f, &Button, &LeftView); + // actual settings player page + RenderTools()->DrawUIRect(&MainView, vec4(1.0f, 1.0f, 1.0f, 0.25f), CUI::CORNER_ALL, 10.0f); + MainView.Margin(10.0f, &MainView); + if(m_SettingPlayerPage == 0) + RenderSPPage0(MainView); + else if(m_SettingPlayerPage == 1) + RenderSPPage1(MainView); +} - // render settings - { - char aBuf[128]; +void CMenus::RenderSPPage0(CUIRect MainView) +{ + // settings player page 0 + CUIRect Button, Label; + MainView.HSplitTop(10.0f, 0, &MainView); - LeftView.HSplitTop(20.0f, &Button, &LeftView); - str_format(aBuf, sizeof(aBuf), "%s:", Localize("Name")); - UI()->DoLabel(&Button, aBuf, 14.0, -1); - Button.VSplitLeft(80.0f, 0, &Button); - Button.VSplitLeft(180.0f, &Button, 0); - static float Offset = 0.0f; - if(DoEditBox(g_Config.m_PlayerName, &Button, g_Config.m_PlayerName, sizeof(g_Config.m_PlayerName), 14.0f, &Offset)) - m_NeedSendinfo = true; + // player name + MainView.HSplitTop(20.0f, &Button, &MainView); + Button.VSplitLeft(80.0f, &Label, &Button); + Button.VSplitLeft(150.0f, &Button, 0); + char aBuf[128]; + str_format(aBuf, sizeof(aBuf), "%s:", Localize("Name")); + UI()->DoLabelScaled(&Label, aBuf, 14.0, -1); + static float s_OffsetName = 0.0f; + if(DoEditBox(g_Config.m_PlayerName, &Button, g_Config.m_PlayerName, sizeof(g_Config.m_PlayerName), 14.0f, &s_OffsetName)) + m_NeedSendinfo = true; + + // player clan + MainView.HSplitTop(5.0f, 0, &MainView); + MainView.HSplitTop(20.0f, &Button, &MainView); + Button.VSplitLeft(80.0f, &Label, &Button); + Button.VSplitLeft(150.0f, &Button, 0); + str_format(aBuf, sizeof(aBuf), "%s:", Localize("Clan")); + UI()->DoLabelScaled(&Label, aBuf, 14.0, -1); + static float s_OffsetClan = 0.0f; + if(DoEditBox(g_Config.m_PlayerClan, &Button, g_Config.m_PlayerClan, sizeof(g_Config.m_PlayerClan), 14.0f, &s_OffsetClan)) + m_NeedSendinfo = true; + + // country flag selector + MainView.HSplitTop(20.0f, 0, &MainView); + MainView.HSplitTop(200.0f, &Button, &MainView); + static float s_ScrollValue = 0.0f; + int OldSelected = -1; + UiDoListboxStart(&s_ScrollValue, &Button, 50.0f, Localize("Country flags"), "", m_pClient->m_pCountryFlags->Num(), 6, OldSelected, s_ScrollValue); - // extra spacing - LeftView.HSplitTop(10.0f, 0, &LeftView); + for(int i = 0; i < m_pClient->m_pCountryFlags->Num(); ++i) + { + const CCountryFlags::CCountryFlag *pEntry = m_pClient->m_pCountryFlags->Get(i); + if(pEntry == 0) + continue; - static int s_DynamicCameraButton = 0; - LeftView.HSplitTop(20.0f, &Button, &LeftView); - if(DoButton_CheckBox(&s_DynamicCameraButton, Localize("Dynamic Camera"), g_Config.m_ClMouseDeadzone != 0, &Button)) - { + if(pEntry->m_CountryCode == g_Config.m_PlayerCountry) + OldSelected = i; - if(g_Config.m_ClMouseDeadzone) - { - g_Config.m_ClMouseFollowfactor = 0; - g_Config.m_ClMouseMaxDistance = 400; - g_Config.m_ClMouseDeadzone = 0; - } - else - { - g_Config.m_ClMouseFollowfactor = 60; - g_Config.m_ClMouseMaxDistance = 1000; - g_Config.m_ClMouseDeadzone = 300; - } + CListboxItem Item = UiDoListboxNextItem(&pEntry->m_CountryCode, OldSelected == i); + if(Item.m_Visible) + { + Item.m_Rect.Margin(10.0f, &Item.m_Rect); + float OldWidth = Item.m_Rect.w; + Item.m_Rect.w = 96.0f*Item.m_Rect.h/64.0f; + Item.m_Rect.x += (OldWidth-Item.m_Rect.w)/ 2.0f; + Graphics()->TextureSet(pEntry->m_Texture); + Graphics()->QuadsBegin(); + Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f); + IGraphics::CQuadItem QuadItem(Item.m_Rect.x, Item.m_Rect.y, Item.m_Rect.w, Item.m_Rect.h); + Graphics()->QuadsDrawTL(&QuadItem, 1); + Graphics()->QuadsEnd(); } + } - LeftView.HSplitTop(20.0f, &Button, &LeftView); - if(DoButton_CheckBox(&g_Config.m_ClAutoswitchWeapons, Localize("Switch weapon on pickup"), g_Config.m_ClAutoswitchWeapons, &Button)) - g_Config.m_ClAutoswitchWeapons ^= 1; - - LeftView.HSplitTop(20.0f, &Button, &LeftView); - if(DoButton_CheckBox(&g_Config.m_ClNameplates, Localize("Show name plates"), g_Config.m_ClNameplates, &Button)) - g_Config.m_ClNameplates ^= 1; + const int NewSelected = UiDoListboxEnd(&s_ScrollValue, 0); + if(OldSelected != NewSelected) + { + g_Config.m_PlayerCountry = m_pClient->m_pCountryFlags->Get(NewSelected)->m_CountryCode; + m_NeedSendinfo = true; + } - LeftView.HSplitTop(20.0f, &Button, &LeftView); - if(g_Config.m_ClNameplates) + // dynamic camera + MainView.HSplitTop(20.0f, 0, &MainView); + MainView.HSplitTop(20.0f, &Button, &MainView); + Button.VSplitLeft(230.0f, &Button, 0); + static int s_DynamicCameraButton = 0; + if(DoButton_CheckBox(&s_DynamicCameraButton, Localize("Dynamic Camera"), g_Config.m_ClMouseDeadzone != 0, &Button)) + { + if(g_Config.m_ClMouseDeadzone) { - Button.VSplitLeft(15.0f, 0, &Button); - if(DoButton_CheckBox(&g_Config.m_ClNameplatesAlways, Localize("Always show name plates"), g_Config.m_ClNameplatesAlways, &Button)) - g_Config.m_ClNameplatesAlways ^= 1; - - // draw nameplates size slider - CUIRect Label; - LeftView.HSplitTop(20.0f, &Button, &LeftView); - Button.VSplitLeft(15.0f, 0, &Button); - Button.VSplitRight(10.0f, &Button, 0); - Button.VSplitLeft(140.0f, &Label, &Button); - Button.HMargin(2.0f, &Button); - UI()->DoLabel(&Label, Localize("Name plates size"), 13.0f, -1); - g_Config.m_ClNameplatesSize = (int)(DoScrollbarH(&g_Config.m_ClNameplatesSize, &Button, g_Config.m_ClNameplatesSize/100.0f)*100.0f+0.1f); + g_Config.m_ClMouseFollowfactor = 0; + g_Config.m_ClMouseMaxDistance = 400; + g_Config.m_ClMouseDeadzone = 0; } else - LeftView.HSplitTop(20.0f, &Button, &LeftView); - - { - const CSkins::CSkin *pOwnSkin = m_pClient->m_pSkins->Get(max(0, m_pClient->m_pSkins->Find(g_Config.m_PlayerSkin))); - - CTeeRenderInfo OwnSkinInfo; - OwnSkinInfo.m_Texture = pOwnSkin->m_OrgTexture; - OwnSkinInfo.m_ColorBody = vec4(1, 1, 1, 1); - OwnSkinInfo.m_ColorFeet = vec4(1, 1, 1, 1); - - if(g_Config.m_PlayerUseCustomColor) - { - OwnSkinInfo.m_ColorBody = m_pClient->m_pSkins->GetColorV4(g_Config.m_PlayerColorBody); - OwnSkinInfo.m_ColorFeet = m_pClient->m_pSkins->GetColorV4(g_Config.m_PlayerColorFeet); - OwnSkinInfo.m_Texture = pOwnSkin->m_ColorTexture; - } + { + g_Config.m_ClMouseFollowfactor = 60; + g_Config.m_ClMouseMaxDistance = 1000; + g_Config.m_ClMouseDeadzone = 300; + } + } - OwnSkinInfo.m_Size = 50.0f*UI()->Scale(); + // weapon pickup + MainView.HSplitTop(5.0f, 0, &MainView); + MainView.HSplitTop(20.0f, &Button, &MainView); + Button.VSplitLeft(230.0f, &Button, 0); + if(DoButton_CheckBox(&g_Config.m_ClAutoswitchWeapons, Localize("Switch weapon on pickup"), g_Config.m_ClAutoswitchWeapons, &Button)) + g_Config.m_ClAutoswitchWeapons ^= 1; - LeftView.HSplitTop(20.0f, &Button, &LeftView); - LeftView.HSplitTop(20.0f, &Button, &LeftView); + // name plates + MainView.HSplitTop(5.0f, 0, &MainView); + MainView.HSplitTop(20.0f, &Button, &MainView); + Button.VSplitLeft(230.0f, &Button, 0); + if(DoButton_CheckBox(&g_Config.m_ClNameplates, Localize("Show name plates"), g_Config.m_ClNameplates, &Button)) + g_Config.m_ClNameplates ^= 1; - str_format(aBuf, sizeof(aBuf), "%s:", Localize("Your skin")); - UI()->DoLabelScaled(&Button, aBuf, 14.0f, -1); + if(g_Config.m_ClNameplates) + { + MainView.HSplitTop(2.5f, 0, &MainView); + MainView.VSplitLeft(30.0f, 0, &MainView); + MainView.VSplitLeft(200.0f, &MainView, 0); + MainView.HSplitTop(20.0f, &Button, &MainView); + if(DoButton_CheckBox(&g_Config.m_ClNameplatesAlways, Localize("Always show name plates"), g_Config.m_ClNameplatesAlways, &Button)) + g_Config.m_ClNameplatesAlways ^= 1; + + MainView.HSplitTop(2.5f, 0, &MainView); + MainView.HSplitTop(20.0f, &Label, &MainView); + MainView.HSplitTop(20.0f, &Button, &MainView); + str_format(aBuf, sizeof(aBuf), "%s: %i", Localize("Name plates size"), g_Config.m_ClNameplatesSize); + UI()->DoLabelScaled(&Label, aBuf, 13.0f, -1); + Button.HMargin(2.0f, &Button); + g_Config.m_ClNameplatesSize = (int)(DoScrollbarH(&g_Config.m_ClNameplatesSize, &Button, g_Config.m_ClNameplatesSize/100.0f)*100.0f+0.1f); + } +} - CUIRect SkinRect; - LeftView.VSplitLeft(LeftView.w/1.2f/UI()->Scale(), &SkinRect, 0); - SkinRect.HSplitTop(50.0f, &SkinRect, 0); - RenderTools()->DrawUIRect(&SkinRect, vec4(1, 1, 1, 0.25f), CUI::CORNER_ALL, 10.0f); +void CMenus::RenderSPPage1(CUIRect MainView) +{ + // settings player page 1 + CUIRect Button, Label; + MainView.HSplitTop(10.0f, 0, &MainView); - Button.VSplitLeft(30.0f, 0, &Button); - Button.HSplitTop(50.0f, 0, &Button); - RenderTools()->RenderTee(CAnimState::GetIdle(), &OwnSkinInfo, 0, vec2(1, 0), vec2(Button.x, Button.y)); + // skin info + const CSkins::CSkin *pOwnSkin = m_pClient->m_pSkins->Get(m_pClient->m_pSkins->Find(g_Config.m_PlayerSkin)); + CTeeRenderInfo OwnSkinInfo; + if(g_Config.m_PlayerUseCustomColor) + { + OwnSkinInfo.m_Texture = pOwnSkin->m_ColorTexture; + OwnSkinInfo.m_ColorBody = m_pClient->m_pSkins->GetColorV4(g_Config.m_PlayerColorBody); + OwnSkinInfo.m_ColorFeet = m_pClient->m_pSkins->GetColorV4(g_Config.m_PlayerColorFeet); + } + else + { + OwnSkinInfo.m_Texture = pOwnSkin->m_OrgTexture; + OwnSkinInfo.m_ColorBody = vec4(1.0f, 1.0f, 1.0f, 1.0f); + OwnSkinInfo.m_ColorFeet = vec4(1.0f, 1.0f, 1.0f, 1.0f); + } + OwnSkinInfo.m_Size = 50.0f*UI()->Scale(); - LeftView.HSplitTop(20.0f, &Button, &LeftView); - Button.HSplitTop(15.0f, 0, &Button); - Button.VSplitLeft(100.0f, 0, &Button); + MainView.HSplitTop(20.0f, &Label, &MainView); + Label.VSplitLeft(230.0f, &Label, 0); + char aBuf[128]; + str_format(aBuf, sizeof(aBuf), "%s:", Localize("Your skin")); + UI()->DoLabelScaled(&Label, aBuf, 14.0f, -1); + + MainView.HSplitTop(50.0f, &Label, &MainView); + Label.VSplitLeft(230.0f, &Label, 0); + RenderTools()->DrawUIRect(&Label, vec4(1.0f, 1.0f, 1.0f, 0.25f), CUI::CORNER_ALL, 10.0f); + RenderTools()->RenderTee(CAnimState::GetIdle(), &OwnSkinInfo, 0, vec2(1, 0), vec2(Label.x+30.0f, Label.y+28.0f)); + Label.HSplitTop(15.0f, 0, &Label);; + Label.VSplitLeft(70.0f, 0, &Label); + UI()->DoLabelScaled(&Label, g_Config.m_PlayerSkin, 14.0f, -1, 150.0f); + + // custom colour selector + MainView.HSplitTop(20.0f, 0, &MainView); + MainView.HSplitTop(20.0f, &Button, &MainView); + Button.VSplitLeft(230.0f, &Button, 0); + if(DoButton_CheckBox(&g_Config.m_PlayerColorBody, Localize("Custom colors"), g_Config.m_PlayerUseCustomColor, &Button)) + { + g_Config.m_PlayerUseCustomColor = g_Config.m_PlayerUseCustomColor?0:1; + m_NeedSendinfo = true; + } - str_format(aBuf, sizeof(aBuf), "%s", g_Config.m_PlayerSkin); - CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, Button.x, Button.y, 14.0f*UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); - Cursor.m_LineWidth = SkinRect.w-(Button.x-SkinRect.x)-5.0f; - TextRender()->TextEx(&Cursor, aBuf, -1); - } + MainView.HSplitTop(5.0f, 0, &MainView); + MainView.HSplitTop(82.5f, &Label, &MainView); + if(g_Config.m_PlayerUseCustomColor) + { + CUIRect aRects[2]; + Label.VSplitMid(&aRects[0], &aRects[1]); + aRects[0].VSplitRight(10.0f, &aRects[0], 0); + aRects[1].VSplitLeft(10.0f, 0, &aRects[1]); + + int *paColors[2]; + paColors[0] = &g_Config.m_PlayerColorBody; + paColors[1] = &g_Config.m_PlayerColorFeet; + + const char *paParts[] = { + Localize("Body"), + Localize("Feet")}; + const char *paLabels[] = { + Localize("Hue"), + Localize("Sat."), + Localize("Lht.")}; + static int s_aColorSlider[2][3] = {{0}}; + + for(int i = 0; i < 2; i++) + { + aRects[i].HSplitTop(20.0f, &Label, &aRects[i]); + UI()->DoLabelScaled(&Label, paParts[i], 14.0f, -1); + aRects[i].VSplitLeft(20.0f, 0, &aRects[i]); + aRects[i].HSplitTop(2.5f, 0, &aRects[i]); + + int PrevColor = *paColors[i]; + int Color = 0; + for(int s = 0; s < 3; s++) + { + aRects[i].HSplitTop(20.0f, &Label, &aRects[i]); + Label.VSplitLeft(50.0f, &Label, &Button); + Button.HMargin(2.0f, &Button); + + float k = ((PrevColor>>((2-s)*8))&0xff) / 255.0f; + k = DoScrollbarH(&s_aColorSlider[i][s], &Button, k); + Color <<= 8; + Color += clamp((int)(k*255), 0, 255); + UI()->DoLabelScaled(&Label, paLabels[s], 14.0f, -1); + } - RightView.HSplitTop(20.0f, &Button, &RightView); - RightView.HSplitTop(20.0f, &Button, &RightView); + if(PrevColor != Color) + m_NeedSendinfo = true; - if(DoButton_CheckBox(&g_Config.m_PlayerColorBody, Localize("Custom colors"), g_Config.m_PlayerUseCustomColor, &Button)) - { - g_Config.m_PlayerUseCustomColor = g_Config.m_PlayerUseCustomColor?0:1; - m_NeedSendinfo = true; + *paColors[i] = Color; } + } - if(g_Config.m_PlayerUseCustomColor) + // skin selector + MainView.HSplitTop(20.0f, 0, &MainView); + static bool s_InitSkinlist = true; + static sorted_array<const CSkins::CSkin *> s_paSkinList; + static float s_ScrollValue = 0.0f; + if(s_InitSkinlist) + { + s_paSkinList.clear(); + for(int i = 0; i < m_pClient->m_pSkins->Num(); ++i) { - int *paColors[2]; - paColors[0] = &g_Config.m_PlayerColorBody; - paColors[1] = &g_Config.m_PlayerColorFeet; - - const char *paParts[] = { - Localize("Body"), - Localize("Feet")}; - const char *paLabels[] = { - Localize("Hue"), - Localize("Sat."), - Localize("Lht.")}; - static int s_aColorSlider[2][3] = {{0}}; - //static float v[2][3] = {{0, 0.5f, 0.25f}, {0, 0.5f, 0.25f}}; - - for(int i = 0; i < 2; i++) - { - CUIRect Text; - RightView.HSplitTop(20.0f, &Text, &RightView); - Text.VSplitLeft(15.0f, 0, &Text); - UI()->DoLabelScaled(&Text, paParts[i], 14.0f, -1); - - int PrevColor = *paColors[i]; - int Color = 0; - for(int s = 0; s < 3; s++) - { - CUIRect Text; - RightView.HSplitTop(19.0f, &Button, &RightView); - Button.VSplitLeft(30.0f, 0, &Button); - Button.VSplitLeft(70.0f, &Text, &Button); - Button.VSplitRight(5.0f, &Button, 0); - Button.HSplitTop(4.0f, 0, &Button); - - float k = ((PrevColor>>((2-s)*8))&0xff) / 255.0f; - k = DoScrollbarH(&s_aColorSlider[i][s], &Button, k); - Color <<= 8; - Color += clamp((int)(k*255), 0, 255); - UI()->DoLabelScaled(&Text, paLabels[s], 15.0f, -1); - - } - - if(*paColors[i] != Color) - m_NeedSendinfo = true; - - *paColors[i] = Color; - RightView.HSplitTop(5.0f, 0, &RightView); - } + const CSkins::CSkin *s = m_pClient->m_pSkins->Get(i); + // no special skins + if(s->m_aName[0] == 'x' && s->m_aName[1] == '_') + continue; + s_paSkinList.add(s); } + s_InitSkinlist = false; + } - MainView.HSplitTop(MainView.h/2, 0, &MainView); + int OldSelected = -1; + UiDoListboxStart(&s_InitSkinlist, &MainView, 50.0f, Localize("Skins"), "", s_paSkinList.size(), 4, OldSelected, s_ScrollValue); - // render skinselector - static bool s_InitSkinlist = true; - static sorted_array<const CSkins::CSkin *> s_paSkinList; - static float s_ScrollValue = 0; - if(s_InitSkinlist) - { - s_paSkinList.clear(); - for(int i = 0; i < m_pClient->m_pSkins->Num(); ++i) - { - const CSkins::CSkin *s = m_pClient->m_pSkins->Get(i); - // no special skins - if(s->m_aName[0] == 'x' && s->m_aName[1] == '_') - continue; - s_paSkinList.add(s); - } - s_InitSkinlist = false; - } + for(int i = 0; i < s_paSkinList.size(); ++i) + { + const CSkins::CSkin *s = s_paSkinList[i]; + if(s == 0) + continue; - int OldSelected = -1; - UiDoListboxStart(&s_InitSkinlist, &MainView, 50.0f, Localize("Skins"), "", s_paSkinList.size(), 4, OldSelected, s_ScrollValue); + if(str_comp(s->m_aName, g_Config.m_PlayerSkin) == 0) + OldSelected = i; - for(int i = 0; i < s_paSkinList.size(); ++i) + CListboxItem Item = UiDoListboxNextItem(&s_paSkinList[i], OldSelected == i); + if(Item.m_Visible) { - const CSkins::CSkin *s = s_paSkinList[i]; - if(s == 0) - continue; + CTeeRenderInfo Info; + if(g_Config.m_PlayerUseCustomColor) + { + Info.m_Texture = s->m_ColorTexture; + Info.m_ColorBody = m_pClient->m_pSkins->GetColorV4(g_Config.m_PlayerColorBody); + Info.m_ColorFeet = m_pClient->m_pSkins->GetColorV4(g_Config.m_PlayerColorFeet); + } + else + { + Info.m_Texture = s->m_OrgTexture; + Info.m_ColorBody = vec4(1.0f, 1.0f, 1.0f, 1.0f); + Info.m_ColorFeet = vec4(1.0f, 1.0f, 1.0f, 1.0f); + } - if(str_comp(s->m_aName, g_Config.m_PlayerSkin) == 0) - OldSelected = i; + Info.m_Size = UI()->Scale()*50.0f; + Item.m_Rect.HSplitTop(5.0f, 0, &Item.m_Rect); // some margin from the top + RenderTools()->RenderTee(CAnimState::GetIdle(), &Info, 0, vec2(1.0f, 0.0f), vec2(Item.m_Rect.x+Item.m_Rect.w/2, Item.m_Rect.y+Item.m_Rect.h/2)); - CListboxItem Item = UiDoListboxNextItem(&s_paSkinList[i], OldSelected == i); - if(Item.m_Visible) + if(g_Config.m_Debug) { - CTeeRenderInfo Info; - Info.m_Texture = s->m_OrgTexture; - Info.m_ColorBody = vec4(1, 1, 1, 1); - Info.m_ColorFeet = vec4(1, 1, 1, 1); - - if(g_Config.m_PlayerUseCustomColor) - { - Info.m_ColorBody = m_pClient->m_pSkins->GetColorV4(g_Config.m_PlayerColorBody); - Info.m_ColorFeet = m_pClient->m_pSkins->GetColorV4(g_Config.m_PlayerColorFeet); - Info.m_Texture = s->m_ColorTexture; - } - - Info.m_Size = UI()->Scale()*50.0f; - Item.m_Rect.HSplitTop(5.0f, 0, &Item.m_Rect); // some margin from the top - RenderTools()->RenderTee(CAnimState::GetIdle(), &Info, 0, vec2(1, 0), vec2(Item.m_Rect.x+Item.m_Rect.w/2, Item.m_Rect.y+Item.m_Rect.h/2)); - - if(g_Config.m_Debug) - { - vec3 BloodColor = g_Config.m_PlayerUseCustomColor ? m_pClient->m_pSkins->GetColorV3(g_Config.m_PlayerColorBody) : s->m_BloodColor; - Graphics()->TextureSet(-1); - Graphics()->QuadsBegin(); - Graphics()->SetColor(BloodColor.r, BloodColor.g, BloodColor.b, 1.0f); - IGraphics::CQuadItem QuadItem(Item.m_Rect.x, Item.m_Rect.y, 12, 12); - Graphics()->QuadsDrawTL(&QuadItem, 1); - Graphics()->QuadsEnd(); - } + vec3 BloodColor = g_Config.m_PlayerUseCustomColor ? m_pClient->m_pSkins->GetColorV3(g_Config.m_PlayerColorBody) : s->m_BloodColor; + Graphics()->TextureSet(-1); + Graphics()->QuadsBegin(); + Graphics()->SetColor(BloodColor.r, BloodColor.g, BloodColor.b, 1.0f); + IGraphics::CQuadItem QuadItem(Item.m_Rect.x, Item.m_Rect.y, 12.0f, 12.0f); + Graphics()->QuadsDrawTL(&QuadItem, 1); + Graphics()->QuadsEnd(); } } + } - const int NewSelected = UiDoListboxEnd(&s_ScrollValue, 0); - if(OldSelected != NewSelected) - { - mem_copy(g_Config.m_PlayerSkin, s_paSkinList[NewSelected]->m_aName, sizeof(g_Config.m_PlayerSkin)); - m_NeedSendinfo = true; - } + const int NewSelected = UiDoListboxEnd(&s_ScrollValue, 0); + if(OldSelected != NewSelected) + { + mem_copy(g_Config.m_PlayerSkin, s_paSkinList[NewSelected]->m_aName, sizeof(g_Config.m_PlayerSkin)); + m_NeedSendinfo = true; } } @@ -791,6 +879,7 @@ void CMenus::RenderSettingsGeneral(CUIRect MainView) else str_format(aBuf, sizeof(aBuf), "%s: %s", Localize("Max demos"), Localize("no limit")); UI()->DoLabelScaled(&Label, aBuf, 13.0f, -1); + Button.HMargin(2.0f, &Button); g_Config.m_ClAutoDemoMax = static_cast<int>(DoScrollbarH(&g_Config.m_ClAutoDemoMax, &Button, g_Config.m_ClAutoDemoMax/1000.0f)*1000.0f+0.1f); Right.HSplitTop(10.0f, 0, &Right); @@ -802,6 +891,7 @@ void CMenus::RenderSettingsGeneral(CUIRect MainView) else str_format(aBuf, sizeof(aBuf), "%s: %s", Localize("Max Screenshots"), Localize("no limit")); UI()->DoLabelScaled(&Label, aBuf, 13.0f, -1); + Button.HMargin(2.0f, &Button); g_Config.m_ClAutoScreenshotMax = static_cast<int>(DoScrollbarH(&g_Config.m_ClAutoScreenshotMax, &Button, g_Config.m_ClAutoScreenshotMax/1000.0f)*1000.0f+0.1f); } |