From c1a962b8705afa0698f93614a77f8a30cb59a163 Mon Sep 17 00:00:00 2001 From: Jupeyy Date: Tue, 13 Mar 2018 21:59:07 +0100 Subject: [PATCH] add ui fixes to work with new text renderer --- src/game/client/components/menus.cpp | 65 +++++++---- src/game/client/components/menus_browser.cpp | 100 +++++++++-------- src/game/client/components/menus_demo.cpp | 26 ++--- src/game/client/components/menus_ingame.cpp | 20 ++-- src/game/client/components/menus_settings.cpp | 55 ++++----- src/game/client/ui.cpp | 28 +++-- src/game/editor/editor.cpp | 104 ++++++++---------- 7 files changed, 206 insertions(+), 192 deletions(-) diff --git a/src/game/client/components/menus.cpp b/src/game/client/components/menus.cpp index 53507eb9b..64c04f144 100644 --- a/src/game/client/components/menus.cpp +++ b/src/game/client/components/menus.cpp @@ -202,9 +202,20 @@ int CMenus::DoButton_CheckBox_Common(const void *pID, const char *pText, const c c.Margin(2.0f, &c); RenderTools()->DrawUIRect(&c, vec4(1,1,1,0.25f)*ButtonColorMul(pID), CUI::CORNER_ALL, 3.0f); - c.y += 2; - UI()->DoLabel(&c, pBoxText, pRect->h*ms_FontmodHeight*0.6f, 0); - UI()->DoLabel(&t, pText, pRect->h*ms_FontmodHeight*0.8f, -1); + + TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING); + bool CheckAble = *pBoxText == 'X'; + if(CheckAble) + { + TextRender()->SetCurFont(TextRender()->GetFont(TEXT_FONT_ICON_FONT)); + UI()->DoLabel(&c, "\xEE\x97\x8D", c.h, 0); + TextRender()->SetCurFont(NULL); + } + else + UI()->DoLabel(&c, pBoxText, c.h*ms_FontmodHeight, 0); + TextRender()->SetRenderFlags(0); + UI()->DoLabel(&t, pText, c.h*ms_FontmodHeight, -1); + return UI()->DoButtonLogic(pID, pText, 0, pRect); } @@ -321,7 +332,7 @@ int CMenus::DoEditBox(void *pID, const CUIRect *pRect, char *pStr, unsigned StrS { if(UI()->MouseButton(0)) { - if (UI()->LastActiveItem() != pID) + if(UI()->LastActiveItem() != pID) JustGotActive = true; UI()->SetActiveItem(pID); } @@ -369,7 +380,7 @@ int CMenus::DoEditBox(void *pID, const CUIRect *pRect, char *pStr, unsigned StrS { str_copy(aInputing, pStr, sizeof(aInputing)); const char *Text = Input()->GetIMECandidate(); - if (str_length(Text)) + if(str_length(Text)) { int NewTextLen = str_length(Text); int CharsLeft = StrSize - str_length(aInputing) - 1; @@ -423,7 +434,7 @@ int CMenus::DoEditBox(void *pID, const CUIRect *pRect, char *pStr, unsigned StrS // render the cursor if(UI()->LastActiveItem() == pID && !JustGotActive) { - if (str_length(aInputing)) + if(str_length(aInputing)) { float w = TextRender()->TextWidth(0, FontSize, pDisplayStr, s_AtIndex + Input()->GetEditingCursor()); Textbox = *pRect; @@ -621,7 +632,7 @@ int CMenus::DoKeyReader(void *pID, const CUIRect *pRect, int Key) UI()->SetHotItem(pID); // draw - if (UI()->ActiveItem() == pID && ButtonUsed == 0) + if(UI()->ActiveItem() == pID && ButtonUsed == 0) DoButton_KeySelect(pID, "???", 0, pRect); else { @@ -650,7 +661,7 @@ int CMenus::RenderMenubar(CUIRect r) // offline menus Box.VSplitLeft(90.0f, &Button, &Box); static int s_NewsButton=0; - if (DoButton_MenuTab(&s_NewsButton, Localize("News"), m_ActivePage==PAGE_NEWS, &Button, CUI::CORNER_T)) + if(DoButton_MenuTab(&s_NewsButton, Localize("News"), m_ActivePage==PAGE_NEWS, &Button, CUI::CORNER_T)) { NewPage = PAGE_NEWS; m_DoubleClickIndex = -1; @@ -758,31 +769,38 @@ int CMenus::RenderMenubar(CUIRect r) /* box.VSplitRight(110.0f, &box, &button); static int system_button=0; - if (UI()->DoButton(&system_button, "System", g_Config.m_UiPage==PAGE_SYSTEM, &button)) + if(UI()->DoButton(&system_button, "System", g_Config.m_UiPage==PAGE_SYSTEM, &button)) g_Config.m_UiPage = PAGE_SYSTEM; box.VSplitRight(30.0f, &box, 0); */ - Box.VSplitRight(30.0f, &Box, &Button); + TextRender()->SetCurFont(TextRender()->GetFont(TEXT_FONT_ICON_FONT)); + TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING); + + Box.VSplitRight(33.0f, &Box, &Button); static int s_QuitButton=0; - if(DoButton_MenuTab(&s_QuitButton, "×", 0, &Button, CUI::CORNER_T)) + if(DoButton_MenuTab(&s_QuitButton, "\xEE\x97\x8D", 0, &Button, CUI::CORNER_T)) m_Popup = POPUP_QUIT; Box.VSplitRight(10.0f, &Box, &Button); - Box.VSplitRight(30.0f, &Box, &Button); + Box.VSplitRight(33.0f, &Box, &Button); static int s_SettingsButton=0; - if(DoButton_MenuTab(&s_SettingsButton, "⚙", m_ActivePage==PAGE_SETTINGS, &Button, CUI::CORNER_T)) + + if(DoButton_MenuTab(&s_SettingsButton, "\xEE\xA2\xB8", m_ActivePage==PAGE_SETTINGS, &Button, CUI::CORNER_T)) NewPage = PAGE_SETTINGS; Box.VSplitRight(10.0f, &Box, &Button); - Box.VSplitRight(30.0f, &Box, &Button); + Box.VSplitRight(33.0f, &Box, &Button); static int s_EditorButton=0; - if(DoButton_MenuTab(&s_EditorButton, "✎", 0, &Button, CUI::CORNER_T)) + if(DoButton_MenuTab(&s_EditorButton, "\xEE\x8F\x89", 0, &Button, CUI::CORNER_T)) { g_Config.m_ClEditor = 1; } + TextRender()->SetRenderFlags(0); + TextRender()->SetCurFont(NULL); + if(NewPage != -1) { if(Client()->State() == IClient::STATE_OFFLINE) @@ -837,7 +855,7 @@ void CMenus::RenderLoading() r.x = x; r.y = y+20; r.w = w; - r.h = h; + r.h = h - 130; UI()->DoLabel(&r, pCaption, 48.0f, 0, -1); Graphics()->TextureSet(-1); @@ -863,7 +881,7 @@ void CMenus::RenderNews(CUIRect MainView) std::istringstream f(Client()->m_aNews); std::string line; - while (std::getline(f, line)) + while(std::getline(f, line)) { if(line.size() > 0 && line.at(0) == '|' && line.at(line.size()-1) == '|') { @@ -1089,7 +1107,7 @@ int CMenus::Render() pExtraText = ""; } } - else if (m_Popup == POPUP_DISCONNECTED) + else if(m_Popup == POPUP_DISCONNECTED) { pTitle = Localize("Disconnected"); pExtraText = Client()->ErrorString(); @@ -1618,7 +1636,7 @@ int CMenus::Render() #endif Part.VSplitLeft(60.0f, 0, &Part); - if (DoButton_CheckBox(&g_Config.m_BrIndicateFinished, Localize("Show DDNet map finishes in server browser\n(transmits your player name to info.ddnet.tw)"), g_Config.m_BrIndicateFinished, &Part)) + if(DoButton_CheckBox(&g_Config.m_BrIndicateFinished, Localize("Show DDNet map finishes in server browser\n(transmits your player name to info.ddnet.tw)"), g_Config.m_BrIndicateFinished, &Part)) g_Config.m_BrIndicateFinished ^= 1; #if defined(__ANDROID__) @@ -1794,7 +1812,7 @@ void CMenus::OnStateChange(int NewState, int OldState) } else if(NewState == IClient::STATE_CONNECTING) m_Popup = POPUP_CONNECTING; - else if (NewState == IClient::STATE_ONLINE || NewState == IClient::STATE_DEMOPLAYBACK) + else if(NewState == IClient::STATE_ONLINE || NewState == IClient::STATE_DEMOPLAYBACK) { m_Popup = POPUP_NONE; SetActive(false); @@ -2010,7 +2028,8 @@ void CMenus::RenderUpdating(const char *pCaption, int current, int total) CUIRect Screen = *UI()->Screen(); Graphics()->MapScreen(Screen.x, Screen.y, Screen.w, Screen.h); - + + Graphics()->BlendNormal(); RenderBackground(); float w = 700; @@ -2018,8 +2037,6 @@ void CMenus::RenderUpdating(const char *pCaption, int current, int total) float x = Screen.w/2-w/2; float y = Screen.h/2-h/2; - Graphics()->BlendNormal(); - Graphics()->TextureSet(-1); Graphics()->QuadsBegin(); Graphics()->SetColor(0,0,0,0.50f); @@ -2033,7 +2050,7 @@ void CMenus::RenderUpdating(const char *pCaption, int current, int total) r.h = h; UI()->DoLabel(&r, Localize(pCaption), 32.0f, 0, -1); - if (total>0) + if(total>0) { float Percent = current/(float)total; Graphics()->TextureSet(-1); diff --git a/src/game/client/components/menus_browser.cpp b/src/game/client/components/menus_browser.cpp index 3876c604b..d13e7fd0b 100644 --- a/src/game/client/components/menus_browser.cpp +++ b/src/game/client/components/menus_browser.cpp @@ -141,7 +141,6 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) // users misses it { CUIRect MsgBox = View; - MsgBox.y += View.h/3; if(m_ActivePage == PAGE_INTERNET && ServerBrowser()->IsRefreshingMasters()) UI()->DoLabelScaled(&MsgBox, Localize("Refreshing master servers"), 16.0f, 0); @@ -240,7 +239,7 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) // reset friend counter for(int i = 0; i < m_lFriends.size(); m_lFriends[i++].m_NumFound = 0); - for (int i = 0; i < NumServers; i++) + for(int i = 0; i < NumServers; i++) { int ItemIndex = i; const CServerInfo *pItem = ServerBrowser()->SortedGet(ItemIndex); @@ -285,7 +284,7 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) if(Selected) { CUIRect r = Row; - r.Margin(1.5f, &r); + r.Margin(0.5f, &r); RenderTools()->DrawUIRect(&r, vec4(1,1,1,0.5f), CUI::CORNER_ALL, 4.0f); } @@ -340,7 +339,8 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) else if(ID == COL_NAME) { CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, Button.x, Button.y, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + float FontSize = 12.0f * UI()->Scale(); + TextRender()->SetCursor(&Cursor, Button.x, Button.y + (Button.h - FontSize) / 2.f, FontSize, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Button.w; if(g_Config.m_BrFilterString[0] && (pItem->m_QuickSearchHit&IServerBrowser::QUICK_SERVERNAME)) @@ -374,7 +374,8 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) } CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, Button.x, Button.y, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + float FontSize = 12.0f * UI()->Scale(); + TextRender()->SetCursor(&Cursor, Button.x, Button.y + (Button.h - FontSize) / 2.f, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Button.w; if(g_Config.m_BrFilterString[0] && (pItem->m_QuickSearchHit&IServerBrowser::QUICK_MAPNAME)) @@ -418,7 +419,7 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) else if(ID == COL_PING) { str_format(aTemp, sizeof(aTemp), "%i", pItem->m_Latency); - if (g_Config.m_UiColorizePing) + if(g_Config.m_UiColorizePing) { vec3 rgb = HslToRgb(vec3((300.0f - clamp(pItem->m_Latency, 0, 300)) / 1000.0f, 1.0f, 0.5f)); TextRender()->TextColor(rgb.r, rgb.g, rgb.b, 1.0f); @@ -435,26 +436,27 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) else if(ID == COL_GAMETYPE) { CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, Button.x, Button.y, 12.0f*UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + float FontSize = 12.0f * UI()->Scale(); + TextRender()->SetCursor(&Cursor, Button.x, Button.y + (Button.h - FontSize) / 2.f, 12.0f*UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Button.w; - if (g_Config.m_UiColorizeGametype) + if(g_Config.m_UiColorizeGametype) { vec3 hsl = vec3(1.0f, 1.0f, 1.0f); - if (IsVanilla(pItem)) + if(IsVanilla(pItem)) hsl = vec3(0.33f, 1.0f, 0.75f); - else if (IsCatch(pItem)) + else if(IsCatch(pItem)) hsl = vec3(0.17f, 1.0f, 0.75f); - else if (IsInsta(pItem)) + else if(IsInsta(pItem)) hsl = vec3(0.00f, 1.0f, 0.75f); - else if (IsFNG(pItem)) + else if(IsFNG(pItem)) hsl = vec3(0.83f, 1.0f, 0.75f); - else if (IsDDNet(pItem)) + else if(IsDDNet(pItem)) hsl = vec3(0.58f, 1.0f, 0.75f); - else if (IsDDRace(pItem)) + else if(IsDDRace(pItem)) hsl = vec3(0.75f, 1.0f, 0.75f); - else if (IsRace(pItem)) + else if(IsRace(pItem)) hsl = vec3(0.46f, 1.0f, 0.75f); vec3 rgb = HslToRgb(hsl); @@ -493,9 +495,13 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) QuickExclude.VSplitLeft(5.0f, 0, &QuickExclude); // render quick search { - const char *pLabel = "⚲"; - UI()->DoLabelScaled(&QuickSearch, pLabel, 12.0f, -1); - float w = TextRender()->TextWidth(0, 12.0f, pLabel, -1); + const char *pLabel = "\xEE\xA2\xB6"; + TextRender()->SetCurFont(TextRender()->GetFont(TEXT_FONT_ICON_FONT)); + TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING); + UI()->DoLabelScaled(&QuickSearch, pLabel, 16.0f, -1); + float w = TextRender()->TextWidth(0, 16.0f, pLabel, -1); + TextRender()->SetRenderFlags(0); + TextRender()->SetCurFont(NULL); QuickSearch.VSplitLeft(w, 0, &QuickSearch); QuickSearch.VSplitLeft(5.0f, 0, &QuickSearch); QuickSearch.VSplitLeft(QuickSearch.w-15.0f, &QuickSearch, &Button); @@ -521,9 +527,13 @@ void CMenus::RenderServerbrowserServerList(CUIRect View) // render quick exclude { - const char *pLabel = Localize("✗"); - UI()->DoLabelScaled(&QuickExclude, pLabel, 12.0f, -1); - float w = TextRender()->TextWidth(0, 12.0f, pLabel, -1); + const char *pLabel = Localize("\xEE\x85\x8B"); + TextRender()->SetCurFont(TextRender()->GetFont(TEXT_FONT_ICON_FONT)); + TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING); + UI()->DoLabelScaled(&QuickExclude, pLabel, 16.0f, -1); + float w = TextRender()->TextWidth(0, 16.0f, pLabel, -1); + TextRender()->SetRenderFlags(0); + TextRender()->SetCurFont(NULL); QuickExclude.VSplitLeft(w, 0, &QuickExclude); QuickExclude.VSplitLeft(5.0f, 0, &QuickExclude); QuickExclude.VSplitLeft(QuickExclude.w-15.0f, &QuickExclude, &Button); @@ -572,7 +582,7 @@ void CMenus::RenderServerbrowserFilters(CUIRect View) ServerFilter.VMargin(5.0f, &ServerFilter); ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterEmpty, Localize("Has people playing"), g_Config.m_BrFilterEmpty, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterEmpty, Localize("Has people playing"), g_Config.m_BrFilterEmpty, &Button)) g_Config.m_BrFilterEmpty ^= 1; ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); @@ -580,31 +590,31 @@ void CMenus::RenderServerbrowserFilters(CUIRect View) g_Config.m_BrFilterSpectators ^= 1; ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterFull, Localize("Server not full"), g_Config.m_BrFilterFull, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterFull, Localize("Server not full"), g_Config.m_BrFilterFull, &Button)) g_Config.m_BrFilterFull ^= 1; ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterFriends, Localize("Show friends only"), g_Config.m_BrFilterFriends, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterFriends, Localize("Show friends only"), g_Config.m_BrFilterFriends, &Button)) g_Config.m_BrFilterFriends ^= 1; ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterPw, Localize("No password"), g_Config.m_BrFilterPw, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterPw, Localize("No password"), g_Config.m_BrFilterPw, &Button)) g_Config.m_BrFilterPw ^= 1; ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterCompatversion, Localize("Compatible version"), g_Config.m_BrFilterCompatversion, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterCompatversion, Localize("Compatible version"), g_Config.m_BrFilterCompatversion, &Button)) g_Config.m_BrFilterCompatversion ^= 1; ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterPure, Localize("Standard gametype"), g_Config.m_BrFilterPure, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterPure, Localize("Standard gametype"), g_Config.m_BrFilterPure, &Button)) g_Config.m_BrFilterPure ^= 1; ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterPureMap, Localize("Standard map"), g_Config.m_BrFilterPureMap, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterPureMap, Localize("Standard map"), g_Config.m_BrFilterPureMap, &Button)) g_Config.m_BrFilterPureMap ^= 1; ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterGametypeStrict, Localize("Strict gametype filter"), g_Config.m_BrFilterGametypeStrict, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterGametypeStrict, Localize("Strict gametype filter"), g_Config.m_BrFilterGametypeStrict, &Button)) g_Config.m_BrFilterGametypeStrict ^= 1; ServerFilter.HSplitTop(5.0f, 0, &ServerFilter); @@ -669,13 +679,13 @@ void CMenus::RenderServerbrowserFilters(CUIRect View) if(g_Config.m_UiPage == PAGE_DDNET) { ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrIndicateFinished, Localize("Indicate map finish"), g_Config.m_BrIndicateFinished, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrIndicateFinished, Localize("Indicate map finish"), g_Config.m_BrIndicateFinished, &Button)) g_Config.m_BrIndicateFinished ^= 1; if(g_Config.m_BrIndicateFinished) { ServerFilter.HSplitTop(20.0f, &Button, &ServerFilter); - if (DoButton_CheckBox(&g_Config.m_BrFilterUnfinishedMap, Localize("Unfinished map"), g_Config.m_BrFilterUnfinishedMap, &Button)) + if(DoButton_CheckBox(&g_Config.m_BrFilterUnfinishedMap, Localize("Unfinished map"), g_Config.m_BrFilterUnfinishedMap, &Button)) g_Config.m_BrFilterUnfinishedMap ^= 1; } else @@ -761,7 +771,7 @@ void CMenus::RenderServerbrowserFilters(CUIRect View) { // right click to exclusively activate one g_Config.m_BrFilterExcludeTypes[0] = '\0'; - for (int j = 0; j < MaxTypes; ++j) + for(int j = 0; j < MaxTypes; ++j) { if(j != TypeIndex) ServerBrowser()->DDNetFilterAdd(g_Config.m_BrFilterExcludeTypes, ServerBrowser()->GetDDNetType(j)); @@ -842,7 +852,7 @@ void CMenus::RenderServerbrowserFilters(CUIRect View) { // right click to exclusively activate one g_Config.m_BrFilterExcludeCountries[0] = '\0'; - for (int j = 0; j < MaxFlags; ++j) + for(int j = 0; j < MaxFlags; ++j) { if(j != CountryIndex) ServerBrowser()->DDNetFilterAdd(g_Config.m_BrFilterExcludeCountries, ServerBrowser()->GetDDNetCountryName(j)); @@ -858,7 +868,7 @@ void CMenus::RenderServerbrowserFilters(CUIRect View) vec4 Color(1.0f, 1.0f, 1.0f, 1.0f); - if (!Active) + if(!Active) Color.a = 0.2f; m_pClient->m_pCountryFlags->Render(FlagID, &Color, Pos.x, Pos.y, FlagWidth, FlagHeight); @@ -912,7 +922,7 @@ void CMenus::RenderServerbrowserServerDetail(CUIRect View) RenderTools()->DrawUIRect(&ServerDetails, vec4(0,0,0,0.15f), CUI::CORNER_B, 4.0f); UI()->DoLabelScaled(&ServerHeader, Localize("Server details"), FontSize+2.0f, 0); - if (pSelectedServer) + if(pSelectedServer) { ServerDetails.VSplitLeft(5.0f, 0, &ServerDetails); ServerDetails.Margin(3.0f, &ServerDetails); @@ -944,7 +954,7 @@ void CMenus::RenderServerbrowserServerDetail(CUIRect View) ServerDetails.VSplitLeft(5.0f, 0x0, &ServerDetails); ServerDetails.VSplitLeft(80.0f, &LeftColumn, &RightColumn); - for (unsigned int i = 0; i < sizeof(s_aLabels) / sizeof(s_aLabels[0]); i++) + for(unsigned int i = 0; i < sizeof(s_aLabels) / sizeof(s_aLabels[0]); i++) { LeftColumn.HSplitTop(15.0f, &Row, &LeftColumn); UI()->DoLabelScaled(&Row, s_aLabels[i], FontSize, -1); @@ -978,7 +988,7 @@ void CMenus::RenderServerbrowserServerDetail(CUIRect View) static float s_ScrollValue = 0; UiDoListboxStart(&s_VoteList, &ServerScoreBoard, 26.0f, Localize("Scoreboard"), "", pSelectedServer->m_NumReceivedClients, 1, -1, s_ScrollValue); - for (int i = 0; i < pSelectedServer->m_NumReceivedClients; i++) + for(int i = 0; i < pSelectedServer->m_NumReceivedClients; i++) { CListboxItem Item = UiDoListboxNextItem(&i); @@ -1004,7 +1014,7 @@ void CMenus::RenderServerbrowserServerDetail(CUIRect View) Name.VSplitLeft(34.0f, &Score, &Name); Name.VSplitRight(34.0f, &Name, &Flag); Flag.HMargin(4.0f, &Flag); - Name.HSplitTop(11.0f, &Name, &Clan); + Name.HSplitTop(12.0f, &Name, &Clan); // score char aTemp[16]; @@ -1024,12 +1034,12 @@ void CMenus::RenderServerbrowserServerDetail(CUIRect View) else str_format(aTemp, sizeof(aTemp), "%d", pSelectedServer->m_aClients[i].m_Score); - TextRender()->SetCursor(&Cursor, Score.x, Score.y+(Score.h-FontSize)/4.0f, FontSize, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + TextRender()->SetCursor(&Cursor, Score.x, Score.y+(Score.h-FontSize)/2.0f, FontSize, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Score.w; TextRender()->TextEx(&Cursor, aTemp, -1); // name - TextRender()->SetCursor(&Cursor, Name.x, Name.y, FontSize-2, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + TextRender()->SetCursor(&Cursor, Name.x, Name.y + (Name.h - (FontSize - 2)) / 2.f, FontSize - 2, TEXTFLAG_RENDER | TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Name.w; const char *pName = pSelectedServer->m_aClients[i].m_aName; if(g_Config.m_BrFilterString[0]) @@ -1051,7 +1061,7 @@ void CMenus::RenderServerbrowserServerDetail(CUIRect View) TextRender()->TextEx(&Cursor, pName, -1); // clan - TextRender()->SetCursor(&Cursor, Clan.x, Clan.y, FontSize-2, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + TextRender()->SetCursor(&Cursor, Clan.x, Clan.y + (Clan.h - (FontSize - 2)) / 2.f, FontSize - 2, TEXTFLAG_RENDER | TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Clan.w; const char *pClan = pSelectedServer->m_aClients[i].m_aClan; if(g_Config.m_BrFilterString[0]) @@ -1161,7 +1171,7 @@ void CMenus::RenderServerbrowserFriends(CUIRect View) { bool Found = false; int NumServers = ServerBrowser()->NumSortedServers(); - for (int i = 0; i < NumServers && !Found; i++) + for(int i = 0; i < NumServers && !Found; i++) { int ItemIndex = m_SelectedIndex != -1 ? (m_SelectedIndex+i+1)%NumServers : i; const CServerInfo *pItem = ServerBrowser()->SortedGet(ItemIndex); @@ -1274,15 +1284,15 @@ void CMenus::RenderServerbrowser(CUIRect MainView) ms_ColorTabbarInactive = vec4(0.0f, 0.0f, 0.0f, 0.15f); static int s_FiltersTab = 0; - if (DoButton_MenuTab(&s_FiltersTab, Localize("Filter"), ToolboxPage==0, &TabButton0, CUI::CORNER_L)) + if(DoButton_MenuTab(&s_FiltersTab, Localize("Filter"), ToolboxPage==0, &TabButton0, CUI::CORNER_L)) ToolboxPage = 0; static int s_InfoTab = 0; - if (DoButton_MenuTab(&s_InfoTab, Localize("Info"), ToolboxPage==1, &TabButton1, CUI::CORNER_L)) + if(DoButton_MenuTab(&s_InfoTab, Localize("Info"), ToolboxPage==1, &TabButton1, CUI::CORNER_L)) ToolboxPage = 1; static int s_FriendsTab = 0; - if (DoButton_MenuTab(&s_FriendsTab, Localize("Friends"), ToolboxPage==2, &TabButton2, CUI::CORNER_L)) + if(DoButton_MenuTab(&s_FriendsTab, Localize("Friends"), ToolboxPage==2, &TabButton2, CUI::CORNER_L)) ToolboxPage = 2; ms_ColorTabbarActive = Active; diff --git a/src/game/client/components/menus_demo.cpp b/src/game/client/components/menus_demo.cpp index 759ce5cb7..2ed03f7c4 100644 --- a/src/game/client/components/menus_demo.cpp +++ b/src/game/client/components/menus_demo.cpp @@ -74,7 +74,7 @@ void CMenus::RenderDemoPlayer(CUIRect MainView) static int64 LastSpeedChange = 0; // render popups - if (m_DemoPlayerState == DEMOPLAYER_SLICE_SAVE) + if(m_DemoPlayerState == DEMOPLAYER_SLICE_SAVE) { CUIRect Screen = *UI()->Screen(); CUIRect Box, Part, Part2; @@ -191,7 +191,7 @@ void CMenus::RenderDemoPlayer(CUIRect MainView) TotalHeight = SeekBarHeight+ButtonbarHeight+NameBarHeight+Margins*3; // render speed info - if (g_Config.m_ClDemoShowSpeed && time_get() - LastSpeedChange < time_freq() * 1) + if(g_Config.m_ClDemoShowSpeed && time_get() - LastSpeedChange < time_freq() * 1) { CUIRect Screen = *UI()->Screen(); @@ -250,7 +250,7 @@ void CMenus::RenderDemoPlayer(CUIRect MainView) // draw slice markers // begin - if (g_Config.m_ClDemoSliceBegin != -1) + if(g_Config.m_ClDemoSliceBegin != -1) { float Ratio = (g_Config.m_ClDemoSliceBegin-pInfo->m_FirstTick) / (float)TotalTicks; Graphics()->TextureSet(-1); @@ -262,7 +262,7 @@ void CMenus::RenderDemoPlayer(CUIRect MainView) } // end - if (g_Config.m_ClDemoSliceEnd != -1) + if(g_Config.m_ClDemoSliceEnd != -1) { float Ratio = (g_Config.m_ClDemoSliceEnd-pInfo->m_FirstTick) / (float)TotalTicks; Graphics()->TextureSet(-1); @@ -717,7 +717,7 @@ void CMenus::DemolistPopulate() void CMenus::DemolistOnUpdate(bool Reset) { - if (Reset) + if(Reset) g_Config.m_UiDemoSelected[0] = '\0'; else { @@ -728,14 +728,14 @@ void CMenus::DemolistOnUpdate(bool Reset) { SelectedIndex++; - if (str_comp(g_Config.m_UiDemoSelected, r.front().m_aName) == 0) + if(str_comp(g_Config.m_UiDemoSelected, r.front().m_aName) == 0) { Found = true; break; } } - if (Found) + if(Found) m_DemolistSelectedIndex = SelectedIndex; } @@ -1102,23 +1102,23 @@ void CMenus::RenderDemoList(CUIRect MainView) int ID = s_aCols[c].m_ID; - if (ID == COL_ICON) + if(ID == COL_ICON) { DoButton_Icon(IMAGE_FILEICONS, r.front().m_IsDir?SPRITE_FILE_FOLDER:SPRITE_FILE_DEMO1, &Button); } else if(ID == COL_DEMONAME) { CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, Button.x, Button.y, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + TextRender()->SetCursor(&Cursor, Button.x, Button.y + (Button.h - 12.0f * UI()->Scale()) / 2.f, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Button.w; TextRender()->TextEx(&Cursor, r.front().m_aName, -1); } - else if (ID == COL_DATE && !r.front().m_IsDir) + else if(ID == COL_DATE && !r.front().m_IsDir) { CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, Button.x, Button.y, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + TextRender()->SetCursor(&Cursor, Button.x, Button.y + (Button.h - 12.0f * UI()->Scale()) / 2.f, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Button.w; char aBuf[256]; @@ -1134,9 +1134,9 @@ void CMenus::RenderDemoList(CUIRect MainView) bool Activated = false; #if defined(__ANDROID__) - if (m_EnterPressed || (DoubleClicked && UI()->HotItem() == m_lDemos[m_DemolistSelectedIndex].m_aName)) + if(m_EnterPressed || (DoubleClicked && UI()->HotItem() == m_lDemos[m_DemolistSelectedIndex].m_aName)) #else - if (m_EnterPressed || (Input()->MouseDoubleClick() && UI()->HotItem() == m_lDemos[m_DemolistSelectedIndex].m_aName)) + if(m_EnterPressed || (Input()->MouseDoubleClick() && UI()->HotItem() == m_lDemos[m_DemolistSelectedIndex].m_aName)) #endif { UI()->SetActiveItem(0); diff --git a/src/game/client/components/menus_ingame.cpp b/src/game/client/components/menus_ingame.cpp index f4ca98e67..65a5026f6 100644 --- a/src/game/client/components/menus_ingame.cpp +++ b/src/game/client/components/menus_ingame.cpp @@ -615,9 +615,13 @@ void CMenus::RenderServerControl(CUIRect MainView) { Bottom.VSplitLeft(240.0f, &QuickSearch, &Bottom); QuickSearch.HSplitTop(5.0f, 0, &QuickSearch); - const char *pSearchLabel = "⚲"; + const char *pSearchLabel = "\xEE\xA2\xB6"; + TextRender()->SetCurFont(TextRender()->GetFont(TEXT_FONT_ICON_FONT)); + TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING); UI()->DoLabelScaled(&QuickSearch, pSearchLabel, 14.0f, -1); float wSearch = TextRender()->TextWidth(0, 14.0f, pSearchLabel, -1); + TextRender()->SetRenderFlags(0); + TextRender()->SetCurFont(NULL); QuickSearch.VSplitLeft(wSearch, 0, &QuickSearch); QuickSearch.VSplitLeft(5.0f, 0, &QuickSearch); QuickSearch.VSplitLeft(QuickSearch.w-15.0f, &QuickSearch, &Button2); @@ -786,7 +790,7 @@ void CMenus::RenderInGameNetwork(CUIRect MainView) static int s_InternetButton=0; if(DoButton_MenuTab(&s_InternetButton, Localize("Internet"), Page==PAGE_INTERNET, &Button, CUI::CORNER_BL)) { - if (Page != PAGE_INTERNET) + if(Page != PAGE_INTERNET) ServerBrowser()->Refresh(IServerBrowser::TYPE_INTERNET); NewPage = PAGE_INTERNET; } @@ -795,7 +799,7 @@ void CMenus::RenderInGameNetwork(CUIRect MainView) static int s_LanButton=0; if(DoButton_MenuTab(&s_LanButton, Localize("LAN"), Page==PAGE_LAN, &Button, 0)) { - if (Page != PAGE_LAN) + if(Page != PAGE_LAN) ServerBrowser()->Refresh(IServerBrowser::TYPE_LAN); NewPage = PAGE_LAN; } @@ -804,7 +808,7 @@ void CMenus::RenderInGameNetwork(CUIRect MainView) static int s_FavoritesButton=0; if(DoButton_MenuTab(&s_FavoritesButton, Localize("Favorites"), Page==PAGE_FAVORITES, &Button, 0)) { - if (Page != PAGE_FAVORITES) + if(Page != PAGE_FAVORITES) ServerBrowser()->Refresh(IServerBrowser::TYPE_FAVORITES); NewPage = PAGE_FAVORITES; } @@ -813,7 +817,7 @@ void CMenus::RenderInGameNetwork(CUIRect MainView) static int s_DDNetButton=0; if(DoButton_MenuTab(&s_DDNetButton, Localize("DDNet"), Page==PAGE_DDNET, &Button, CUI::CORNER_BR) || Page < PAGE_INTERNET || Page > PAGE_DDNET) { - if (Page != PAGE_DDNET) + if(Page != PAGE_DDNET) { Client()->RequestDDNetInfo(); ServerBrowser()->Refresh(IServerBrowser::TYPE_DDNET); @@ -1035,7 +1039,7 @@ void CMenus::RenderGhost(CUIRect MainView) int NewSelected = -1; - for (int i = 0; i < NumGhosts; i++) + for(int i = 0; i < NumGhosts; i++) { const CGhostItem *pItem = &m_lGhosts[i]; CUIRect Row; @@ -1101,7 +1105,7 @@ void CMenus::RenderGhost(CUIRect MainView) else if(Id == COL_NAME) { CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, Button.x, Button.y, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + TextRender()->SetCursor(&Cursor, Button.x, Button.y + (Button.h - 12.0f * UI()->Scale()) / 2.f, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Button.w; TextRender()->TextEx(&Cursor, pItem->m_aPlayer, -1); @@ -1109,7 +1113,7 @@ void CMenus::RenderGhost(CUIRect MainView) else if(Id == COL_TIME) { CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, Button.x, Button.y, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); + TextRender()->SetCursor(&Cursor, Button.x, Button.y + (Button.h - 12.0f * UI()->Scale()) / 2.f, 12.0f * UI()->Scale(), TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); Cursor.m_LineWidth = Button.w; char aBuf[64]; diff --git a/src/game/client/components/menus_settings.cpp b/src/game/client/components/menus_settings.cpp index 79691c6d1..df598658b 100644 --- a/src/game/client/components/menus_settings.cpp +++ b/src/game/client/components/menus_settings.cpp @@ -237,7 +237,7 @@ void CMenus::RenderSettingsGeneral(CUIRect MainView) Right.HSplitTop(20.0f, 0, &Right); // Right.HSplitTop(20.0f, 0, &Right); // Make some distance so it looks more natural Right.HSplitTop(20.0f, &Button, &Right); - if (DoButton_CheckBox(&g_Config.m_ClAutoCSV, + if(DoButton_CheckBox(&g_Config.m_ClAutoCSV, Localize("Automatically create statboard csv"), g_Config.m_ClAutoCSV, &Button)) { @@ -247,7 +247,7 @@ void CMenus::RenderSettingsGeneral(CUIRect MainView) Right.HSplitTop(10.0f, 0, &Right); Right.HSplitTop(20.0f, &Label, &Right); Button.VSplitRight(20.0f, &Button, 0); - if (g_Config.m_ClAutoCSVMax) + if(g_Config.m_ClAutoCSVMax) str_format(aBuf, sizeof(aBuf), "%s: %i", Localize("Max CSVs"), g_Config.m_ClAutoCSVMax); else str_format(aBuf, sizeof(aBuf), "%s: %s", Localize("Max CSVs"), "∞"); @@ -453,7 +453,6 @@ void CMenus::RenderSettingsTee(CUIRect 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, Skin, 14.0f, -1, 150.0f); @@ -586,7 +585,6 @@ void CMenus::RenderSettingsTee(CUIRect MainView) Item.m_Rect.VSplitLeft(60.0f, 0, &Item.m_Rect); - Item.m_Rect.HSplitTop(10.0f, 0, &Item.m_Rect); str_format(aBuf, sizeof(aBuf), "%s", s->m_aName); RenderTools()->UI()->DoLabelScaled(&Item.m_Rect, aBuf, 12.0f, -1,Item.m_Rect.w); if(g_Config.m_Debug) @@ -617,9 +615,13 @@ void CMenus::RenderSettingsTee(CUIRect MainView) MainView.HSplitBottom(ms_ButtonHeight, &MainView, &QuickSearch); QuickSearch.VSplitLeft(240.0f, &QuickSearch, 0); QuickSearch.HSplitTop(5.0f, 0, &QuickSearch); - const char *pSearchLabel = "⚲"; + const char *pSearchLabel = "\xEE\xA2\xB6"; + TextRender()->SetCurFont(TextRender()->GetFont(TEXT_FONT_ICON_FONT)); + TextRender()->SetRenderFlags(ETextRenderFlags::TEXT_RENDER_FLAG_ONLY_ADVANCE_WIDTH | ETextRenderFlags::TEXT_RENDER_FLAG_NO_X_BEARING | ETextRenderFlags::TEXT_RENDER_FLAG_NO_Y_BEARING); UI()->DoLabelScaled(&QuickSearch, pSearchLabel, 14.0f, -1); float wSearch = TextRender()->TextWidth(0, 14.0f, pSearchLabel, -1); + TextRender()->SetRenderFlags(0); + TextRender()->SetCurFont(NULL); QuickSearch.VSplitLeft(wSearch, 0, &QuickSearch); QuickSearch.VSplitLeft(5.0f, 0, &QuickSearch); QuickSearch.VSplitLeft(QuickSearch.w-15.0f, &QuickSearch, &QuickSearchClearButton); @@ -1346,14 +1348,15 @@ void CMenus::RenderLanguageSelection(CUIRect MainView) static CFont *pDefaultFont = 0; char aFilename[512]; const char *pFontFile = "fonts/DejaVuSansCJKName.ttf"; - if (str_find(g_Config.m_ClLanguagefile, "chinese") != NULL || str_find(g_Config.m_ClLanguagefile, "japanese") != NULL || + if(str_find(g_Config.m_ClLanguagefile, "chinese") != NULL || str_find(g_Config.m_ClLanguagefile, "japanese") != NULL || str_find(g_Config.m_ClLanguagefile, "korean") != NULL) pFontFile = "fonts/DejavuWenQuanYiMicroHei.ttf"; IOHANDLE File = Storage()->OpenFile(pFontFile, IOFLAG_READ, IStorage::TYPE_ALL, aFilename, sizeof(aFilename)); if(File) { io_close(File); - pDefaultFont = TextRender()->LoadFont(aFilename); + if((pDefaultFont = TextRender()->GetFont(aFilename)) == NULL) + pDefaultFont = TextRender()->LoadFont(aFilename); TextRender()->SetDefaultFont(pDefaultFont); } if(!pDefaultFont) @@ -1465,49 +1468,49 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) Left.HSplitTop(20.0f, &Button, &Left); - if (DoButton_CheckBox(&g_Config.m_ClDDRaceScoreBoard, Localize("Use DDRace Scoreboard"), g_Config.m_ClDDRaceScoreBoard, &Button)) + if(DoButton_CheckBox(&g_Config.m_ClDDRaceScoreBoard, Localize("Use DDRace Scoreboard"), g_Config.m_ClDDRaceScoreBoard, &Button)) { g_Config.m_ClDDRaceScoreBoard ^= 1; } Left.HSplitTop(20.0f, &Button, &Left); - if (DoButton_CheckBox(&g_Config.m_ClShowIDs, Localize("Show client IDs in Scoreboard"), g_Config.m_ClShowIDs, &Button)) + if(DoButton_CheckBox(&g_Config.m_ClShowIDs, Localize("Show client IDs in Scoreboard"), g_Config.m_ClShowIDs, &Button)) { g_Config.m_ClShowIDs ^= 1; } Right.HSplitTop(20.0f, &Button, &Right); - if (DoButton_CheckBox(&g_Config.m_ClShowhudScore, Localize("Show score"), g_Config.m_ClShowhudScore, &Button)) + if(DoButton_CheckBox(&g_Config.m_ClShowhudScore, Localize("Show score"), g_Config.m_ClShowhudScore, &Button)) { g_Config.m_ClShowhudScore ^= 1; } Right.HSplitTop(20.0f, &Button, &Right); - if (DoButton_CheckBox(&g_Config.m_ClShowhudHealthAmmo, Localize("Show health + ammo"), g_Config.m_ClShowhudHealthAmmo, &Button)) + if(DoButton_CheckBox(&g_Config.m_ClShowhudHealthAmmo, Localize("Show health + ammo"), g_Config.m_ClShowhudHealthAmmo, &Button)) { g_Config.m_ClShowhudHealthAmmo ^= 1; } Left.HSplitTop(20.0f, &Button, &Left); - if (DoButton_CheckBox(&g_Config.m_ClShowChat, Localize("Show chat"), g_Config.m_ClShowChat, &Button)) + if(DoButton_CheckBox(&g_Config.m_ClShowChat, Localize("Show chat"), g_Config.m_ClShowChat, &Button)) { g_Config.m_ClShowChat ^= 1; } Right.HSplitTop(20.0f, &Button, &Right); - if (DoButton_CheckBox(&g_Config.m_ClChatTeamColors, Localize("Show names in chat in team colors"), g_Config.m_ClChatTeamColors, &Button)) + if(DoButton_CheckBox(&g_Config.m_ClChatTeamColors, Localize("Show names in chat in team colors"), g_Config.m_ClChatTeamColors, &Button)) { g_Config.m_ClChatTeamColors ^= 1; } Left.HSplitTop(20.0f, &Button, &Left); - if (DoButton_CheckBox(&g_Config.m_ClShowKillMessages, Localize("Show kill messages"), g_Config.m_ClShowKillMessages, &Button)) + if(DoButton_CheckBox(&g_Config.m_ClShowKillMessages, Localize("Show kill messages"), g_Config.m_ClShowKillMessages, &Button)) { g_Config.m_ClShowKillMessages ^= 1; } Right.HSplitTop(20.0f, &Button, &Right); - if (DoButton_CheckBox(&g_Config.m_ClShowVotesAfterVoting, Localize("Show votes window after voting"), g_Config.m_ClShowVotesAfterVoting, &Button)) + if(DoButton_CheckBox(&g_Config.m_ClShowVotesAfterVoting, Localize("Show votes window after voting"), g_Config.m_ClShowVotesAfterVoting, &Button)) { g_Config.m_ClShowVotesAfterVoting ^= 1; } @@ -1526,7 +1529,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) UI()->DoLabelScaled(&Label, Localize("System message"), 16.0f, -1); { static int s_DefaultButton = 0; - if (DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) + if(DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) { vec3 HSL = RgbToHsl(vec3(1.0f, 1.0f, 0.5f)); // default values g_Config.m_ClMessageSystemHue = HSL.h; @@ -1562,7 +1565,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) char name[16]; str_copy(name, g_Config.m_PlayerName, sizeof(name)); str_format(aBuf, sizeof(aBuf), "*** '%s' entered and joined the spectators", name); - while (TextRender()->TextWidth(0, 12.0f, aBuf, -1) > Label.w) + while(TextRender()->TextWidth(0, 12.0f, aBuf, -1) > Label.w) { name[str_length(name) - 1] = 0; str_format(aBuf, sizeof(aBuf), "*** '%s' entered and joined the spectators", name); @@ -1578,7 +1581,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) UI()->DoLabelScaled(&Label, Localize("Highlighted message"), 16.0f, -1); { static int s_DefaultButton = 0; - if (DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) + if(DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) { vec3 HSL = RgbToHsl(vec3(1.0f, 0.5f, 0.5f)); // default values g_Config.m_ClMessageHighlightHue = HSL.h; @@ -1619,7 +1622,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) char name[16]; str_copy(name, g_Config.m_PlayerName, sizeof(name)); str_format(aBuf, sizeof(aBuf), ": %s: %s", name, Localize ("Look out!")); - while (TextRender()->TextWidth(0, 12.0f, aBuf, -1) > Button.w) + while(TextRender()->TextWidth(0, 12.0f, aBuf, -1) > Button.w) { name[str_length(name) - 1] = 0; str_format(aBuf, sizeof(aBuf), ": %s: %s", name, Localize("Look out!")); @@ -1636,7 +1639,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) UI()->DoLabelScaled(&Label, Localize("Team message"), 16.0f, -1); { static int s_DefaultButton = 0; - if (DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) + if(DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) { vec3 HSL = RgbToHsl(vec3(0.65f, 1.0f, 0.65f)); // default values g_Config.m_ClMessageTeamHue = HSL.h; @@ -1689,7 +1692,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) UI()->DoLabelScaled(&Label, Localize("Friend message"), 16.0f, -1); { static int s_DefaultButton = 0; - if (DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) + if(DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) { g_Config.m_ClMessageFriendHue = 0; g_Config.m_ClMessageFriendSat = 255; @@ -1751,7 +1754,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) UI()->DoLabelScaled(&Label, Localize("Normal message"), 16.0f, -1); { static int s_DefaultButton = 0; - if (DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) + if(DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) { vec3 HSL = RgbToHsl(vec3(1.0f, 1.0f, 1.0f)); // default values g_Config.m_ClMessageHue = HSL.h; @@ -1808,7 +1811,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) UI()->DoLabelScaled(&Label, Localize("Inner color"), 16.0f, -1); { static int s_DefaultButton = 0; - if (DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) + if(DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) { vec3 HSL = RgbToHsl(vec3(0.5f, 0.5f, 1.0f)); // default values g_Config.m_ClLaserInnerHue = HSL.h; @@ -1844,7 +1847,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) UI()->DoLabelScaled(&Label, Localize("Outline color"), 16.0f, -1); { static int s_DefaultButton = 0; - if (DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) + if(DoButton_Menu(&s_DefaultButton, Localize("Reset"), 0, &Button)) { vec3 HSL = RgbToHsl(vec3(0.075f, 0.075f, 0.25f)); // default values g_Config.m_ClLaserOutlineHue = HSL.h; @@ -1945,7 +1948,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) Left.HSplitTop(20.0f, &Label, &Left); Button.VSplitRight(20.0f, &Button, 0); char aBuf[64]; - if (g_Config.m_ClReconnectTimeout == 1) + if(g_Config.m_ClReconnectTimeout == 1) { str_format(aBuf, sizeof(aBuf), "%s %i %s", Localize("Wait before try for"), g_Config.m_ClReconnectTimeout, Localize("second")); } @@ -1957,7 +1960,7 @@ void CMenus::RenderSettingsHUD(CUIRect MainView) Left.HSplitTop(20.0f, &Button, 0); Button.HMargin(2.0f, &Button); g_Config.m_ClReconnectTimeout = static_cast(DoScrollbarH(&g_Config.m_ClReconnectTimeout, &Button, g_Config.m_ClReconnectTimeout / 120.0f) * 120.0f); - if (g_Config.m_ClReconnectTimeout < 5) + if(g_Config.m_ClReconnectTimeout < 5) g_Config.m_ClReconnectTimeout = 5;*/ } diff --git a/src/game/client/ui.cpp b/src/game/client/ui.cpp index 087b4f6aa..06597ea61 100644 --- a/src/game/client/ui.cpp +++ b/src/game/client/ui.cpp @@ -260,7 +260,7 @@ void CUIRect::HSplitTop(float Cut, CUIRect *pTop, CUIRect *pBottom) const CUIRect r = *this; Cut *= Scale(); - if (pTop) + if(pTop) { pTop->x = r.x; pTop->y = r.y; @@ -268,7 +268,7 @@ void CUIRect::HSplitTop(float Cut, CUIRect *pTop, CUIRect *pBottom) const pTop->h = Cut; } - if (pBottom) + if(pBottom) { pBottom->x = r.x; pBottom->y = r.y + Cut; @@ -282,7 +282,7 @@ void CUIRect::HSplitBottom(float Cut, CUIRect *pTop, CUIRect *pBottom) const CUIRect r = *this; Cut *= Scale(); - if (pTop) + if(pTop) { pTop->x = r.x; pTop->y = r.y; @@ -290,7 +290,7 @@ void CUIRect::HSplitBottom(float Cut, CUIRect *pTop, CUIRect *pBottom) const pTop->h = r.h - Cut; } - if (pBottom) + if(pBottom) { pBottom->x = r.x; pBottom->y = r.y + r.h - Cut; @@ -306,7 +306,7 @@ void CUIRect::VSplitMid(CUIRect *pLeft, CUIRect *pRight) const float Cut = r.w/2; // Cut *= Scale(); - if (pLeft) + if(pLeft) { pLeft->x = r.x; pLeft->y = r.y; @@ -314,7 +314,7 @@ void CUIRect::VSplitMid(CUIRect *pLeft, CUIRect *pRight) const pLeft->h = r.h; } - if (pRight) + if(pRight) { pRight->x = r.x + Cut; pRight->y = r.y; @@ -328,7 +328,7 @@ void CUIRect::VSplitLeft(float Cut, CUIRect *pLeft, CUIRect *pRight) const CUIRect r = *this; Cut *= Scale(); - if (pLeft) + if(pLeft) { pLeft->x = r.x; pLeft->y = r.y; @@ -336,7 +336,7 @@ void CUIRect::VSplitLeft(float Cut, CUIRect *pLeft, CUIRect *pRight) const pLeft->h = r.h; } - if (pRight) + if(pRight) { pRight->x = r.x + Cut; pRight->y = r.y; @@ -350,7 +350,7 @@ void CUIRect::VSplitRight(float Cut, CUIRect *pLeft, CUIRect *pRight) const CUIRect r = *this; Cut *= Scale(); - if (pLeft) + if(pLeft) { pLeft->x = r.x; pLeft->y = r.y; @@ -358,7 +358,7 @@ void CUIRect::VSplitRight(float Cut, CUIRect *pLeft, CUIRect *pRight) const pLeft->h = r.h; } - if (pRight) + if(pRight) { pRight->x = r.x + r.w - Cut; pRight->y = r.y; @@ -504,19 +504,17 @@ int CUI::DoButton(const void *id, const char *text, int checked, const CUIRect * void CUI::DoLabel(const CUIRect *r, const char *pText, float Size, int Align, int MaxWidth) { - // TODO: FIX ME!!!! - //Graphics()->BlendNormal(); if(Align == 0) { float tw = TextRender()->TextWidth(0, Size, pText, MaxWidth); - TextRender()->Text(0, r->x + r->w/2-tw/2, r->y - Size/10, Size, pText, MaxWidth); + TextRender()->Text(0, r->x + (r->w - tw) / 2.f, r->y + (r->h - Size) / 2.f, Size, pText, MaxWidth); } else if(Align < 0) - TextRender()->Text(0, r->x, r->y - Size/10, Size, pText, MaxWidth); + TextRender()->Text(0, r->x, r->y + (r->h - Size) / 2.f, Size, pText, MaxWidth); else if(Align > 0) { float tw = TextRender()->TextWidth(0, Size, pText, MaxWidth); - TextRender()->Text(0, r->x + r->w-tw, r->y - Size/10, Size, pText, MaxWidth); + TextRender()->Text(0, r->x + r->w-tw, r->y + (r->h - Size) / 2.f, Size, pText, MaxWidth); } } diff --git a/src/game/editor/editor.cpp b/src/game/editor/editor.cpp index fb8ba386b..1e6bb3a19 100644 --- a/src/game/editor/editor.cpp +++ b/src/game/editor/editor.cpp @@ -205,7 +205,7 @@ void CEditorImage::AnalyseTileFlags() int tw = m_Width/16; // tilesizes int th = m_Height/16; - if ( tw == th && m_Format == CImageInfo::FORMAT_RGBA ) + if( tw == th && m_Format == CImageInfo::FORMAT_RGBA ) { unsigned char *pPixelData = (unsigned char *)m_pData; @@ -334,7 +334,7 @@ int CEditor::DoEditBox(void *pID, const CUIRect *pRect, char *pStr, unsigned Str { if(UI()->MouseButton(0)) { - if (UI()->LastActiveItem() != pID) + if(UI()->LastActiveItem() != pID) JustGotActive = true; UI()->SetActiveItem(pID); } @@ -542,12 +542,7 @@ int CEditor::DoButton_Editor(const void *pID, const char *pText, int Checked, co { RenderTools()->DrawUIRect(pRect, GetButtonColor(pID, Checked), CUI::CORNER_ALL, 3.0f); CUIRect NewRect = *pRect; - NewRect.y += NewRect.h/2.0f-7.0f; - float tw = min(TextRender()->TextWidth(0, 10.0f, pText, -1), NewRect.w); - CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, NewRect.x + NewRect.w/2-tw/2, NewRect.y - 1.0f, 10.0f, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); - Cursor.m_LineWidth = NewRect.w; - TextRender()->TextEx(&Cursor, pText, -1); + UI()->DoLabel(&NewRect, pText, 10.f, 0, -1); Checked %= 2; return DoButton_Editor_Common(pID, pText, Checked, pRect, Flags, pToolTip); } @@ -559,13 +554,7 @@ int CEditor::DoButton_Env(const void *pID, const char *pText, int Checked, const vec4 Color = vec4(BaseColor.r*Bright, BaseColor.g*Bright, BaseColor.b*Bright, Alpha); RenderTools()->DrawUIRect(pRect, Color, CUI::CORNER_ALL, 3.0f); - CUIRect NewRect = *pRect; - NewRect.y += NewRect.h/2.0f-7.0f; - float tw = min(TextRender()->TextWidth(0, 10.0f, pText, -1), NewRect.w); - CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, NewRect.x + NewRect.w/2-tw/2, NewRect.y - 1.0f, 10.0f, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); - Cursor.m_LineWidth = NewRect.w; - TextRender()->TextEx(&Cursor, pText, -1); + UI()->DoLabel(pRect, pText, 10.f, 0, -1); Checked %= 2; return DoButton_Editor_Common(pID, pText, Checked, pRect, 0, pToolTip); } @@ -599,10 +588,7 @@ int CEditor::DoButton_MenuItem(const void *pID, const char *pText, int Checked, CUIRect t = *pRect; t.VMargin(5.0f, &t); - CTextCursor Cursor; - TextRender()->SetCursor(&Cursor, t.x, t.y - 1.0f, 10.0f, TEXTFLAG_RENDER|TEXTFLAG_STOP_AT_END); - Cursor.m_LineWidth = t.w; - TextRender()->TextEx(&Cursor, pText, -1); + UI()->DoLabel(&t, pText, 10, 0, -1); return DoButton_Editor_Common(pID, pText, Checked, pRect, Flags, pToolTip); } @@ -610,7 +596,6 @@ int CEditor::DoButton_Tab(const void *pID, const char *pText, int Checked, const { RenderTools()->DrawUIRect(pRect, GetButtonColor(pID, Checked), CUI::CORNER_T, 5.0f); CUIRect NewRect = *pRect; - NewRect.y += NewRect.h/2.0f-7.0f; UI()->DoLabel(&NewRect, pText, 10, 0, -1); return DoButton_Editor_Common(pID, pText, Checked, pRect, Flags, pToolTip); } @@ -619,7 +604,6 @@ int CEditor::DoButton_Ex(const void *pID, const char *pText, int Checked, const { RenderTools()->DrawUIRect(pRect, GetButtonColor(pID, Checked), Corners, 3.0f); CUIRect NewRect = *pRect; - NewRect.HMargin(NewRect.h/2.0f-FontSize/2.0f-1.0f, &NewRect); UI()->DoLabel(&NewRect, pText, FontSize, 0, -1); return DoButton_Editor_Common(pID, pText, Checked, pRect, Flags, pToolTip); } @@ -804,7 +788,6 @@ int CEditor::UiDoValueSelector(void *pID, CUIRect *pRect, const char *pLabel, in else str_format(aBuf, sizeof(aBuf),"%d", Current); RenderTools()->DrawUIRect(pRect, Color ? *Color : GetButtonColor(pID, 0), Corners, 5.0f); - pRect->y += pRect->h/2.0f-7.0f; UI()->DoLabel(pRect, aBuf, 10, 0, -1); } @@ -2234,7 +2217,7 @@ void CEditor::DoMapEditor(CUIRect View, CUIRect ToolBar) pEditLayers[0] = &m_TilesetPicker; NumEditLayers++; } - else if (m_ShowPicker) + else if(m_ShowPicker) { pEditLayers[0] = &m_QuadsetPicker; NumEditLayers++; @@ -2642,7 +2625,7 @@ void CEditor::DoMapEditor(CUIRect View, CUIRect ToolBar) } } - if (!m_ShowPicker && m_ShowTileInfo && m_ShowEnvelopePreview != 0 && GetSelectedLayer(0) && GetSelectedLayer(0)->m_Type == LAYERTYPE_QUADS) + if(!m_ShowPicker && m_ShowTileInfo && m_ShowEnvelopePreview != 0 && GetSelectedLayer(0) && GetSelectedLayer(0)->m_Type == LAYERTYPE_QUADS) { GetSelectedGroup()->MapScreen(); @@ -2682,7 +2665,7 @@ int CEditor::DoProperties(CUIRect *pToolBox, CProperty *pProps, int *pIDs, int * Shifter.VSplitLeft(10.0f, &Dec, &Shifter); str_format(aBuf, sizeof(aBuf),"%d", pProps[i].m_Value); int NewValue = UiDoValueSelector((char *) &pIDs[i], &Shifter, "", pProps[i].m_Value, pProps[i].m_Min, pProps[i].m_Max, 1, 1.0f, "Use left mouse button to drag and change the value. Hold shift to be more precise. Rightclick to edit as text.", false, false, 0, &Color); - if (NewValue != pProps[i].m_Value) + if(NewValue != pProps[i].m_Value) { *pNewVal = NewValue; Change = i; @@ -2730,7 +2713,7 @@ int CEditor::DoProperties(CUIRect *pToolBox, CProperty *pProps, int *pIDs, int * bool Shift = Input()->KeyIsPressed(KEY_LSHIFT) || Input()->KeyIsPressed(KEY_RSHIFT); int Value = pProps[i].m_Value; const void *activeItem = UI()->ActiveItem(); - if (!Shift && UI()->MouseButton(0) && (activeItem == &pIDs[i] || activeItem == &pIDs[i]+1 || activeItem == &pIDs[i]+2)) + if(!Shift && UI()->MouseButton(0) && (activeItem == &pIDs[i] || activeItem == &pIDs[i]+1 || activeItem == &pIDs[i]+2)) Value = (Value / 45) * 45; int NewValue = UiDoValueSelector(&pIDs[i], &Shifter, "", Value, pProps[i].m_Min, Shift ? pProps[i].m_Max : 315, Shift ? 1 : 45, Shift ? 1.0f : 10.0f, "Use left mouse button to drag and change the value. Hold shift to be more precise. Rightclick to edit as text.", false, false, 0); if(NewValue != pProps[i].m_Value) @@ -2738,17 +2721,17 @@ int CEditor::DoProperties(CUIRect *pToolBox, CProperty *pProps, int *pIDs, int * *pNewVal = NewValue; Change = i; } - if (DoButton_ButtonDec(&pIDs[i]+1, 0, 0, &Dec, 0, "Decrease")) + if(DoButton_ButtonDec(&pIDs[i]+1, 0, 0, &Dec, 0, "Decrease")) { - if (!Shift) + if(!Shift) *pNewVal = pProps[i].m_Value - 45; else *pNewVal = pProps[i].m_Value - 1; Change = i; } - if (DoButton_ButtonInc(&pIDs[i]+ 2, 0, 0, &Inc, 0, "Increase")) + if(DoButton_ButtonInc(&pIDs[i]+ 2, 0, 0, &Inc, 0, "Increase")) { - if (!Shift) + if(!Shift) *pNewVal = pProps[i].m_Value + 45; else *pNewVal = pProps[i].m_Value + 1; @@ -3795,7 +3778,7 @@ void CEditor::RenderFileDialog() View.HSplitBottom(14.0f, &View, &FileBox); FileBox.VSplitLeft(55.0f, &FileBoxLabel, &FileBox); View.HSplitBottom(10.0f, &View, 0); // some spacing - if (m_FileDialogFileType == CEditor::FILETYPE_IMG) + if(m_FileDialogFileType == CEditor::FILETYPE_IMG) View.VSplitMid(&View, &Preview); View.VSplitRight(15.0f, &View, &Scroll); @@ -3843,7 +3826,7 @@ void CEditor::RenderFileDialog() static int s_ClearButton = 0; RenderTools()->DrawUIRect(&ClearBox, vec4(1, 1, 1, 0.33f)*ButtonColorMul(&s_ClearButton), CUI::CORNER_R, 3.0f); UI()->DoLabel(&ClearBox, "×", 10.0f, 0); - if (UI()->DoButtonLogic(&s_ClearButton, "×", 0, &ClearBox)) + if(UI()->DoButtonLogic(&s_ClearButton, "×", 0, &ClearBox)) { m_aFileDialogSearchText[0] = 0; UI()->SetActiveItem(&s_SearchBoxID); @@ -3899,10 +3882,10 @@ void CEditor::RenderFileDialog() } } - if (m_FileDialogFileType == CEditor::FILETYPE_IMG && m_FilePreviewImage == 0 && m_FilesSelectedIndex > -1) + if(m_FileDialogFileType == CEditor::FILETYPE_IMG && m_FilePreviewImage == 0 && m_FilesSelectedIndex > -1) { int Length = str_length(m_FileList[m_FilesSelectedIndex].m_aFilename); - if (Length >= 4 && !str_comp(m_FileList[m_FilesSelectedIndex].m_aFilename+Length-4, ".png")) + if(Length >= 4 && !str_comp(m_FileList[m_FilesSelectedIndex].m_aFilename+Length-4, ".png")) { char aBuffer[1024]; str_format(aBuffer, sizeof(aBuffer), "%s/%s", m_pFileDialogPath, m_FileList[m_FilesSelectedIndex].m_aFilename); @@ -3914,16 +3897,16 @@ void CEditor::RenderFileDialog() } } } - if (m_FilePreviewImage) + if(m_FilePreviewImage) { int w = m_FilePreviewImageInfo.m_Width; int h = m_FilePreviewImageInfo.m_Height; - if (m_FilePreviewImageInfo.m_Width > Preview.w) + if(m_FilePreviewImageInfo.m_Width > Preview.w) { h = m_FilePreviewImageInfo.m_Height * Preview.w / m_FilePreviewImageInfo.m_Width; w = Preview.w; } - if (h > Preview.h) + if(h > Preview.h) { w = w * Preview.h / h, h = Preview.h; @@ -3962,7 +3945,7 @@ void CEditor::RenderFileDialog() UI()->ClipEnable(&View); for(int i = 0; i < m_FileList.size(); i++) - if (!m_aFileDialogSearchText[0] || str_find_nocase (m_FileList[i].m_aName, m_aFileDialogSearchText)) + if(!m_aFileDialogSearchText[0] || str_find_nocase (m_FileList[i].m_aName, m_aFileDialogSearchText)) AddFileDialogEntry(i, &View); // disable clipping again @@ -4141,7 +4124,7 @@ void CEditor::RenderModebar(CUIRect View) int MouseButton = DoButton_Tab(&s_Button, pButName, 0, &Button, 0, "Switch between images, sounds and layers management."); if(MouseButton == 2) { - if (m_Mode == MODE_LAYERS) + if(m_Mode == MODE_LAYERS) m_Mode = MODE_SOUNDS; else if(m_Mode == MODE_IMAGES) m_Mode = MODE_LAYERS; @@ -4150,7 +4133,7 @@ void CEditor::RenderModebar(CUIRect View) } else if(MouseButton == 1) { - if (m_Mode == MODE_LAYERS) + if(m_Mode == MODE_LAYERS) m_Mode = MODE_IMAGES; else if(m_Mode == MODE_IMAGES) m_Mode = MODE_SOUNDS; @@ -4187,7 +4170,7 @@ void CEditor::RenderStatusbar(CUIRect View) m_ShowServerSettingsEditor ^= 1; } - if (g_Config.m_ClEditorUndo) + if(g_Config.m_ClEditorUndo) { View.VSplitRight(5.0f, &View, &Button); View.VSplitRight(60.0f, &View, &Button); @@ -4225,23 +4208,23 @@ void CEditor::RenderUndoList(CUIRect View) int ClickedIndex = -1; int HoveredIndex = -1; int ScrollNum = m_lUndoSteps.size() - List.h / 17.0f; - if (ScrollNum < 0) + if(ScrollNum < 0) ScrollNum = 0; List.y -= m_UndoScrollValue*ScrollNum*17.0f; - for (int i = 0; i < m_lUndoSteps.size(); i++) + for(int i = 0; i < m_lUndoSteps.size(); i++) { List.HSplitTop(17.0f, &Button, &List); - if (List.y < TopY) + if(List.y < TopY) continue; - if (List.y - 17.0f > TopY + Height) + if(List.y - 17.0f > TopY + Height) break; if(DoButton_Editor(&m_lUndoSteps[i].m_ButtonId, m_lUndoSteps[i].m_aName, 0, &Button, 0, "Undo to this step")) ClickedIndex = i; - if (UI()->HotItem() == &m_lUndoSteps[i].m_ButtonId) + if(UI()->HotItem() == &m_lUndoSteps[i].m_ButtonId) HoveredIndex = i; } UI()->ClipDisable(); - if (ClickedIndex != -1) + if(ClickedIndex != -1) { char aBuffer[1024]; str_format(aBuffer, sizeof(aBuffer), "editor/undo_%i", m_lUndoSteps[HoveredIndex].m_FileNum); @@ -4249,15 +4232,15 @@ void CEditor::RenderUndoList(CUIRect View) m_Map.m_UndoModified = 0; m_LastUndoUpdateTime = time_get(); } - if (HoveredIndex != -1) + if(HoveredIndex != -1) { - if (m_lUndoSteps[HoveredIndex].m_PreviewImage == 0) + if(m_lUndoSteps[HoveredIndex].m_PreviewImage == 0) { char aBuffer[1024]; str_format(aBuffer, sizeof(aBuffer), "editor/undo_%i.png", m_lUndoSteps[HoveredIndex].m_FileNum); m_lUndoSteps[HoveredIndex].m_PreviewImage = Graphics()->LoadTexture(aBuffer, IStorage::TYPE_SAVE, CImageInfo::FORMAT_RGB, IGraphics::TEXLOAD_NORESAMPLE); } - if (m_lUndoSteps[HoveredIndex].m_PreviewImage) + if(m_lUndoSteps[HoveredIndex].m_PreviewImage) { Graphics()->TextureSet(m_lUndoSteps[HoveredIndex].m_PreviewImage); Graphics()->BlendNormal(); @@ -4683,7 +4666,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View) pEnvelope->m_lPoints[i].m_aValues[c] -= f2fx(m_MouseDeltaY*ValueScale); } - if (m_SelectedEnvelopePoint != i) + if(m_SelectedEnvelopePoint != i) m_Map.m_UndoModified++; m_SelectedQuadEnvelope = m_SelectedEnvelope; @@ -4758,7 +4741,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View) str_format(s_aStrCurValue, sizeof(s_aStrCurValue), "%.3f", fx2f(CurrentValue)); } - if (m_SelectedQuadEnvelope == m_SelectedEnvelope && m_SelectedEnvelopePoint == i) + if(m_SelectedQuadEnvelope == m_SelectedEnvelope && m_SelectedEnvelopePoint == i) Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f); else Graphics()->SetColor(aColors[c].r*ColorMod, aColors[c].g*ColorMod, aColors[c].b*ColorMod, 1.0f); @@ -4775,7 +4758,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View) CUIRect ToolBar2; ToolBar.VSplitMid(&ToolBar1, &ToolBar2); - if (ToolBar.w > ToolBar.h * 21) + if(ToolBar.w > ToolBar.h * 21) { ToolBar1.VMargin(3.0f, &ToolBar1); ToolBar2.VMargin(3.0f, &ToolBar2); @@ -5118,7 +5101,7 @@ void CEditor::Render() Size *= 3.0f; View.HSplitBottom(Size, &View, &ExtraEditor); } - if (m_ShowUndo && !m_ShowPicker) + if(m_ShowUndo && !m_ShowPicker) { View.HSplitBottom(250.0f, &View, &UndoList); } @@ -5287,7 +5270,7 @@ void CEditor::Render() static int UndoStepsListdirCallback(const char *pName, int IsDir, int StorageType, void *pUser) { IStorage *pStorage = (IStorage *)pUser; - if (str_comp_nocase_num(pName, "undo_", 5) == 0) + if(str_comp_nocase_num(pName, "undo_", 5) == 0) { char aBuffer[1024]; pStorage->GetCompletePath(IStorage::TYPE_SAVE, "editor/", aBuffer, sizeof(aBuffer)); @@ -5505,8 +5488,7 @@ void CEditor::Init() m_pTextRender = Kernel()->RequestInterface(); m_pStorage = Kernel()->RequestInterface(); m_pSound = Kernel()->RequestInterface(); - m_RenderTools.m_pGraphics = m_pGraphics; - m_RenderTools.m_pUI = &m_UI; + m_RenderTools.Init(m_pGraphics, &m_UI); m_UI.SetGraphics(m_pGraphics, m_pTextRender); m_Map.m_pEditor = this; @@ -5568,7 +5550,7 @@ void CEditor::CreateUndoStepThread(void *pUser) CUndo NewStep; str_timestamp(NewStep.m_aName, sizeof(NewStep.m_aName)); - if (pEditor->m_lUndoSteps.size()) + if(pEditor->m_lUndoSteps.size()) NewStep.m_FileNum = pEditor->m_lUndoSteps[pEditor->m_lUndoSteps.size() - 1].m_FileNum + 1; else NewStep.m_FileNum = 0; @@ -5675,16 +5657,16 @@ void CEditor::UpdateAndRender() if(Input()->KeyPress(KEY_F10)) m_ShowMousePointer = false; - if (g_Config.m_ClEditorUndo) + if(g_Config.m_ClEditorUndo) { // Screenshot at most every 5 seconds, at least every 60 - if ((m_LastUndoUpdateTime + time_freq() * 60 < time_get() && m_Map.m_UndoModified) + if((m_LastUndoUpdateTime + time_freq() * 60 < time_get() && m_Map.m_UndoModified) || (m_LastUndoUpdateTime + time_freq() * 5 < time_get() && m_Map.m_UndoModified >= 10)) { m_Map.m_UndoModified = 0; m_LastUndoUpdateTime = time_get(); - if (!m_UndoRunning) + if(!m_UndoRunning) { m_UndoRunning = true; CreateUndoStep();