mirror of
https://github.com/ddnet/ddnet.git
synced 2024-09-20 09:34:19 +00:00
Show keystrokes in the nametag and new option cl_show_direction_below to show the keypresses below the players
This commit is contained in:
parent
d3fd837723
commit
724a49dc59
|
@ -380,6 +380,7 @@ MACRO_CONFIG_INT(ClChatReset, cl_chat_reset, 1, 0, 1, CFGFLAG_CLIENT | CFGFLAG_S
|
|||
MACRO_CONFIG_INT(ClChatOld, cl_chat_old, 0, 0, 1, CFGFLAG_CLIENT | CFGFLAG_SAVE, "Old chat style: No tee, no background");
|
||||
|
||||
MACRO_CONFIG_INT(ClShowDirection, cl_show_direction, 1, 0, 2, CFGFLAG_SAVE | CFGFLAG_CLIENT, "Show key presses (1 = other players', 2 = also your own)")
|
||||
MACRO_CONFIG_INT(ClShowDirectionBelow, cl_show_direction_below, 0, 0, 1, CFGFLAG_SAVE | CFGFLAG_CLIENT, "Position of the shown key presses (0 = above players, 1 = below players)")
|
||||
MACRO_CONFIG_INT(ClHttpMapDownload, cl_http_map_download, 1, 0, 1, CFGFLAG_SAVE | CFGFLAG_CLIENT, "Try fast HTTP map download first")
|
||||
MACRO_CONFIG_INT(ClOldGunPosition, cl_old_gun_position, 0, 0, 1, CFGFLAG_SAVE | CFGFLAG_CLIENT, "Tees hold gun a bit higher like in TW 0.6.1 and older")
|
||||
MACRO_CONFIG_INT(ClConfirmDisconnectTime, cl_confirm_disconnect_time, 20, -1, 1440, CFGFLAG_SAVE | CFGFLAG_CLIENT, "Confirmation popup before disconnecting after game time (in minutes, -1 to turn off, 0 to always turn on)")
|
||||
|
|
|
@ -50,6 +50,47 @@ void CNamePlates::RenderNameplatePos(vec2 Position, const CNetObj_PlayerInfo *pP
|
|||
float YOffset = Position.y - 38;
|
||||
ColorRGBA rgb = ColorRGBA(1.0f, 1.0f, 1.0f);
|
||||
|
||||
// render players' key presses
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
Graphics()->QuadsSetRotation(0);
|
||||
int ShowDirection = g_Config.m_ClShowDirection;
|
||||
#if defined(CONF_VIDEORECORDER)
|
||||
if(IVideo::Current())
|
||||
ShowDirection = g_Config.m_ClVideoShowDirection;
|
||||
#endif
|
||||
if((pPlayerInfo->m_Local && ShowDirection == 2) || (!pPlayerInfo->m_Local && ShowDirection >= 1))
|
||||
{
|
||||
const float ShowDirectionImgSize = 22.0f;
|
||||
vec2 ShowDirectionPos;
|
||||
if(g_Config.m_ClShowDirectionBelow)
|
||||
ShowDirectionPos = vec2(Position.x - 11.0f, Position.y + ShowDirectionImgSize);
|
||||
else
|
||||
{
|
||||
YOffset -= ShowDirectionImgSize;
|
||||
ShowDirectionPos = vec2(Position.x - 11.0f, YOffset);
|
||||
}
|
||||
|
||||
if(m_pClient->m_Snap.m_aCharacters[pPlayerInfo->m_ClientID].m_Cur.m_Direction == -1)
|
||||
{
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_ARROW].m_Id);
|
||||
Graphics()->QuadsSetRotation(pi);
|
||||
Graphics()->RenderQuadContainerAsSprite(m_DirectionQuadContainerIndex, 0, ShowDirectionPos.x - 30.f, ShowDirectionPos.y);
|
||||
}
|
||||
else if(m_pClient->m_Snap.m_aCharacters[pPlayerInfo->m_ClientID].m_Cur.m_Direction == 1)
|
||||
{
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_ARROW].m_Id);
|
||||
Graphics()->RenderQuadContainerAsSprite(m_DirectionQuadContainerIndex, 0, ShowDirectionPos.x + 30.f, ShowDirectionPos.y);
|
||||
}
|
||||
if(m_pClient->m_Snap.m_aCharacters[pPlayerInfo->m_ClientID].m_Cur.m_Jumped & 1)
|
||||
{
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_ARROW].m_Id);
|
||||
Graphics()->QuadsSetRotation(pi * 3 / 2);
|
||||
Graphics()->RenderQuadContainerAsSprite(m_DirectionQuadContainerIndex, 0, ShowDirectionPos.x, ShowDirectionPos.y);
|
||||
}
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
Graphics()->QuadsSetRotation(0);
|
||||
}
|
||||
|
||||
// render name plate
|
||||
if(!pPlayerInfo->m_Local || g_Config.m_ClNameplatesOwn)
|
||||
{
|
||||
|
@ -314,4 +355,11 @@ void CNamePlates::OnWindowResize()
|
|||
void CNamePlates::OnInit()
|
||||
{
|
||||
ResetNamePlates();
|
||||
|
||||
// the direction
|
||||
m_DirectionQuadContainerIndex = Graphics()->CreateQuadContainer(false);
|
||||
|
||||
IGraphics::CQuadItem QuadItem(0.f, 0.f, 22.f, 22.f);
|
||||
Graphics()->QuadContainerAddQuads(m_DirectionQuadContainerIndex, &QuadItem, 1);
|
||||
Graphics()->QuadContainerUpload(m_DirectionQuadContainerIndex);
|
||||
}
|
||||
|
|
|
@ -50,6 +50,8 @@ class CNamePlates : public CComponent
|
|||
|
||||
void ResetNamePlates();
|
||||
|
||||
int m_DirectionQuadContainerIndex;
|
||||
|
||||
public:
|
||||
virtual int Sizeof() const override { return sizeof(*this); }
|
||||
virtual void OnWindowResize() override;
|
||||
|
|
|
@ -552,37 +552,6 @@ void CPlayers::RenderPlayer(
|
|||
|
||||
RenderInfo.m_Size = 64.0f; // force some settings
|
||||
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, Alpha);
|
||||
Graphics()->QuadsSetRotation(0);
|
||||
int ShowDirection = g_Config.m_ClShowDirection;
|
||||
#if defined(CONF_VIDEORECORDER)
|
||||
if(IVideo::Current())
|
||||
ShowDirection = g_Config.m_ClVideoShowDirection;
|
||||
#endif
|
||||
vec2 ShowDirectionPos(Position.x - 11.0f, Position.y - 70.f);
|
||||
if((Local && ShowDirection == 2) || (!Local && ShowDirection >= 1))
|
||||
{
|
||||
if(Player.m_Direction == -1)
|
||||
{
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_ARROW].m_Id);
|
||||
Graphics()->QuadsSetRotation(pi);
|
||||
Graphics()->RenderQuadContainerAsSprite(m_DirectionQuadContainerIndex, 0, ShowDirectionPos.x - 30.f, ShowDirectionPos.y);
|
||||
}
|
||||
else if(Player.m_Direction == 1)
|
||||
{
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_ARROW].m_Id);
|
||||
Graphics()->RenderQuadContainerAsSprite(m_DirectionQuadContainerIndex, 0, ShowDirectionPos.x + 30.f, ShowDirectionPos.y);
|
||||
}
|
||||
if(Player.m_Jumped & 1)
|
||||
{
|
||||
Graphics()->TextureSet(g_pData->m_aImages[IMAGE_ARROW].m_Id);
|
||||
Graphics()->QuadsSetRotation(pi * 3 / 2);
|
||||
Graphics()->RenderQuadContainerAsSprite(m_DirectionQuadContainerIndex, 0, ShowDirectionPos.x, ShowDirectionPos.y);
|
||||
}
|
||||
Graphics()->SetColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
Graphics()->QuadsSetRotation(0);
|
||||
}
|
||||
|
||||
RenderTools()->RenderTee(&State, &RenderInfo, Player.m_Emote, Direction, Position, Alpha);
|
||||
|
||||
int QuadOffsetToEmoticon = NUM_WEAPONS * 2 + 2 + 2;
|
||||
|
@ -811,10 +780,4 @@ void CPlayers::OnInit()
|
|||
|
||||
Graphics()->QuadsSetSubset(0.f, 0.f, 1.f, 1.f);
|
||||
Graphics()->QuadsSetRotation(0.f);
|
||||
// the direction
|
||||
m_DirectionQuadContainerIndex = Graphics()->CreateQuadContainer(false);
|
||||
|
||||
IGraphics::CQuadItem QuadItem(0.f, 0.f, 22.f, 22.f);
|
||||
Graphics()->QuadContainerAddQuads(m_DirectionQuadContainerIndex, &QuadItem, 1);
|
||||
Graphics()->QuadContainerUpload(m_DirectionQuadContainerIndex);
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@ class CPlayers : public CComponent
|
|||
float Intra = 0.f);
|
||||
|
||||
int m_WeaponEmoteQuadContainerIndex;
|
||||
int m_DirectionQuadContainerIndex;
|
||||
int m_WeaponSpriteMuzzleQuadContainerIndex[NUM_WEAPONS];
|
||||
|
||||
public:
|
||||
|
|
Loading…
Reference in a new issue