mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 10:08:18 +00:00
Merge #5822
5822: Move skin info after the settings (settings can cause reload -> skin … r=heinrich5991 a=Jupeyy …is invalid) Also added an assert now, we dont want to render invalid textures ever since its always a logic bug ## Checklist - [x] Tested the change ingame - [ ] Provided screenshots if it is a visual change - [ ] Tested in combination with possibly related configuration options - [ ] Written a unit test (especially base/) or added coverage to integration test - [ ] Considered possible null pointers and out of bounds array indexing - [ ] Changed no physics that affect existing maps - [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck) (optional) Co-authored-by: Jupeyy <jupjopjap@gmail.com>
This commit is contained in:
commit
766d9f66cc
|
@ -849,6 +849,7 @@ bool CGraphics_Threaded::ScreenshotDirect()
|
|||
void CGraphics_Threaded::TextureSet(CTextureHandle TextureID)
|
||||
{
|
||||
dbg_assert(m_Drawing == 0, "called Graphics()->TextureSet within begin");
|
||||
dbg_assert(!TextureID.IsValid() || m_vTextureIndices[TextureID.Id()] == -1, "Texture handle was not invalid, but also did not correlate to an existing texture.");
|
||||
m_State.m_Texture = TextureID.Id();
|
||||
}
|
||||
|
||||
|
|
|
@ -446,25 +446,6 @@ void CMenus::RenderSettingsTee(CUIRect MainView)
|
|||
pColorFeet = &g_Config.m_ClDummyColorFeet;
|
||||
}
|
||||
|
||||
// skin info
|
||||
CTeeRenderInfo OwnSkinInfo;
|
||||
const CSkin *pSkin = m_pClient->m_Skins.Get(m_pClient->m_Skins.Find(pSkinName));
|
||||
OwnSkinInfo.m_OriginalRenderSkin = pSkin->m_OriginalSkin;
|
||||
OwnSkinInfo.m_ColorableRenderSkin = pSkin->m_ColorableSkin;
|
||||
OwnSkinInfo.m_SkinMetrics = pSkin->m_Metrics;
|
||||
OwnSkinInfo.m_CustomColoredSkin = *pUseCustomColor;
|
||||
if(*pUseCustomColor)
|
||||
{
|
||||
OwnSkinInfo.m_ColorBody = color_cast<ColorRGBA>(ColorHSLA(*pColorBody).UnclampLighting());
|
||||
OwnSkinInfo.m_ColorFeet = color_cast<ColorRGBA>(ColorHSLA(*pColorFeet).UnclampLighting());
|
||||
}
|
||||
else
|
||||
{
|
||||
OwnSkinInfo.m_ColorBody = ColorRGBA(1.0f, 1.0f, 1.0f);
|
||||
OwnSkinInfo.m_ColorFeet = ColorRGBA(1.0f, 1.0f, 1.0f);
|
||||
}
|
||||
OwnSkinInfo.m_Size = 50.0f;
|
||||
|
||||
MainView.HSplitTop(10.0f, &Label, &MainView);
|
||||
Label.VSplitLeft(280.0f, &Label, &Dummy);
|
||||
Label.VSplitLeft(230.0f, &Label, 0);
|
||||
|
@ -543,6 +524,27 @@ void CMenus::RenderSettingsTee(CUIRect MainView)
|
|||
|
||||
Dummy.HSplitTop(20.0f, &DummyLabel, &Dummy);
|
||||
|
||||
// note: get the skin info after the settings buttons, because they can trigger a refresh
|
||||
// which invalidates the skin
|
||||
// skin info
|
||||
CTeeRenderInfo OwnSkinInfo;
|
||||
const CSkin *pSkin = m_pClient->m_Skins.Get(m_pClient->m_Skins.Find(pSkinName));
|
||||
OwnSkinInfo.m_OriginalRenderSkin = pSkin->m_OriginalSkin;
|
||||
OwnSkinInfo.m_ColorableRenderSkin = pSkin->m_ColorableSkin;
|
||||
OwnSkinInfo.m_SkinMetrics = pSkin->m_Metrics;
|
||||
OwnSkinInfo.m_CustomColoredSkin = *pUseCustomColor;
|
||||
if(*pUseCustomColor)
|
||||
{
|
||||
OwnSkinInfo.m_ColorBody = color_cast<ColorRGBA>(ColorHSLA(*pColorBody).UnclampLighting());
|
||||
OwnSkinInfo.m_ColorFeet = color_cast<ColorRGBA>(ColorHSLA(*pColorFeet).UnclampLighting());
|
||||
}
|
||||
else
|
||||
{
|
||||
OwnSkinInfo.m_ColorBody = ColorRGBA(1.0f, 1.0f, 1.0f);
|
||||
OwnSkinInfo.m_ColorFeet = ColorRGBA(1.0f, 1.0f, 1.0f);
|
||||
}
|
||||
OwnSkinInfo.m_Size = 50.0f;
|
||||
|
||||
MainView.HSplitTop(50.0f, &Label, &MainView);
|
||||
Label.VSplitLeft(230.0f, &Label, 0);
|
||||
CAnimState *pIdleState = CAnimState::GetIdle();
|
||||
|
|
Loading…
Reference in a new issue