Merge pull request #7166 from Jupeyy/pr_fix_skin_invalid

Make skin refind cleanup bit more aggressive
This commit is contained in:
Robert Müller 2023-09-11 15:22:48 +00:00 committed by GitHub
commit 4ca86f1b05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 2 deletions

View file

@ -817,6 +817,10 @@ void CChat::RefindSkins()
Line.m_RenderSkinMetrics = pSkin->m_Metrics;
}
else
{
Line.m_RenderSkin.Reset();
}
}
}

View file

@ -675,15 +675,19 @@ void CGhost::RefindSkin()
if(!Ghost.Empty())
{
IntsToStr(&Ghost.m_Skin.m_Skin0, 6, aSkinName);
CTeeRenderInfo *pRenderInfo = &Ghost.m_RenderInfo;
if(aSkinName[0] != '\0')
{
CTeeRenderInfo *pRenderInfo = &Ghost.m_RenderInfo;
const CSkin *pSkin = m_pClient->m_Skins.Find(aSkinName);
pRenderInfo->m_OriginalRenderSkin = pSkin->m_OriginalSkin;
pRenderInfo->m_ColorableRenderSkin = pSkin->m_ColorableSkin;
pRenderInfo->m_SkinMetrics = pSkin->m_Metrics;
}
else
{
pRenderInfo->m_OriginalRenderSkin.Reset();
pRenderInfo->m_ColorableRenderSkin.Reset();
}
}
}
if(!m_CurGhost.Empty())

View file

@ -397,6 +397,7 @@ void CKillMessages::RefindSkins()
if(m_aKillmsgs[r].m_KillerID >= 0)
{
m_aKillmsgs[r].m_KillerRenderInfo = {};
const CGameClient::CClientData &Client = GameClient()->m_aClients[m_aKillmsgs[r].m_KillerID];
if(Client.m_aSkinName[0] != '\0')
m_aKillmsgs[r].m_KillerRenderInfo = Client.m_RenderInfo;

View file

@ -3343,6 +3343,11 @@ void CGameClient::RefindSkins()
Client.m_SkinInfo.m_ColorableRenderSkin = pSkin->m_ColorableSkin;
Client.UpdateRenderInfo(IsTeamPlay());
}
else
{
Client.m_SkinInfo.m_OriginalRenderSkin.Reset();
Client.m_SkinInfo.m_ColorableRenderSkin.Reset();
}
}
m_Ghost.RefindSkin();
m_Chat.RefindSkins();