From 7608eb67d6a383d06a462a74531056bc3a57e22f Mon Sep 17 00:00:00 2001 From: def Date: Sat, 27 Jun 2020 00:06:07 +0200 Subject: [PATCH] Ignore emoticon of spammy players (fixes #2387) Add ignore emoticon button in player menu. Someone needs to draw the graphic for that. --- data/gui_icons.png | Bin 6136 -> 14891 bytes datasrc/content.py | 3 ++- src/game/client/components/menus_ingame.cpp | 26 +++++++++++++++++--- src/game/client/components/players.cpp | 2 +- src/game/client/gameclient.cpp | 1 + src/game/client/gameclient.h | 1 + 6 files changed, 28 insertions(+), 5 deletions(-) diff --git a/data/gui_icons.png b/data/gui_icons.png index 33c92157769b6da812ea3265c9390cf391e35df8..f9e2814c8e3df2d28659ccf121e1405967faa0a9 100644 GIT binary patch literal 14891 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 R0j+o-SxKeOwc;jW{|CQb!>s@S literal 6136 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 KMNUMnLSTZLO5C;p diff --git a/datasrc/content.py b/datasrc/content.py index ec700d440..495cb5a75 100644 --- a/datasrc/content.py +++ b/datasrc/content.py @@ -269,7 +269,7 @@ set_speedup_arrow = SpriteSet("speedup_arrow", image_speedup_arrow, 1, 1) set_demobuttons = SpriteSet("demobuttons", image_demobuttons, 5, 1) set_fileicons = SpriteSet("fileicons", image_fileicons, 8, 1) set_guibuttons = SpriteSet("guibuttons", image_guibuttons, 12, 4) -set_guiicons = SpriteSet("guiicons", image_guiicons, 8, 2) +set_guiicons = SpriteSet("guiicons", image_guiicons, 12, 2) set_demobuttons2 = SpriteSet("demobuttons2", image_demobuttons2, 4, 1) set_audio_source = SpriteSet("audio_source", image_audio_source, 1, 1) @@ -423,6 +423,7 @@ container.sprites.Add(Sprite("guibutton_hover", set_guibuttons, 8,0,4,4)) container.sprites.Add(Sprite("guiicon_mute", set_guiicons, 0,0,4,2)) container.sprites.Add(Sprite("guiicon_friend", set_guiicons, 4,0,4,2)) +container.sprites.Add(Sprite("guiicon_emoticon_mute", set_guiicons, 8,0,4,2)) container.sprites.Add(Sprite("audio_source", set_audio_source, 0,0,1,1)) diff --git a/src/game/client/components/menus_ingame.cpp b/src/game/client/components/menus_ingame.cpp index 6fe444186..0144058d5 100644 --- a/src/game/client/components/menus_ingame.cpp +++ b/src/game/client/components/menus_ingame.cpp @@ -183,6 +183,15 @@ void CMenus::RenderPlayers(CUIRect MainView) Graphics()->QuadsDrawTL(&QuadItem, 1); Graphics()->QuadsEnd(); + ButtonBar.HMargin(1.0f, &ButtonBar); + ButtonBar.VSplitLeft(Width, &Button, &ButtonBar); + Graphics()->TextureSet(g_pData->m_aImages[IMAGE_GUIICONS].m_Id); + Graphics()->QuadsBegin(); + RenderTools()->SelectSprite(SPRITE_GUIICON_EMOTICON_MUTE); + QuadItem = IGraphics::CQuadItem(Button.x, Button.y, Button.w, Button.h); + Graphics()->QuadsDrawTL(&QuadItem, 1); + Graphics()->QuadsEnd(); + ButtonBar.VSplitLeft(20.0f, 0, &ButtonBar); ButtonBar.VSplitLeft(Width, &Button, &ButtonBar); Graphics()->TextureSet(g_pData->m_aImages[IMAGE_GUIICONS].m_Id); @@ -214,7 +223,7 @@ void CMenus::RenderPlayers(CUIRect MainView) UiDoListboxStart(&s_VoteList, &List, 24.0f, "", "", TotalPlayers, 1, -1, s_ScrollValue); // options - static int s_aPlayerIDs[MAX_CLIENTS][2] = {{0}}; + static int s_aPlayerIDs[MAX_CLIENTS][3] = {{0}}; for(int i = 0, Count = 0; i < MAX_CLIENTS; ++i) { @@ -261,7 +270,7 @@ void CMenus::RenderPlayers(CUIRect MainView) m_pClient->m_pCountryFlags->Render(m_pClient->m_aClients[Index].m_Country, &Color, Button2.x, Button2.y + Button2.h/2.0f - 0.75*Button2.h/2.0f, 1.5f*Button2.h, 0.75f*Button2.h); - // ignore button + // ignore chat button Item.m_Rect.HMargin(2.0f, &Item.m_Rect); Item.m_Rect.VSplitLeft(Width, &Button, &Item.m_Rect); Button.VSplitLeft((Width-Button.h)/4.0f, 0, &Button); @@ -272,12 +281,23 @@ void CMenus::RenderPlayers(CUIRect MainView) if(DoButton_Toggle(&s_aPlayerIDs[Index][0], m_pClient->m_aClients[Index].m_ChatIgnore, &Button, true)) m_pClient->m_aClients[Index].m_ChatIgnore ^= 1; + // ignore emoticon button + Item.m_Rect.VSplitLeft(20.0f, &Button, &Item.m_Rect); + Item.m_Rect.VSplitLeft(Width, &Button, &Item.m_Rect); + Button.VSplitLeft((Width-Button.h)/4.0f, 0, &Button); + Button.VSplitLeft(Button.h, &Button, 0); + if(g_Config.m_ClShowChatFriends && !m_pClient->m_aClients[Index].m_Friend) + DoButton_Toggle(&s_aPlayerIDs[Index][1], 1, &Button, false); + else + if(DoButton_Toggle(&s_aPlayerIDs[Index][1], m_pClient->m_aClients[Index].m_EmoticonIgnore, &Button, true)) + m_pClient->m_aClients[Index].m_EmoticonIgnore ^= 1; + // friend button Item.m_Rect.VSplitLeft(20.0f, &Button, &Item.m_Rect); Item.m_Rect.VSplitLeft(Width, &Button, &Item.m_Rect); Button.VSplitLeft((Width-Button.h)/4.0f, 0, &Button); Button.VSplitLeft(Button.h, &Button, 0); - if(DoButton_Toggle(&s_aPlayerIDs[Index][1], m_pClient->m_aClients[Index].m_Friend, &Button, true)) + if(DoButton_Toggle(&s_aPlayerIDs[Index][2], m_pClient->m_aClients[Index].m_Friend, &Button, true)) { if(m_pClient->m_aClients[Index].m_Friend) m_pClient->Friends()->RemoveFriend(m_pClient->m_aClients[Index].m_aName, m_pClient->m_aClients[Index].m_aClan); diff --git a/src/game/client/components/players.cpp b/src/game/client/components/players.cpp index ec7156fef..40af1bd5f 100644 --- a/src/game/client/components/players.cpp +++ b/src/game/client/components/players.cpp @@ -592,7 +592,7 @@ void CPlayers::RenderPlayer( Graphics()->QuadsSetRotation(0); } - if(g_Config.m_ClShowEmotes && m_pClient->m_aClients[ClientID].m_EmoticonStart != -1 && m_pClient->m_aClients[ClientID].m_EmoticonStart <= Client()->GameTick(g_Config.m_ClDummy) && m_pClient->m_aClients[ClientID].m_EmoticonStart + 2 * Client()->GameTickSpeed() > Client()->GameTick(g_Config.m_ClDummy)) + if(g_Config.m_ClShowEmotes && !m_pClient->m_aClients[ClientID].m_EmoticonIgnore && m_pClient->m_aClients[ClientID].m_EmoticonStart != -1 && m_pClient->m_aClients[ClientID].m_EmoticonStart <= Client()->GameTick(g_Config.m_ClDummy) && m_pClient->m_aClients[ClientID].m_EmoticonStart + 2 * Client()->GameTickSpeed() > Client()->GameTick(g_Config.m_ClDummy)) { Graphics()->TextureSet(g_pData->m_aImages[IMAGE_EMOTICONS].m_Id); diff --git a/src/game/client/gameclient.cpp b/src/game/client/gameclient.cpp index d5c49c8b0..adf07365d 100644 --- a/src/game/client/gameclient.cpp +++ b/src/game/client/gameclient.cpp @@ -1859,6 +1859,7 @@ void CGameClient::CClientData::Reset() m_EmoticonStart = -1; m_Active = false; m_ChatIgnore = false; + m_EmoticonIgnore = false; m_Friend = false; m_Foe = false; m_AuthLevel = AUTHED_NO; diff --git a/src/game/client/gameclient.h b/src/game/client/gameclient.h index 3f06c219b..7611456c7 100644 --- a/src/game/client/gameclient.h +++ b/src/game/client/gameclient.h @@ -266,6 +266,7 @@ public: float m_Angle; bool m_Active; bool m_ChatIgnore; + bool m_EmoticonIgnore; bool m_Friend; bool m_Foe;